2009-08-14 75 views
2

我使用的XCode構建iPhone應用程序,在那裏,我想在外部處理中相同的方式的信息plist文件,如下所示的XCode生成步驟確實如何運行com.apple.tools.info-plist-utility?

Processing /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/Info.plist TestAppGen-Info.plist 
mkdir /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app 
cd /Users/kte/Projects/TestAppGen 
setenv PATH "/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin" 
<com.apple.tools.info-plist-utility> TestAppGen-Info.plist -genpkginfo /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/PkgInfo -expandbuildsettings -format xml -o /Users/kte/Projects/build/Debug-iphonesimulator/TestAppGen.app/Info.plist 

這從構建日誌摘要是指一個com.apple.tools.info-plist-utility,我從網上的各種來源收集,是一個內部XCode實用程序。

是否可以從命令行運行com.apple.tools.info-plist-utility?

回答

3

您可以使用名爲PlistBuddy的工具,/usr/libexec/PlistBuddy,查看其手冊頁。

但您還需要將plist轉換回二進制plist文件。這可以在構建腳本中這樣完成

plutil -convert binary1 "$TARGET_BUILD_DIR/$INFOPLIST_PATH" 
2

「plutil」答案是一個很好的開始。不幸的是,Xcode的構建過程確實要比轉換成二進制的,例如我的系統更給Info.plist文件它增加了以下字段:

-MinimumOSVersion
-PlatformName
-CFBundleExecutable
-SDKName
-CFBundleResourceSpecification
-CFBundleSupportedPlatforms

按照Apple documentation你不應該設立一些值自己:

MinimumOSVersion

MinimumOSVersion(String)。當您構建iPhone應用程序時,Xcode 會將目標OS(由 Base SDK選擇確定)記錄爲 MinimimOSVersion屬性。不要 自己在 Info.plist文件中指定此屬性;它是一個 系統編寫的屬性。當您將 發佈到App 商店時,商店會指示iPhone 操作系統版本,您的應用程序 可以基於此屬性運行。這是 相當於 LSMinimumSystemVersion財產在Mac OS X.

我遇到的種種嘗試重新註冊我的應用程序作爲我的自定義生成過程的一部分問題。

+0

好的,謝謝你的回答。 – TheFrancisOne 2011-12-13 14:05:56