【问题标题】:Xcode 4.1 - Archiving app gives me Entitlments.plist errorXcode 4.1 - 归档应用程序给了我 Entitlments.plist 错误
【发布时间】:2011-08-18 10:49:01
【问题描述】:

我正在使用 Xcode 4.1 和 MacOSX Lion 10.7。我正在尝试存档我的 Mac 应用程序,以便我可以将我的应用程序上传到 iTunes 连接,但它给了我这个错误:

ProcessProductPackaging /Developer/Platforms/MacOSX.platform/Entitlements.plist /Users/username/Library/Developer/Xcode/DerivedData/appname/Build/Intermediates/appname.build/Debug/appname.build/appname.xcent cd "/Volumes/Apps/iOS/Mac 应用商店/应用名称" builtin-productPackagingUtility /Developer/Platforms/MacOSX.platform/Entitlements.plist -entitlements -format xml -o /Users/username/Library/Developer/Xcode/DerivedData/appname/Build/Intermediates/appname.build/Debug/appname.build /appname.xcent

错误:读取属性列表时出错 '/Developer/Platforms/MacOSX.platform/Entitlements.plist' - 属性列表没有对象 命令 builtin-productPackagingUtility 失败,退出代码为 1

如果我不签署代码,则不会发生此错误。在升级到 Xcode 4.1 之前,我能够正确提交我的应用程序。我似乎找不到任何关于如何在 xcode 4 中签署应用程序的文档,而且我不知道新的启用权利和沙盒的作用。

当我以某种方式让它工作时,我从 iTunes 收到这封电子邮件,并出现以下错误: 无效的代码签名权利 - 您的应用程序包签名中的权利与配置文件中包含的权利不匹配:

根据配置文件,捆绑包包含一个不允许的键值:appname.app/Contents/MacOS/appname 中键“com.apple.application-identifier”的“appname”

我需要做什么才能将我的应用正确提交到 iTunes Connect?

【问题讨论】:

    标签: xcode4 archive code-signing osx-lion


    【解决方案1】:

    事实证明,如果您使用的是 2010 年 6 月之后生产的新 Macbook,则打包应用程序会出现问题。要打包您的应用程序,请按以下步骤操作:

    1) 构建和存档

    2) 打开 Organizer - Archives,找到新的存档。

    3) 右键单击​​存档“在 Finder 中显示”

    4) 右键单击​​查找器中的存档以“显示包内容”

    5) 深入了解您的应用 (>Products/Applications/YourApp)

    6) 右键单击​​您的应用,“显示包内容”

    7) 删除​​ _CodeSignature 目录

    8) 编辑 Info.plist

     a) Change BuildMachineOSBuild to "11A511"
    
     b) Save, close
    

    9) 回到finder中的Products/Applications/YourApp目录

    10) 打开 Keychain Access.app

     a) Find your certificate "3rd Party Mac Developer Application: Your Name"
    
     b) double click to inspect it
    
     c) Copy the full Common Name "3rd Party Mac Developer Application: Your Name"
    

    11) 打开终端并输入以下内容:

     codesign -s "<paste your cert common name here>" -fv <drag the archived app from the finder to the terminal window here>
    

    12) 验证输出:

     "...path to app...: replacing invalid existing signature"
    
     "...path to app...: signed bundle with Mach-O universal (i386 x86_64)"
    

    13) 关闭所有窗口。

    14) 打开管理器 - XCode 中的档案

    15) 验证...是的。

    16) 提交...耶!

    【讨论】:

    • encoutering 这个,非常感谢,+1。您是否有机会找到实际导致此代码设计错误的原因?
    【解决方案2】:

    这个方法实际上也对我有用!

    这是我的错误,iTunes Connect 一直将其踢出,而不是拒绝……几乎是瞬间踢出。 所以无论如何......这个方法对我有用!现在应用程序正在审查中。正如他所说的耶!


    无效的代码签名权利 - 您的应用程序包的签名包含 Mac OS X 不支持的代码签名权利; 如果您的 Mac OS X 项目是从 iOS 移植的,则可能会发生这种情况。 请检查您的 Xcode 项目的代码签名权利配置,并删除任何不需要的权利。

    具体来说,不支持 [YourAppName] 中的键“keychain-access-groups”。 无效的代码签名权利 - 您的应用程序包的签名包含 Mac OS X 不支持的代码签名权利; 如果您的 Mac OS X 项目是从 iOS 移植的,则可能会发生这种情况。 请检查您的 Xcode 项目的代码签名权利配置,并删除任何不需要的权利。 具体来说,不支持 [YourAppName] 中的键“application-identifier”。


    只是想补充一下...我还有一台黑色 MacBook,它是 2010 年之前制造的...我仍然按照说明将密钥“BuildMachineOSBuild”添加到“11A511”。:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-09
      • 2011-08-10
      • 1970-01-01
      • 2015-12-29
      • 1970-01-01
      • 2015-09-22
      相关资源
      最近更新 更多