我需要在我們的調試版本中有一個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. PropertyInfo.CanWrite物業在調試版本真,在發佈版本
- 4. 切換應用程序調試版本和MultiDexApplication發佈版本
- 5. 發佈版本中運行時間過長(調試版本OK)
- 6. 如何調試在發佈版本中發生的崩潰只
- 7. 如何在發佈版本
- 8. VS發佈到Azure使用調試而不是發佈版本
- 9. Qt調試版本和Qt發佈版本有什麼區別?
- 10. 發佈版本與調試版本性能
- 11. Sandcastle區分調試版本和發佈版本?
- 12. Q/A,發佈版本VS調試版本,並斷言
- 13. 發佈版本的運行方式與調試版本不同
- 14. VS10從調試版本生成發佈版本
- 15. iOS移動版本調試與發佈
- 16. 調試發佈版本時出錯
- 17. 發佈調試版本的asp.net dlls
- 18. 發佈,調試版本和授權Google?
- 19. Gradle發佈版本仍然可調試?
- 20. 發佈版本調試問題
- 21. 如何在Qt中分離發佈和調試版本?
- 22. 如何使用git發佈版本控制版本
- 23. 如何徹底測試發佈版本?
- 24. 防止使用ClickOnce部署調試版本
- 25. 什麼的調試版本和發佈版本,區別意味着和使用
- 26. 管理/使用具有調試版本和發佈版本的庫
- 27. 如何防止在新版本
- 28. 使用git流版本時在github中沒有發佈版本
- 29. 發佈版本中的更多FxCop調查結果比調試版本
- 30. 發行版與調試版本
爲什麼你不只是刪除settings.bundle? – 2012-02-13 18:59:32
刪除包.....沒有考慮過......是否有效? – P5ycH0 2012-04-25 19:16:40