iOS Ad Hoc Distribution:签名者无效错误

时间:2011-06-14 23:10:28

标签: iphone objective-c xcode itunes provisioning

  

可能重复:
  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>
    
  • 转到目标和项目设置,并设置代码签名Entitlements属性(我已尝试使用完整路径和相对路径)

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

  • 生成。检查构建日志。 embedded.mobileprovision文件存在,代码使用分发配置文件正确签名。

  • 转到构建文件夹,单击并将.app文件拖到iTunes图标

  • 查看.app内容并查看Entitlements.plist是否正确(如上所述)

  • 点击并将.mobileprovision文件拖到iTunes(现在收到“你想要替换吗?”对话框......它显示在〜/ Library / MobileDevice / Provisioning Profiles文件夹中)

    < / LI>
  • 退出XCode

  • 连接iPhone

  • 同步

  • “签名者无效”错误。

我正在Apple开发者网站和Stack Overflow上关注T的说明,但仍然没有。我希望我只是累了,错过了一些东西,所以我把整个过程都提到了你们那里去分开。

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

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

先谢谢, ESA

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

  • 从主动方案中选择iOS设备,然后转到菜单:产品&gt;档案

  • 如果一切正常,主办方将弹出档案。选择您的应用程序并单击“共享确保使用正确的配置文件选择.ipa。它可以保存你的磁盘。

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

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

祝你好运。

答案 1 :(得分:0)

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>

我没有这个问题......

但我过去曾经这样做过,因为缺少了Entitlements文件。如果我记得很清楚的话。 这是一个难以解决的问题...因为这一次,我已经失去了几个小时,有一个生气的客户......祝你好运! :)

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