我需要在我们的调试版本中有一个settings.bundle,但不希望在我们的版本中有。 我该如何解决这个问题? 有没有一个脚本我可以用它从复制束资源建设阶段中删除它?如何防止在发布版本vs.s中使用Settings.bundle。调试版本?
6
A
回答
4
您可以编写一个脚本来为特定的构建配置完全删除设置包。对于目标,在“构建设置”下,可以选择运行脚本。这个脚本应该做你需要的东西:
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
的“壳”字段可以阅读“/ bin/sh的”
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
0
或者,只是不包括设置在“复制包资源”捆绑和添加一个构建阶段运行脚本,仅包含某些配置。
这里是一个运行脚本还更新一个版本,建立在设置捆绑
if [ ${CONFIGURATION} == "Debug" ] ; then
echo "Copying settings bundle..."
version=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$SRCROOT/Blah/Supporting Files/Info.plist")
build=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$SRCROOT/Blah/Supporting Files/Info.plist")
cp -r "${PROJECT_DIR}/Blah/Supporting Files/Settings.bundle" ${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app
echo "Updating settings bundle version to ${version}b${build}"
/usr/libexec/PlistBuddy "${BUILT_PRODUCTS_DIR}/${PRODUCT_NAME}.app/Settings.bundle/Root.plist" -c "Set :PreferenceSpecifiers:17
:DefaultValue $version($build)"
fi
确保改变了Blah/Supporting Files
路径,无论你实际上是
相关问题
- 1. Asp.net发布版本与调试版本
- 2. visual C++强制发布版本使用调试版本代码
- 3. 切换应用程序调试版本和MultiDexApplication发布版本
- 4. 如何在发布版本
- 5. 发布版本与调试版本性能
- 6. 发布版本的运行方式与调试版本不同
- 7. Qt调试版本和Qt发布版本有什么区别?
- 8. Sandcastle区分调试版本和发布版本?
- 9. Q/A,发布版本VS调试版本,并断言
- 10. VS10从调试版本生成发布版本
- 11. 调试发布版本时出错
- 12. 发布调试版本的asp.net dlls
- 13. 如何在Qt中分离发布和调试版本?
- 14. 如何彻底测试发布版本?
- 15. 防止使用ClickOnce部署调试版本
- 16. 什么的调试版本和发布版本,区别意味着和使用
- 17. 管理/使用具有调试版本和发布版本的库
- 18. 如何防止在新版本
- 19. 如何在MS发布管理2013版本中恢复发布版本?
- 20. 如何在Android设备上管理调试和发布版本?
- 21. 如何在Jenkins中发布maven版本?
- 22. 有条件地中止发布版本
- 23. iPhone应用程序中断发布版本不在调试
- 24. 如何在调试版本中测试断言,但在发布中返回值?
- 25. 从调试版本中检测发布版本的最佳方法? .net
- 26. Rails rvm:如何防止版本混淆
- 27. 发布版本与大会(等)版本
- 28. 如何防止在调试版本中填充目标缓冲区的strncpy_s?
- 29. 使用不同的DLL进行调试和发布版本
- 30. SCons:使用分层构建分离调试/发布版本dirs
为什么你不只是删除settings.bundle? – 2012-02-13 18:59:32
删除包.....没有考虑过......是否有效? – P5ycH0 2012-04-25 19:16:40