iPhone - Changing product name to non USA characters causes crash - iphone

My application used to work just fine. When I changed the Product name to non-USA characters 2 very strange problems appeared:
When I touch a UITextField the application crashes.
The application cannot play sound that is saved to disk.
The issue (1) has been mentioned before but I cannot understand why it happens and how to solve it. Check out last comment: UITextField causes crash in iOS 5, works fine in iOS 4
If I go back to English everything will be fine. But I need an application name with non USA characters.

I don't know where you have changed Your product name. As per my knowledge you have to change the value of key 'Bundle name' in '<>-Info.plist' file.

I couldn't find any specific rules about the character set allowed in the Product Name, but I would keep it in ASCII just to be safe, and perform any customizations to the name using Bundle Display Name (and/or Bundle Name) in your Info.plist file. This would let you have a different application name for different user languages (I'm assuming you want localized app name(s)).
As to what is actually causing your app to crash, it could be that bundle paths are mangled because you have non-ASCII characters in the product name, but I don't have proof of that. Try the suggestion above and see if it works for you.

Related

Modify OS X app without source code using Swift

The problem is the following.
The title for button FindName is wrong and it should be Search, another thing is that window title is misspelled: "DisplayUsrEmail"
I don't have the source code of the application.
My main requirement is to write the small application that will modify the current application and fix above problems.
I have to write the new app using Swift.
What I did:
1) It is quite simple to change the title of the button without coding. (FindName -> Search) I changed it in the Info.plist file.
2) It is also easy to change the app title (Executable file) in the Info.plist, but in my case, it doesn't change the window's title "DisplayUsrEmail"
3) I opened the apps unix executable file in the hex editor (used https://hexed.it/) and found there the title "DisplayUsrEmail". But the app crashes when I add the byte with symbol 'e'. ("DisplayUsrEmail" -> "DisplayUserEmail") I can just change the title with the same characters count, but it doesn't resolve my problem.
So, is it possible to write the new app that will modify the current one? If yes, what is the workflow?
The app is compiled through xcode and is a known fact that it is not possible to retrieve the source code from the compiled application.
To answer your question: no, it's not possible.
I don't think that this is at all possible. When an app is built, it's also codesigned to prevent any changes to it. If any changes are made, macOS can't (or refuses to) open the app. This is a security feature that prevents people from modifying applications to bypass security measures, licensing, etc. in the app. Since you've modified the app, you are seeing this security feature in action in the form of the app crashing when you attempt to launch it.
That being said, it MIGHT be possible to modify the UI elements only without affecting the executable. In the app's resources folder, there should be a file with a ".nib" extension. This is the compiled user interface which is where the incorrect spelling of the window and button are. If you modify this file ONLY, the UI elements might be correct when you launch the app again. It's also possible that this nib file is part of the codesigned bundle and modifying it will cause a crash, just as if you'd modified the executable.

where in an XCode project does it set "InfoPlist.strings" as the filename to use for locationalization?

where in an XCode project does it set "InfoPlist.strings" as the filename to use for locationalization?
Just trying to understand how XCode pulls things together here. For example to set the app name specifically I can change this in "AppName_plist-Info.plist", however if I go localization it seems it then has to be set via the "InfoPlist.strings" files.
I can see in XCode where it specifies the "AppName_plist-Info.plist" file name, in the Target/BuildSettings/Packaging information area, but I don't see mention of "InfoPlist.strings", so how does Xcode/IOS know to override what is in "AppName_plist-Info.plist" based on what's in "InfoPlist.strings"?
Xcode doesn't really override the name, it creates localizations in your apps bundle. iOS will look for the name of the app in de localization folder to which the language of the system is set.
These files have pre-determent names, thus you can not set them.
All the localized files will be for example in bundle.app\en.lproj for english or bundle.app\nl.lprojfor dutch.

Special Characters in App Name

I would like to use a special character in the name of my app (é to be precise). When using the name for the Xcode project, strange things happen. So I thought I could name the project something else, without the special character. The real name though should still appear on the iPhone, in iTunes and in the App Store. So my question is: Is it enough to change the Bundle display name property? As far as I know, the App Store name can be set when the app is sent to Apple, is this correct?
I would appreciate some help, Fabian
The Bundle display name is what actually shows up on user's devices.
Yes, it can be CLOSE TO the "official" app name.
It does not have to be absolutely identical, so you don't have to panic about accents, etc.
(If it is very different, Apple will reject it.)
For example, it's normal to have reasonable abbreviations, and there would be no problem if you had for example accents in one and not the other.
I had the same problem because I wanted to add a ™ symbol after my app name. When you're putting in your Application Name in iTunes Connect, it accepts special characters. To do one, with your cursor in the text box on the web page, select Edit -> Special Characters... and select your character.

How to show special characters on Apple App Store product description?

I see with some apps like Toodledo they use checkmarks for their revision history. How can you show/use special characters in an App Store product description? Does it allow HTML or do you just have to use ascii character codes?
Any tips/tricks for better presentation of our app's product information?
Thank you.
I think Apple just made the rule stricter on the App Store. I have been using special characters in my metadatas for a very long time but got a bad surprise today when trying to submit a new version:
Got this error message on iTunes Connect:
What's New In This Version must not contain the following characters: ★, ❤
Simply enter the characters using the character table in OS X.
To show it, go to OS X System Preferences -> International and select "Show Input Sources in Menu Bar". You should get a flag symbol next to the clock in the menu bar. Clicking on it results in a menu where you can open the character table, in which you can select and paste pretty much any character.
I am the author of the Toodledo app. Here is how I did it. I found the character I wanted on the internet by searching for "unicode symbols". I found it on wikipedia
I then copy and pasted the checkmark ✓ into my app description. And every time I need to make a new checkmark, I go and copy and paste it again since I don't know how to type it. There are lots of interesting symbols to choose from. I also use a star★
UnicodeChecker is an excellent Mac app that contains a database of over 100,000 characters defined in Unicode. You can search for characters by their assigned English names. For example, search for "check" to find several kinds of checkmark characters. Once found, you can copy a character and paste into your description.
UnicodeChecker is free of cost.

Which characters are allowed in iPhone app name

I discovered I probably should rename my app. What characters are allowed in the name? I have searched for the list of restricted characters but have found none.
A second question. Apparently the simulator won't allow a slash in the name. Any workarounds (assuming / is allowed)?
You can keep your product name simple (not sure about the the exact rules - I stick with alphanumeric characters), but put additional characters (like '/') in the Bundle Display Name key of your Info.plist file. The name of the built file on disk will be your product name (set by the Bundle Name key), but the iPhone will show the Bundle Display Name value.
I ran into a similar problem a while back with the + character - I couldn't sign any apps with the character in the bundle name. So, I changed the name from Xxx+ to XxxPlus and set the Bundle Display Name to Xxx+. Looked like I wanted it to in the GUI and the signing worked fine.
/ is allowed, see attached scree cap .. alt text http://img713.imageshack.us/img713/5462/slashs.jpg