用于 Ad Hoc 分发的 XCode 4 的 iPhone 权利问题

标签 iphone code-signing adhoc entitlements

我已经重新阅读了有关 Ad Hoc 发行版的所有文档和帖子,但仍然存在问题。如果我尝试“无线”分发(使用 Safari 下载 .plist 和 .ipa 文件),应用程序开始下载,图标绘制正确,名称从“安装..”更改,但当完成大约 90% 时,我收到“无法下载...”警报。

如果我使用 iTunes 方法传输应用程序,我会收到“应用程序“xx”未安装在 iPhone“xx”上,因为权利不正确。”

问题 1:我了解到您不再需要单独添加 .mobileprovision 文件,因为 XCode(我使用的是 4.0.1)将其添加到 bundle 中 - 这是真的吗?

问题2:当我在 safari(在 iPhone 上)中“下载”.mobileprovision 时,它仅将其显示为文本。这是我的问题的症状还是无关紧要的?

问题3:这个问题与Entitlements.plist有关吗?我找不到 Apple 的任何文档或任何与我使用 XCode 4.0.1 编辑此文件时所看到的内容相关的博客。如果我按照说明进行操作(新建->新文件->代码签名->权利),我会得到一个只有“可调试” key 的默认文件。我尝试将其设置为“否”,添加一个 get-task-allow 键(替换现有的 - 大概可以调试是相同的键?)添加我的应用程序标识符,并添加一个 iPhone 权利字典,其中包含上述两个键(根据 Apple 的文档)。

问题 4:尝试让权利和代码签名发挥作用的 iPhone 开发人员的自杀率是多少?

为了减少我见过的类似问题的建议: 我确实已将代码签名权利设置到我的 Entitlements.plist 中以进行分发和发布。 我尝试过重新启动 XCode、重建、存档等 我尝试过重启 iPhone 我已经回到 iPhone

更新:在 XCode 4.0.1 中,编辑 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/>
         <key>application-identifier</key>
           <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
         <key>keychain-access-groups</key>
           <array>
             <string>$(AppIdentifierPrefix)$(CFBundleIdentifier)</string>
           </array>
</dict>
</plist>

这也适用于无线。
到底为什么默认的没有这一切,只有苹果才能回答。 我看不到如何在 Xcode 中编辑 plist 的原始文本,因此在 TextEdit 中进行了编辑。

关于用于 Ad Hoc 分发的 XCode 4 的 iPhone 权利问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449487/

相关文章:

ios - 如何以编程方式使用 autoresizing IOS?

java - 使用有效 CA 签名的小程序仍显示为未知发布者

swift - 协同设计分发应用程序中包含的 swift 框架的正确方法

ios - testflight 应用程序在启动时关闭

ios - 如何解决 "entitlement ' keychain-access-groups 具有配置文件不允许的值”

iphone - 团队代理是唯一可以构建 Ad Hoc 的代理吗?

iphone - Xcode - 有没有办法禁用 Iphone 充电?

iphone - 在 iPhone 操作系统上检测文件创建日期?

ios - 如何在 iOS 中以编程方式取消或阻止来电?可能吗?

windows - 我应该使用哪种类型的证书对 Windows 桌面应用程序进行代码签名?