2009-08-14 79 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