繁体   English   中英

Xcode 中的 iOS 配置文件编号

[英]iOS provisioning profile number in Xcode

无论如何要将 Xcode 的组织者或在线开发人员站点中的配置文件与 Xcode 代码签名首选项下给出的疯狂序列号/ID 号相匹配?

在此处输入图片说明

我想确保我使用正确的 (Ad Hoc) 配置文件构建我的应用程序——Xcode 给了我一个长 ID(如上所示),但在线开发人员站点和列出我的配置文件的 Xcode 首选项没有“ t 列出这个数字。

Xcode 中显示的内容保证是配置文件的唯一 UUID。 验证它是否是您想要的配置文件。 转到 Apple Developer“证书、标识符和配置文件”站点。

  • 查看代码签名详细信息以获取配置文件的名称

代码签名细节

代码签名细节放大

下载配置文件

  • 下载您认为应该是的配置文件
  • 使用以太网命令行或纯文本编辑器查看配置文件的内部。 不要使用 Xcode (我个人只是将文件拖放到 TextMate 2 中)

在此处输入图片说明

  • 比较文件中的 UUID 和您在 Xcode 中的设置

仅供参考:配置文件和开发证书已失效。

您可以在门户中创建新证书,但使用 Xcode 更容易。 (我个人不会使用 Beta Xcode 6,以下所有屏幕截图均来自 Xcode 5.1)正如您所看到的,我的 Testflight 分发证书和配置文件已过期。 过期的证书不是一个大问题,它们不会影响您在商店中的应用程序。 人们购买的应用程序均由 Apple 签名。 您必须签署该应用程序才能提交审核,以证明该应用程序来自您。 如果证书在您审核期间过期,则可能会出现问题,但您需要做的就是重新提交。 如果您的 Ad Hoc 分布式应用程序证书过期,那么您的 Beta 测试人员将无法再运行它。 您将不得不使用新证书和更新的配置文件为它们分发一个新版本。

  • 使用 Xcode 更新分发证书 - Xcode - 首选项 - 帐户选项卡 - 选择帐户 - “查看详细信息...”按钮

在此处输入图片说明

  • 添加新的分发证书

在此处输入图片说明

  • 这需要一些时间,~ 30 秒? 要有耐心

  • 成功

在此处输入图片说明

  • 您现在可以使用门户来编辑或创建新的配置文件,并完全控制谁可以访问您的 Ad Hoc Distributed App

证书和配置文件说明

这只是安全性和私钥/公钥密码学。 就像设置 ssh 密钥一样,细节决定成败。 缺少一件事,一项不正确的权限,一点点更改,但没有任何效果。

供应配置文件图

玩家们

  • 您的私钥 - 需要签署对象,然后可以使用您的证书进行验证
  • 您的 iPhone 证书(由 Apple 签名机构使用您的公钥创建)
  • Apple 的中间证书 - 标识验证证书所需的签名机构的证书
  • 配置文件 - 包含
    • 应用程序 ID
    • 证书
    • 设备 ID 列表

要求

  • 确定开发商
  • 确定 iPhone 开发团队(Apple iOS Developer Membership)
  • 确定应用程序
  • 识别各个授权设备
  • 确保用户设备上的应用程序的任何字节都没有改变

常见问题:

  • 配置文件中的应用 ID 与应用信息 plist 中定义的捆绑标识符不兼容。 是的,不幸的是 Xcode 将其称为包标识符,而门户将其称为 App ID。 默认应用程序模板将包标识符链接到应用程序名称的变异版本,因此更改名称会破坏除模拟器之外的所有内容。 请参阅:深入的团队配置文件 - https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/LaunchingYourApponDevices/LaunchingYourApponDevices.html#//apple_ref/doc/uid/TP40012582-CH27-SW10
  • 新机器:Xcode 中没有开发人员帐户,因此没有证书和配置文件
  • 新机器:证书没有私钥
    • 当 Xcode 为您创建证书时。 它首先创建一个私钥/公钥对。 私钥保存在钥匙串中。 证书签名请求被上传到苹果。 您的证书是自动创建和下载的。 您始终可以重新下载您的证书或配置文件,但您的私钥仅在您的钥匙串中,而且很可能仅在一台计算机上。 除非您启用钥匙串同步或明确地将其保存到文件并将其通过网络连接到另一台机器。
  • 新机:缺少来自 Apple 全球开发者关系证书颁发机构的中级证书
  • 证书和/或配置文件已过期
  • 钥匙串访问不是“始终允许”。 证书安全地存储在钥匙串中,因此 Xcode 始终需要钥匙串访问

参考:Apple 的应用程序分发指南 - https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/AppDistributionGuide.pdf

这条线索隐藏在wcochran的评论中,但如果您只需要查看 mobileprovision 文件的 UUID,请运行以下命令:

grep -a -A 1 'UUID' <PATH_TO_MOBILEPROVISION_FILE>

这将打印如下内容:

<key>UUID></key>
<string>1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e</string>

<string>标记之间的值是您需要的 UUID。

您还可以在vim或其他不介意非 UTF-8 字符的文本编辑器中打开该文件。 (由于这个原因,括号不起作用)。

这是一个非常方便的工具: https : //github.com/chockenberry/Provisioning

这是一个 Quick Look 插件,可让您查看有关 .mobileprovision 配置文件的信息,包括其 UUID。 另一个好处是它会显示为该配置文件配置的设备。

我在任何地方都找不到 Windows 答案,所以这里是:

如果您使用 Windows,则只需使用文本编辑器(我使用 Notepad++)打开下载的配置文件即可识别配置文件的 UUID

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM