I'm trying to localize the name of an app while still being able to append a string depending on the build configuration. So currently it is set up as:
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}${BUNDLE_DISPLAY_NAME_SUFFIX}</string>
That setting is defined as:
This way we can add the suffix to the app for our different beta builds. The problem is that when we try to localize the app display name in the localized InfoPlist.strings
like so
CFBundleDisplayName = "Localized App Name";
We overwrite the value stored in the Info.plist
, and lose the suffix character. Is there any good way around this? We would like to avoid having multiple Info.plist
files.
You will need a custom script to do this. Here is one that is working for me
PREFIX_IDENTIFIER="=com.mycompany.bundlenameprefix="
PREFIX=""
if [ $CONFIGURATION == "Debug" ]
then
PREFIX="α "
fi
if [ $CONFIGURATION == "Enterprise" ]
then
PREFIX="β "
fi
for i in `dirname "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"`/*.lproj/InfoPlist.strings
do
plutil -convert json "$i"
sed -i -e "s/${PREFIX_IDENTIFIER}/${PREFIX}/g" "$i"
plutil -convert binary1 "$i"
done
Then in your InfoPlist.strings add a prefix to the bundle name like so
CFBundleDisplayName = "=com.mycompany.bundlenameprefix=My App";
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With