P5y*_*cH0 7 iphone debugging release settings.bundle
我需要在我们的调试版本中有一个settings.bundle,但不希望在我们的Release中有它.我该如何处理?是否有我可以用来从复制包资源构建阶段删除它的脚本?
P5y*_*cH0 12
找到了.我已经创建了一个RunScript作为构建阶段的最后阶段.在那里,我删除设置plist中的所有条目,并将其替换为版本号.这样,我可以使用settings.bundle root.plist作为我的调试项目的设置(以便能够定义要使用的测试服务器或在调试版本中可以指定的任何其他东西).因此,当您构建调试时,root.plist就是您所期望的.运行Release版本时,内容将替换为info.plist的CFBundleVersion信息.所有调试相关的选择都消失了.
if [ "$CONFIGURATION" = "Release" ] ; then
echo "Replacing $CODESIGNING_FOLDER_PATH/Settings.bundle for 'Release' build"
APPVERSION="`/usr/libexec/PlistBuddy -c \"Print :CFBundleVersion\" \"$CODESIGNING_FOLDER_PATH/Info.plist\"`"
SETTINGSBUNDLEPATH="$CODESIGNING_FOLDER_PATH/Settings.bundle/Root.plist"
/usr/libexec/PlistBuddy -c "Delete :PreferenceSpecifiers" "$SETTINGSBUNDLEPATH"
/usr/libexec/PlistBuddy -c "Add :StringsTable string 'Root'" "$SETTINGSBUNDLEPATH"
/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers array" "$SETTINGSBUNDLEPATH"
/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:0 dict" "$SETTINGSBUNDLEPATH"
/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:0:Type string 'PSGroupSpecifier'" "$SETTINGSBUNDLEPATH"
/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:0:Title string 'Version Information'" "$SETTINGSBUNDLEPATH"
/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:1:Type string 'PSTitleValueSpecifier'" "$SETTINGSBUNDLEPATH"
/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:1:Title string 'Release:'" "$SETTINGSBUNDLEPATH"
/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:1:Key string 'appVersion'" "$SETTINGSBUNDLEPATH"
/usr/libexec/PlistBuddy -c "Add :PreferenceSpecifiers:1:DefaultValue string '$APPVERSION'" "$SETTINGSBUNDLEPATH"
fi
Run Code Online (Sandbox Code Playgroud)
您可以编写脚本以完全删除某个构建配置的设置包.对于目标,在"构建设置"下,可以选择运行脚本.这个脚本应该做你需要的:
BUILD_APP_DIR=${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
if [ "$CONFIGURATION" == "Release" ]; then
rm -Rf $BUILD_APP_DIR/Settings.bundle
echo "Removed Settings Bundle"
fi
Run Code Online (Sandbox Code Playgroud)
"shell"字段可以读为"/ bin/sh"