无法通过Xcode组织者/ iTunes安装iPhone应用程序存档

3
我花了相当长的时间来解决以下问题: 我们通常将由Xcode构建的产品(OurApp.app)提供给客户进行测试(他们通常会通过iTunes将其拖放到测试设备上)。当然,所有这些设备都已启用测试,即已添加到我们构建应用程序的配置文件中。这已经运行良好一段时间了。
现在一个客户报告安装问题(iOS 6.0),我可以在我的iPhone 4(6.1.2)上重现这些问题,当我尝试将构建的存档拖放到Xcode组织器中的应用程序文件夹中时,设备控制台如下:
installd[54] <Error>: 0x2fef2000 handle_install: Install of "/var/mobile/Media/PublicStaging/OurApp.app" requested by mobile_installation_proxy
installd[54] <Error>: 0x2fef2000 MobileInstallationInstall_Server: Installing app ch.xxx.ourapp
installd[54] <Error>:  0x2fef2000  SecTrustEvaluate  [leaf CriticalExtensions IssuerCommonName]
installd[54] <Error>: 0x2fef2000 verify_signer_identity: MISValidateSignatureAndCopyInfo failed for /var/tmp/install_staging.Zq80Gw/OurApp.app/OurApp: 0xe8008015
installd[54] <Error>: 0x2fef2000 do_preflight_verification: Could not verify executable at /var/tmp/install_staging.Zq80Gw/OurApp.app
mobile_installation_proxy[4310] <Error>: 0x3d232b88 MobileInstallationInstall: failed with -1
mobile_installation_proxy[4310] <Error>: handle_install: Installation failed
installd[54] <Error>: 0x2fef2000 install_application: Could not preflight application install
installd[54] <Error>: 0x2fef2000 handle_install: API failed

我已经尝试过以下方法:

  • 通过codesign verify -vvvv验证存档,一切看起来都没问题。
  • 当我通过Xcode > Run(使用相同的预配文件)部署应用程序时,该应用可以安装并在设备上运行。
  • 在文本编辑器中查看存档的embedded.mobileprovision,我看到我的设备的UDID确实被包含在内。
  • 虽然最终失败,但通过组织者安装仍成功将预配文件导入库中,并且它保留了绿色勾号,表示相应的证书也可用(我已删除并重新尝试安装,只观察到同样的行为多次)。
  • 与某些人在论坛上声称的相反,使用开发预配文件构建的产品确实可以通过Xcode Organizer安装。您不需要分发预配文件即可执行此操作。我有几个使用开发预配文件构建的其他应用程序,描述的安装过程对它们也适用。

有任何想法吗?非常感谢任何建议,因为我现在卡住了。

1个回答

1
我曾经遇到过类似的问题,如果我在将构建文件压缩成IPA之前通过Finder浏览它,那么就会出现这种问题。我认为它会创建未签名的.DS_Store文件。

您是如何创建IPA文件的?您能在解压失败的IPA时验证代码签名吗?

此外,您是否知道OTA分发?使用像TestFlight这样的工具比手动分发要简单得多。


我只是通过压缩 .app 文件来创建存档(zip -y -r MyApp.app)。但是,在解压缩时,我无法看到任何 .DS_Store 文件。对于其他项目,我们使用 OTA 分发(HockeyKit),但是由于此项目仅需要一年发布一次,因此我们不想为此转向 OTA。 - Katlu
我现在尝试生成.ipa档案而不是zip文件(/usr/bin/xcrun -sdk iphoneos PackageApplication -v MyApp.app -o $WORKSPACE/MyApp.$BUILD_NUMBER.ipa --embed $MY_APP_PROVISIONING)。 我可以看到在创建ipa时验证步骤是正常的。当我在本地机器上构建时有所不同(ipa现在可以拖入我的设备的组织者中),但是当在构建服务器上构建ipa时仍然无法工作。 - Katlu
当解压失败的IPA时,您能验证代码签名吗? - Jim
然后我会向苹果公司发起技术支持请求。 - Jim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接