2013-10-03 54 views
9

使用Xcode 5的新素材資源庫,添加圖像並組織它們從未如此簡單。但是,它好像破壞了我用於創建構建的一些腳本。在啓用素材庫的情況下在Xcode 5中修改Info.plist的CFBundleVersion

我在我的運行腳本階段中有一個腳本,它將CFBundleVersion設置爲plist中的當前時間戳。在腳本中,我執行該語句:

/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $timestamp" $BUILT_PRODUCTS_DIR/$INFOPLIST_PATH 

然而,當這被執行,下面的語句顯示:

Set: Entry, ":CFBundleVersion", Does Not Exist 
File Doesn't Exist, Will Create: /Users/SpacePyro/Library/DerivedData/BundleTest-duikdqngfmrovnagrcsvdcuxxstz/Build/Products/Debug-iphoneos/BundleTest.app/Info.plist 

看起來這發生在乾淨的構建。這個plist似乎並沒有在構建過程中產生,大概是由於資產庫。

我也用這個命令,雖然它不會引發錯誤,但它仍然吹走了我的變化(假設INFO_PLIST="${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Info"):

defaults write $INFO_PLIST CFBundleVersion $timestamp 

這曾經不是這樣的,當我開始使用素材資源庫來組織我的應用程序圖標和閃屏圖像。任何人都知道爲什麼會這樣?更好的是,是否有一種解決方法將這個值添加到plist中?我已經嘗試將腳本置於預執行構建階段以及執行​​後構建階段。我也嘗試在構建完成後運行命令,但是當我嘗試對它進行編碼和打包時,它表示簽名由於plist修改而無效。

如果沒有合理的解決方案,我想我總是可以從資產庫中取消遷移,直到我可以讓我的腳本運行。

回答

11

想出了這一個,這是一個愚蠢的。原來,你可以將腳本階段移到最後。我甚至不知道這些是可移動的,或者它是重要的!但通過將運行腳本階段拖到底部,腳本可以根據需要運行和修改內容。

Build Phases

+0

謝謝!這也解決了我的問題。 – Sway

+6

不幸的是,將這個結果並沒有解決這個問題。 – Ants

+0

不幸的是,它並沒有幫助解決問題 – MackC

9

我有同樣的問題,對我來說,我有一個錯誤的文件路徑XXX-Info.plist文件:

構建設置 - >包裝 - > Info.plist文件

我改變了它的實際位置並開始工作。

Description to where to change the wrong settings

+0

Xcode讓我選擇一個info.plist。在我做完之後,路徑是一個完整的路徑,這意味着sh在調用時找不到info.plist。所以,將它改爲**相對路徑**。 –

1

如果你的plist文件是Preprocessed-Info.plist,然後像this改變 「預處理Info.plist文件」(INFOPLIST_PREPROCESS)爲 「是」(true)的值。

4

我有類似的問題一次,這裏是最後幫了我:

buildNumber=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${INFOPLIST_FILE}") 
buildNumber=$(($buildNumber + 1)) 
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildNumber" "${INFOPLIST_FILE}" 

(使用直接INFOPLIST_FILE,不$ BUILT_PRODUCTS_DIR/$ INFOPLIST_PATH

希望,這可能是有用。

相關問題