1
votes

I am sure it was possible at least till lately to have the app's executable (the .app) filename different from the app's product name / display name.

Our app's name is in Chinese however until recently its executable filename was in English, say abc.app. I inherited this setup several years ago. Recently though we looked into changing the app's Chinese name (to another Chinese name) but decided eventually not to do so. However, since the attempt to change the app's name I have not been able to get the executable filename to be in English. No matter what it always is the same as the PRODUCT_NAME, which is in Chinese. I tried modifying the app's 'bundle name', 'bundle display name', 'executable file' and other settings. None worked.

By the way, the reason we want the executable's filename to be in English is: some of the code will have to be modified otherwise. For example the following statement will not work when [[NSBundle mainBundle] resourcePath] contains non-English characters:

NSURL* url = [NSURL URLWithString:[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:urlStr]];
1
You shouldn't use +URLWithString: with path strings. It's only for URL strings. Use one of the +fileURLWithPath:... methods.Ken Thomases
Just add custom text in plist for CFBundleDisplayName. PRODUCT_NAME and target name leave in english.Cy-4AH
@KenThomases, thanks. Note taken for when we change the code, if I don't manage to have a separate English name for the app's bundle.Sleiman
@Cy-4AH, I tried what you suggested and it seems to work fine: the app's display name on the device is in Chinese and the executable filename (the bundle name) is in English. I am uploading the archive to iTunesConnect as I write this and it has not complained about the app name. Please post your answer as a proper answer and I'll select it as the correct one. Thanks for your help.Sleiman

1 Answers

0
votes

Credit goes to @Cy-4AH, this is a correct answer:

Just add custom text in plist for CFBundleDisplayName. PRODUCT_NAME and target name leave in english.