2011-12-08 43 views
3

我尝试使用命令行构建iPhone应用程序。plist实用程序转换iphone应用程序中的info.plist

我在Info.plist文件中遇到问题。

的XCode转换XML文件MyApp的-Info.plist中二进制文件的Info.plist,像这样:

builtin-infoPlistUtility MyApp-Info.plist -genpkginfo <path>/MyApp.app/PkgInfo -expandbuildsettings -format binary -platform iphoneos -resourcerulesfile <path>/MyApp.app/ResourceRules.plist -o <path>/MyApp.app/Info.plist 

今天,我编译的Info.plist与XCode的,然后我可以成功地使用密码签名MyApp.app。

我尝试编译的Info.plist与plutil工具,就像这样:

plutil -convert binary1 <path>/MyApp.app/Info.plist 

它的工作原理,但随后协同设计失败,错误:

object file format invalid or unsuitable 

我想我需要其他选择为plutil实用程序,但我不知道哪些。

请帮忙吗?

回答

2

我很确定Info.plist文件不需要以二进制格式工作。如果你只是把它作为标准的XML文件,它会工作吗?

CFBundleResourceSpecification键缺失时,我看到此错误消息,应该可能有值ResourceRules.plist。如果CFBundleExecutable密钥丢失,它也会发生。

的一个好办法,看看哪些键是在一个应用程序产生的捆绑使用是要做到这一点:

  1. 在Xcode
  2. 配置最低版本,平台,方位等创建一个新的新iOS应用
  3. 构建应用程序
  4. 展开“产品”组中的项目树,然后选择“在Finder中显示”上的应用程序
  5. 选择“显示包内容”的应用程序捆绑
  6. 打开Info.plist文件,并检查它

使用plutil如果你想转换为生成的二进制文件的plist为XML格式。

+0

就是这样!我认为我必须像XCode那样有一个二进制Info.plist,因为当我签署.app时,我有一个错误。但是,包括您提到的CFBundleResourceSpecification关键字,它的工作原理!太好了!谢谢 ! – TheFrancisOne

+0

但我还有另一个问题,我没有找到:我想指定“IOS目标deplyment”,因为我可以用XCode做。我在Info.plist中尝试了“MinimumOSVersion”键,但苹果不推荐使用它,并且密码使用此键失败。任何帮助? – TheFrancisOne

+0

'LSMinimumSystemVersion'接缝成为新钥匙。我用更通用的方式来更新我的答案,以找出最终应用捆绑包上使用的密钥。 –

相关问题