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".
Info.plist file will have the following keys:
PRODUCT_NAME: the name of the
.appbundle and executable file.
CFBundleName: the app name when
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
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.