Xcode中的iOS配置配置文件编号

wco*_*ran 14 xcode ios ios-provisioning

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

在此输入图像描述

我想确保我使用正确的(Ad Hoc)配置文件构建我的应用程序 - Xcode给了我一个很长的ID(如上所示),但是在线开发者网站和列出我的配置文件的Xcode首选项"列出这个号码.

Gay*_*DDS 19

Xcode中显示的内容是保证配置文件的唯一UUID.验证它是您想要的配置文件.转到Apple开发人员"证书,标识符和配置文件"站点.

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

代码签名细节

代码签名详细信息放大

下载供应配置文件

  • 下载您认为应该是的配置文件
  • 使用ether命令行或纯文本编辑器查看配置文件文件.不要使用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开发人员成员)
  • 确定应用程序
  • 识别各个授权设备
  • 确保用户设备上的应用程序的单个字节没有更改

常见问题:

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

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

  • 谢谢 - 我必须给你的答案添加书签,因为我觉得我再次提到它.我看到了'+'按钮而我(错误地)认为这是为了签署身份.有没有其他人发现这种供应伏都教令人沮丧? (2认同)

Jam*_*ans 10

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

grep -a -A 1 'UUID' <PATH_TO_MOBILEPROVISION_FILE>
Run Code Online (Sandbox Code Playgroud)

这将打印如下:

<key>UUID></key>
<string>1a1a1a1a-2b2b-3c3c-4d4d-5e5e5e5e5e5e</string>
Run Code Online (Sandbox Code Playgroud)

<string>标签之间的值是您需要的UUID.

您也可以打开文件vim或其他一些不介意非UTF-8字符的文本编辑器.(支架因此不起作用).