【问题标题】:Signer not valid error签名者无效错误
【发布时间】:2010-12-23 20:46:59
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: iphone xcode itunes app-store-connect adhoc


    【解决方案1】:

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

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

    【讨论】:

    • 没有在目标上设置它是问题所在。该设置与 ad hoc 的项目设置有什么区别?
    • 另外,为什么我在同步 ad hoc 时从未看到用户的行为?
    • Apple 的相关文档在哪里?很难找到合适的地方来解释从头到尾的整个过程(不在供应门户中)
    • 不再需要手动创建和添加权利;这是 2009 年的问答。如今,权利是配置文件的一部分,Xcode 从那里获取它们。
    【解决方案2】:

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

    1. 解压ProblemApp.ipa
    2. cd Payload/ProblemApp.app
    3. pico embedded.mobileprovision

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

    【讨论】:

      【解决方案3】:

      来自文档:

      为 Ad Hoc 构建应用 分布类似于构建一个 用于 App Store 分发的应用程序,带有 两个附加步骤的例外。 首先,您需要创建一个 Ad Hoc 分发配置文件和 添加 iOS 设备的 UDID 你想分发到使用 iPhone 开发者计划供应 门户网站。其次,您需要创建一个 代码签名权利文件。为了 有关如何创建 权利文件读取管理 的应用程序权利部分 iOS 开发指南。


      管理应用程序授权

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

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

      在组和文件列表中,选择 资源组。选择文件 > 新建 文件。选择 iOS > 代码签名 > 权利模板。为文件命名 权利.plist。 (您可以使用任何 姓名;只需确保它与值匹配 代码签名权利构建 设置,如本文后面所述 部分。)设置的类型 属性列表文件到 iPhone 权利。选择文件 在文本编辑器中,选择查看 > 物业清单类型 > iPhone 权利清单。

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

      单击“添加子项”或“添加兄弟项” 所选右侧的按钮 排。添加子按钮有三个 描绘层次结构的线条,添加 同级按钮上有一个加号 (+) 它。选择权利属性 从出现的弹出菜单中。如果 您需要添加的权利 没有出现在菜单中,选择 查看 > 属性列表类型 > 默认 对于文件类型。然后输入 授权密钥名称和类型。

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


      一旦你 已创建您的权利文件 并将其添加到您的代码签名中 权利构建设置,打开 权利文件并添加或编辑 获取任务允许键并将其设置为 假的。

      除了压缩您的 .app 捆绑分发您的 Ad Hoc 构建 对测试人员等,建议 你也压缩 之前的配置文件 分发,因为某些电子邮件 客户端和服务器可能会损坏 配置文件。

      有关 Ad Hoc 的信息 分发请阅读 发布测试应用程序 iOS 开发指南中的部分。

      【讨论】:

      • 这是一个很好的答案,get-task-allow key 是大多数人的主要障碍。
      【解决方案4】:

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

      只是需要考虑的事情。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          【解决方案6】:

          这是另一个有趣的....如果您有单独的 iphone 和 ipad 授权文件,请确保为每个特定构建设置文件的目标...否则它不会显示在构建中并且您会报这个错误

          【讨论】:

            【解决方案7】:

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

            最后,我删除了所有配置文件,然后进行了刷新。现在一切正常。

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

            【讨论】:

              【解决方案8】:

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

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

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

              然后:

              1. 运行 iphone 配置
              2. 将 Embedded.mobileprovision 文件拖放到应用中
              3. 点击左侧的设备
              4. 点击“配置文件”标签
              5. 点击配置文件,然后点击“安装”按钮

              然后应用就安装好了。

              【讨论】:

                【解决方案9】:

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

                【讨论】:

                  【解决方案10】:

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

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

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

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-01-09
                    • 2011-11-18
                    • 2015-10-22
                    • 2018-07-22
                    • 1970-01-01
                    • 2012-07-02
                    相关资源
                    最近更新 更多