15

我已经创建了我的应用程序的临时构建,并希望其他人安装它。我在配置文件中有他们的设备 ID(实际上是两个)。我的证书对于临时和应用商店配置是相同的。证书在钥匙串中有效。我为此构建选择了 Xcode 中的临时配置文件,它链接到分发证书。

我向用户发送配置文件和 .app 文件。他们将两者都放入 iTunes 并同步,然后在两台设备上都出现此错误:

The application "myapp" was not installed on the iPhone "user's iPhone" because the signer is not valid.

我已经从我的 iPhone 中删除了所有配置文件,将上述两个文件放入 iTunes,同步并成功安装了该应用程序。我不能让它为我复制。我需要在本地重现此问题以找出问题所在。有什么想法可以做到吗?

4

10 回答 10

16

您是否添加了权利?将签名放在目标级别,而不是项目级别?选择 Ad Hoc 配置文件?在构建之前进行清洁吗?选择构建的 Ad Hoc 设备?

最好的办法是完全遵循 Apple 的文档让您的构建设置与 Apple 的完全匹配。

于 2009-12-07T12:04:55.077 回答
6

最好检查捆绑在 .app 文件中的 embedded.mobileprovision 文件,以确保 UID 存在于其中。只需执行以下操作:

  1. 解压ProblemApp.ipa
  2. cd Payload/ProblemApp.app
  3. pico 嵌入式.mobileprovision

在此文件中查找您设备的 UID。如果它不存在,那么它可能不会添加到门户中的配置文件中。

于 2010-12-17T15:53:13.913 回答
4

从文档:

为 Ad Hoc 分发构建应用程序类似于为 App Store 分发构建应用程序,除了两个额外的步骤。首先,您需要创建一个 Ad Hoc Distribution Provisioning 配置文件,并使用 iPhone Developer Program Provisioning Portal 添加您想要分发到的 iOS 设备的 UDID。其次,您需要创建一个代码签名授权文件。有关如何创建权利文件的信息,请阅读 iOS 开发指南的管理应用程序权利部分。


管理应用程序权利

iOS 通过称为权利的属性提供对特殊资源和功能的访问,例如是否可以调试您的应用程序。要在您的应用程序中指定权利信息,您需要将包含权利定义(键/值对)的权利属性列表文件添加到您的项目中。当您构建应用程序时,Xcode 会将文件复制到生成的应用程序包中。

要将权利属性列表文件添加到您的项目:

在组和文件列表中,选择资源组。选择“文件”>“新建文件”。选择 iOS > 代码签名 > 权利模板。将文件命名为 Entitlements.plist。(您可以使用任何名称;只要确保它与 Code Signing Entitlements 构建设置的值匹配,如本节后面所述。)将属性列表文件的类型设置为 iPhone Entitlements。在文本编辑器中选择文件后,选择 View > Property List Type > iPhone Entitlements plist。

将您的权利条目添加到文件中。对于您需要定义的每个权利属性:

单击所选行右侧的 Add Child 或 Add Sibling 按钮。Add Child 按钮有三行描绘层次结构,Add Sibling 按钮上有一个加号 (+)。从出现的弹出菜单中选择权利属性。如果您需要添加的权利没有出现在菜单中,请选择“视图”>“属性列表类型”>“文件类型的默认值”。然后输入授权密钥名称和类型。

输入属性的值。将目标的代码签名权利构建设置设置为新添加的权利属性列表文件的名称。


创建权利文件并将其添加到代码签名权利构建设置后,打开权利文件并添加或编辑 get-task-allow 键并将其设置为 false。

除了压缩 .app 包以将 Ad Hoc 构建分发给测试人员等之外,建议您在分发之前还压缩配置文件,因为某些电子邮件客户端和服务器可能会损坏配置文件。

有关 Ad Hoc 分发的信息,请阅读 iOS 开发指南中的 Publishing Applications for Testing 部分。

于 2010-12-03T03:04:18.817 回答
3

我最近与一位测试人员在最近的构建中遇到了这个问题。事实证明,我的测试人员重置了他们的 iPod Touch 并在此过程中删除了配置文件。

只是需要考虑的事情。

于 2010-07-18T08:34:24.240 回答
2

我做了一些比其他人发布的更愚蠢的事情,我得到了这个错误。我在配置文件中添加了新设备,但忘记下载更新版本,将其添加到 Xcode,并将项目指向它。当我正确设置它时,测试人员能够很好地安装该应用程序。

于 2010-11-23T02:47:12.603 回答
1

这是另一个有趣的......错误

于 2011-01-09T00:02:15.927 回答
1

我来到这里是因为我遇到了与 OP 相同的问题。事实证明,我在权利文件中没有 UDID,即使我确定我在 XCode 管理器中使用了刷新。再次刷新没有任何区别。

最后,我删除了所有配置文件,然后进行了刷新。事情现在奏效了。

我不知道这是我的设置中的故障还是操作员错误。但是以防万一其他人发现自己处于这种情况:删除您的配置文件然后进行刷新可能是值得的。

于 2011-08-04T20:40:03.623 回答
0

这不适用于运行 IOS 3.1.3 的 iphone 3G。我通过查看设置->常规(没有列出配置文件选项)验证了分发配置文件不在手机上。

然后我安装了 iphone 配置实用程序:

http://support.apple.com/kb/DL851

然后:

  1. 运行iphone配置
  2. 将 Embedded.mobileprovision 文件拖放到应用程序
  3. 单击左侧的设备
  4. 单击“配置文件”选项卡
  5. 单击配置文件,然后单击“安装”按钮

然后应用程序安装得很好。

于 2011-02-07T02:48:10.993 回答
0

我也遇到了和 OP 一样的问题。愚蠢的错误:当我将它注册为设备时,我不小心把我试图临时分发到的设备上的最后两位数字丢掉了。

于 2011-08-13T23:43:10.913 回答
0

我两次遇到同样的问题(xcode 4.2 ios 5

第一次,我忘了在架构中添加 armv6

2,我创建了许多具有相同开发人员 ID 的配置文件的时间,我应该根据捆绑标识符的使用删除其他钥匙链......并且我错误地删除了有效并使用了其他 kechain

于 2012-04-11T07:40:10.473 回答