Suppose you have an Xcode project where the product name includes special characters like an umlaut 'ü':
If you try to archive it and upload it to App Store Connect you might be faced with the following mysterious error:
ERROR ITMS-90035: "Invalid Signature. A sealed resource is missing or invalid. The file at path [Dümmy.app/Dümmy] is not properly signed. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate. Verify that the code signing settings in Xcode are correct at the target level (which override any values at the project level).
This happens because the default Xcode configuration uses the same variable to set both the names of the .app
package and the .ipa
archive - both of which may not have special characters. And in this case it is set to "Dümmy".
The Info.plist
file will have the following keys:
-
PRODUCT_NAME
: the name of the.app
bundle and executable file. -
CFBundleName
: the app name whenCFBundleDisplayName
isn't set.
The tricky part is CFBundleName
which is set to the value of $(PRODUCT_NAME)
by default. What Apple docs do not mention is that starting with Xcode 12 and beyond it also represents the .ipa
file name.
The solution is to set both PRODUCT_NAME
and CFBundleName
to values with no special characters and to explicitly set the display name under Project Navigator → General → Display Name. This will generate a new key CFBundleDisplayName
whose value will be preferred over CFBundleName
for the app name.
Now you can keep the app name with special characters, but remove them from the file names for the app package and archive.
This article was cross-posted from my personal blog. Do subscribe to me there!
Top comments (0)