我正在尝试本地化应用程序的名称,同时仍然能够根据构建配置附加字符串。因此,当前将其设置为:
<key>CFBundleDisplayName</key>
<string>${PRODUCT_NAME}${BUNDLE_DISPLAY_NAME_SUFFIX}</string>
该设置定义为:
这样,我们可以将后缀添加到应用程序中,以用于不同的beta版本。问题是,当我们尝试在本地化的
InfoPlist.strings
中本地化应用程序的显示名称时,就像这样CFBundleDisplayName = "Localized App Name";
我们将覆盖
Info.plist
中存储的值,并丢失后缀字符。有什么好办法解决吗?我们希望避免使用多个Info.plist
文件。 最佳答案
您将需要一个自定义脚本来执行此操作。这是一个为我工作的人
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
然后在您的InfoPlist.strings中,为包名称添加前缀,如下所示
CFBundleDisplayName = "=com.mycompany.bundlenameprefix=My App";
关于ios - 使用附加字符串本地化Info.plist变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27799432/