【问题标题】:iOS Ad Hoc Distribution: Signer not valid error [duplicate]iOS Ad Hoc Distribution:签名者无效错误[重复]
【发布时间】:2011-06-14 23:10:27
【问题描述】:

可能重复:
Signer not valid error

我正在尝试通过临时分发部署我的应用程序,但无论我多么密切地关注 SO 上的文档/其他答案,我都会不断收到此错误。

这是我的过程:

  • 在 Prov. 中创建 Ad hoc 分发配置文件。门户网站。

  • 下载配置文件。单击并将其拖动到 Dock 上的 XCode 图标。它显示在管理器中

  • 创建 Entitlements.plist 文件(下面,由 XCode 自动生成,除了我自己添加的 get-task-allow 属性):

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
                           "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
        <key>application-identifier</key>
        <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
        <key>get-task-allow</key>
        <false/>
        <key>keychain-access-groups</key>
        <array>
            <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
        </array>
    </dict>
    </plist>
    
  • 转到 Target AND Project 设置,并设置代码签名 Entitlements 属性(我已尝试使用完整路径和相对路径)

  • 将代码签名实体和任何 iOS 设置为分发配置文件

  • 构建。检查构建日志。 Embedded.mobileprovision 文件在那里,并且代码已使用分发配置文件正确签名。

  • 进入 build 文件夹,点击 .app 文件并将其拖到 iTunes 图标上

  • 查看 .app 内容并查看 Entitlements.plist 是否存在且正确(如上)

  • 单击 .mobileprovision 文件并将其拖动到 iTunes(现在出现“您要替换吗?”对话框...它显示在 ~/Library/MobileDevice/Provisioning Profiles 文件夹中)

  • 退出 XCode

  • 连接 iPhone

  • 同步

  • “签名者无效”错误。

我在 Apple 开发者网站和 Stack Overflow 上都按照 T 的说明进行操作,但仍然一无所获。我希望我只是累了,错过了一些东西,所以我把我的整个过程给你们分开了。

**注意:如果配置文件已经在设备上(即通过 XCode 添加),我可以通过 iTunes 添加应用程序。但似乎 iTunes 不会将配置文件添加到设备中。这不适用于不是每个人都有 XCode 的临时发行版......甚至是 Mac。必须有一种方法可以通过 iTunes 安装配置文件。

另一个注意事项:我的同事(我试图在他的手机上安装此应用程序)声称他不需要为他最近获得的另一个临时分布式应用程序安装配置文件。他收到了一个 .zip 文件,他只需将其拖入 iTunes 即可。那可能吗?我想做一个这样的构建工作,因此最终用户(用于测试阶段)不必处理安装配置文件。**

提前致谢, 欧空局

【问题讨论】:

  • 尝试了所有这些答案,但都没有奏效。
  • 您是否也将.mobileprovision 添加到iTunes 中?您是否检查了 .app/ 中的权利内容是否正确?
  • 是的,是的。将编辑主要问题
  • 确保授权属性也有一个相对路径,大多数时候,只有文件名Entitlements.plist,可能是带有Xcode4的Source/文件夹
  • 我已经尝试过相对和绝对。我在原帖中提到过。我坚持相对,因为大多数答案都告诉我。我在 XCode 3.2.5

标签: iphone objective-c xcode itunes provisioning


【解决方案1】:

fyi,我的 entitlements.plist 只是:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>get-task-allow</key>
  <false/>
</dict>
</plist>

我没有这个问题...

但我过去有过这种情况,因为我记得没有权利文件。 这是一个很难解决的问题……因为这一次,我失去了几个小时,一个恼火的客户……祝你好运! :)

作为最后的机会,我想说尝试清理所有证书/配置文件(直接在钥匙串中)并重试用户程序指南的整个步骤列表,甚至重新生成证书。还要注意通配符应用标识符...

【讨论】:

  • 我刚刚用你的权利替换了我的权利,清理并重建......仍然是同样的问题:/我也尝试过使用开发配置文件,而不是分发配置文件,只是为了它的地狱,什么都没有。
【解决方案2】:

这就是我所做的,我正在使用它没有任何问题。

  • 使用新生成的前缀创建一个新的 App ID,后缀只有一个 *。它将为您省去更改要分发的任何应用程序的捆绑标识符的麻烦。

  • 使用 Ad Hoc 方法创建新的分发配置文件。选择您刚刚创建的 App ID,不要忘记选择设备。

  • 等待您的配置文件激活并下载它。您需要这个和您的 .ipa 来分发您的应用程序。 (我不明白你为什么要分发你的 .app。你不能。你可以分发你的 .ipa)。双击它以将其安装到您的 xcode。

  • 启动 xcode 并转到目标设置。选择您刚刚安装的分发配置文件。

  • 从活动方案中选择 iOS 设备并转到菜单:产品 > 存档。

  • 如果一切正常,Organizer 将弹出档案。选择您的应用程序并单击共享。确保使用正确的配置文件选择 .ipa。它会将其保存到您的磁盘中。

  • 将保存的 .ipa 和配置文件邮寄给您想与之共享应用程序的任何人。

在用户端,他们只需要将配置文件和.ipa 拖到iTunes 中,然后在那里同步设备。

祝你好运。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
  • 1970-01-01
  • 2010-12-23
相关资源
最近更新 更多