使用通配符配置文件签署app的问题

时间:2014-02-25 06:27:03

标签: ios iphone objective-c provisioning-profile

我为客户开发了一个iPad应用程序。我的客户拥有Apple Enterprise许可证。但他们不允许我用他们的证书签署应用程序。他们只是要求我提供.xarchive文件,以便他们可以签署应用程序并创建ipa文件。 我就是这样做的

1. Create a appid with com.mycompany.myapp.abc
2. Create a adhoc profile using above appid with my developer portal
3. set the bundle ID of my app com.mycompany.myapp.abc
4. Set the code signing identity to above profile in my app's target
5. archive the file using xcode 4.6.1
6. export the xarchive file and send to the client
7. Ask client to create a inhouse Dis profile with com.mycompany.myapp.* appid
8. Ask client to open the xarchive file using xcode and sign the app with inhouse profile and create the ipa file

他们已按照7,8中的上述说明创建了ipa文件。但是当我们尝试使用xcode将ipa文件安装到设备时,会出现以下错误。

enter image description here

以上程序是否有任何问题。有人可以解释这个问题。

编辑:

出于测试目的,我使用com.mycompany。*创建了adhoc配置文件,并通过在xarchive文件上签名创建了一个ipa文件,它给出了相同的错误消息。但是,如果我使用com.mycompany.myapp.abc包装的配置文件签署xarchive文件,则包ID正常。

2 个答案:

答案 0 :(得分:0)

您应该按照以下步骤为客户

进行adhoc分发.ipa
  1. 在目标info.plist中设置包标识符
  2. 选择目标和项目中的临时分发配置文件
  3. 选择iOS设备,然后选择产品 - > archieve
  4. 将弹出组织者,然后选择存档并选择“分发” - > Adhoc Enterprise发布

  5. 选择正确的ad hoc分发配置文件,然后保存此.ipa文件。

  6. 然后将其发送给客户端并让他知道在归档或构建应用程序之前,我们需要正确的adhoc配置文件。所以没有必要在你的最后重复这个过程来设置配置或其他东西只是分发它。

  7. How to distribute your iOS app over the air:

    只需将.ipa文件和plist放在服务器上,并在上面的链接示例中设置路径。

答案 1 :(得分:0)

<强> TL; DR : 找出客户的(配置文件)权利是什么,并确保您匹配它们。

错误是试图说明配置文件中的权利及其配置文件不同。差异可能是钥匙串组,推送通知环境或其他。

Xcode要求您选择配置文件两次(一次归档时,一次分发时)的原因是所有配置文件权利都在归档阶段被选中并且在分发中大多被忽略阶段。

这使得使用错误的权利进行分发变得非常容易,特别是如果您的存档阶段意外地选择了通配符配置文件。不是你的情况,但这就是为什么你应该用火来烧掉通配符。

有一些聪明的重新签名脚本(又名“Distribute ...”按钮替换)会尝试通过将他们在最终用户配置文件中找到的内容混合到二进制文件中来使权利正确,但我认为最好的解决方案是确保您的配置文件的权利以及您添加到应用中的任何额外权利与其配置文件相匹配。

我发现Xcode的配置文件/权利系统容易出错。您手头上的权利基本上是应用程序身份的一部分,也可能是一成不变的(TODO:让您的CI服务器检查它们)。另一方面,Xcode的构建阶段会根据其自动/随机配置文件选择,愉快地更改应用程序的权利。愚蠢的。