XCode 6 和不带 XC 的 Ad-Hoc 分发:配置

Posted

技术标签:

【中文标题】XCode 6 和不带 XC 的 Ad-Hoc 分发:配置【英文标题】:XCode 6 and Ad-Hoc distribution without XC: provisioning 【发布时间】:2014-11-17 22:33:48 【问题描述】:

昨天我下载了Xcode6,现在我遇到了一个我无法解决的问题。在我的会员中心,我有有效的证书和临时配置(分发)。直到昨天,在Xcode 5 中,如果我想将我的 .ipa 添加到 TestFlight,我正在使用存档并选择我的有效临时配置文件。我什至没有在 Xcode 中登录我的开发者帐户。

现在 - 在Xcode 6 - 根本没有任何工作。好的,我已经登录了首选项,Xcode 在 Mac 上下载了我所有的配置文件,但是每当我选择导出时,它都会说我没有匹配的配置文件,它正在使用 XC: 前缀创建新的配置文件——我没有不想使用,因为它包含我在会员中心拥有的所有设备 - 甚至是我不想包含在我的应用中的设备!

我正在尝试这个线程中的所有内容:

Xcode 6 - How to pick signing certificate/provisioning profile for Ad-Hoc distribution?

Xcode 6 GM creating archive

但没有什么对我有用。也许我没有正确理解它是如何工作的,并且我必须做一个技巧,但我想使用我定义的配置文件。我试图创建新的配置文件,重命名旧的配置文件,从 Mac 中删除所有配置文件,将配置文件从桌面拖到 Xcode 图标,再次在构建设置中选择正确的配置文件,但我被卡住了。

这里是截图:

我的临时配置文件是分发配置文件。

【问题讨论】:

也有这个问题。删除并重新制作了我所有的证书,包括 Xcode 神奇地为您创建的“XC”证书。 Xcode 仍然会自动重新创建并选择 XC 证书用于 IPA 临时分发。不知道发生了什么,所有其他解决方案似乎也不起作用。我将降级回 Xcode 5.1.1,直到问题得到解决。 删除钥匙串上的所有内容,developer.apple 上的许可证,然后按照以下步骤操作:***.com/questions/25567481/… 这很烦人。我也见证了这一点。是否有任何开发人员文档可以解释整个事情?基本上,这意味着如果 XCode 无论如何都会创建一个,那么创建自己的 AdHoc 配置文件是没有意义的。此外,我可以看到,每当我为 AdHoc 导出存档时,它都会选择一个相对随机的 XC* 配置。有时它与项目供应商有关,有时它只是 * 通配符。什么鬼? 为什么是苹果,为什么?这不是 VB6,我可以自己做配置文件... @rattkin 正确;制作自己的 AdHoc 配置文件毫无意义。 Xcode 所做的选择不是随机的。如果您的应用程序使用任何需要非通配符应用程序 ID 的功能,那么它将使用具有特定应用程序 ID 的配置文件。否则,它将使用带有通配符应用 ID 的配置文件。 【参考方案1】:

无法让 Xcode 6.x 使用不包含团队中所有设备的临时配置文件;这是设计使然。

【讨论】:

有没有教授链接?我以前没有看过这个信息。 除了是编写 Xcode 的那部分的工程师之一之外,我没有任何证据。 为什么要这样设计?为什么会引起无证(来自应用程序内)的混乱?当这里发布了其他(烦人的)解决方法时,为什么要通过一半来关闭它?这会给我们带来什么影响? 基本思想是配置文件应该是一个实现细节。没有人应该关心他们。在开发 Xcode 6 时,我们根本没有想到人们关心他们的配置文件中包含哪些设备。真的没有正当的理由去关心。人们似乎认为配置文件中的设备列表是一些安全措施,可以防止他们的应用程序安装在其他设备上。事实并非如此。 这个问题是根本的; Apple 的工程师不使用他们编写的第三方开发人员日常使用的工具和框架(这是我自己的看法)。他们只是不会遇到我们遇到的问题。这是一个完美的例子。 (还有一个类似 SpriteKit 的东西——你见过 Apple 发布的游戏使用它吗?)【参考方案2】:

我有一个适合我的解决方法。

我同时安装了 Xcode 6 和 Xcode 5.1.1,Xcode 6 在 Applications 中,Xcode 5.1.1 在另一个目录中。当我想进行构建时,我使用 Xcode 6 来创建存档。但是您也可以在 Xcode 5.1.1 中看到创建的存档,因此我使用 Xcode 5.1.1 使用我想要使用的配置文件分发 Ad Hoc .ipa。所以使用 Xcode 6 构建,但使用 Xcode 5.1.1 分发。它对我有用。

【讨论】:

在有人解释 Xcode 6 中的 AdHoc 分发到底发生了什么事情之前,我将采用解决方案…… 这似乎是目前最好的选择。我认为他们推动我们使用 ios 中包含的新版本的 beta 测试。我认为这是一个很棒的工具,但是如何处理所有与旧 TF 相关的旧客户端和构建? XCode 5.1.1 是唯一的解决方案。 只要您不使用 Swift 代码并且您的应用程序中没有任何应用程序扩展,这将起作用。 即使在 5.1.1 中,我也只能看到 XC 配置文件。我多次尝试刷新签名身份。 我也是这样用的。但是,我将两个版本的 Xcode 都保存在 Applications 文件夹中。这是个问题吗?【参考方案3】:

现在,当您导出存档进行测试(例如 Hockey App)时,Xcode6 将始终创建一个新的 AdHoc 配置文件,前缀为“XC”。为此,您的钥匙串中必须始终拥有最新的 App Store 分发证书和私钥。

注意:您不必在用于构建存档的配置文件中选择此最新分发证书。另请注意,您不需要 AdHoc 配置文件即可导出 AdHoc ipa。

当您第一次导出时,您可能会收到一条错误消息,指出您没有包含以下设备/人员的 AdHoc 配置文件。只需点击“重试”即可。

另外要记住的是,在导出 ipa 时,您必须通过其分发/生产服务器测试推送通知,因为它使用的是新的自行生成的“Distribution XC: AdHoc”配置文件。

如果您像我们一样使用 Urban Airship,则不能再使用开发密钥进行测试。如果您在完成导出步骤后查看“权利”,它将显示“aps-environment”设置为“生产”。如果有人为此找到替代解决方案,请告诉我。

【讨论】:

产品 = 产品,开发 = 开发。临时构建一直用于生产测试。 以前在 Xcode 5 中,您曾经能够为 Hockey App 导出 Ad-hoc 构建,但它的行为不像“分发”构建,因为您仍然可以使用您的开发用于测试的 APNS。现在看来,您在导出时只能使用生产 APNS。【参考方案4】:

我的分发许可证也面临类似问题,问题是“XC”配置文件具有完全相同的捆绑 ID。

我对他的解决方案是从 Apple Developer Portal 和 Xcode 中删除此 XC: 配置文件 -> 首选项 -> Apple ID -> 查看详细信息 -> XC: 配置文件 -> 右键单击​​转到 Finder -> 删除

希望这会有所帮助,

【讨论】:

【参考方案5】:

我遇到了同样的问题。在您链接到的其中一个 *** 线程上,最近添加了 a solution,这对我有用。

创建存档后,您可以从命令行使用特定的配置文件将其导出:

xcodebuild -exportArchive -archivePath "~/Library/Developer/Xcode/Archives/some-date/appname date, time.xcarchive" -exportPath appname -exportFormat ipa -exportProvisioningProfile "provisioning profile name"

请注意,配置文件名称只是名称,没有任何路径或文件扩展名。

【讨论】:

【参考方案6】:

我今天也遇到了。

我最终从开发者门户中删除了 XC 配置文件,并重新创建了我的其他临时和应用商店配置文件并再次下载它们。

完成此操作后,当我构建并尝试提交到应用商店时,会显示正确的 App Store 配置文件,而当我去临时导出时,会显示正确的临时配置文件。

耶;)

【讨论】:

【参考方案7】:

我遇到了一个类似的问题,发现即使您在 Xcode 中指定了正确的配置文件,Xcode6 系统也希望您拥有最新的(来自会员中心)配置文件(对于您的帐户所针对的每个团队)。在使用您需要的之前,它似乎会依次遍历每一个,如果您没有属于您所属团队的任何配置文件,则会被阻止。

【讨论】:

【参考方案8】:

我遇到了这个。

这里没有解决方案。

我最终使用 nomad cli shenzen 迁移到命令行构建。这是 mattt 的另一个伟大的开源项目

现在我进入一个 shell 并输入:

ipa 构建

完成

他们甚至可以选择将 ipa 发送到您想要的任何 Ad Hoc 服务。太棒了。

【讨论】:

【参考方案9】:

在 Xcode 6(我现在使用的至少 6.1)中,当您进行临时导出时,xcode 6 将自动扫描是否有任何配置文件包含在开发者帐户中注册的所有设备并同时匹配捆绑包 ID。如果不是,它将使用 XC 配置文件。因此,如果您想使用自己的配置文件,例如,为了推送通知,您需要在苹果开发者门户上选择您的配置文件中的所有设备。我想这就是为什么有些人重新创建个人资料会起作用而有些人不会的原因。

【讨论】:

【参考方案10】:

我的方法要简单得多: 我转到开发人员 - 配置文件并通过选择“编辑”然后“生成”重新创建我的 Ad Hoc 配置文件,下载并双击安装。导出 .ipa 时,选择了正确的(我的)配置文件。 显然,Apple 只使用最后构建的配置文件。

【讨论】:

以上是关于XCode 6 和不带 XC 的 Ad-Hoc 分发:配置的主要内容,如果未能解决你的问题,请参考以下文章

Xcode 6 - 无法为 Ad-Hoc 分发选择签名证书/配置文件。一直默认

Xcode 6.1 自动生成 XC Ad Hoc

[转帖]CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装

在 Hive 中处理带和不带双引号的数据

Xcode 4 Ad-Hoc Distribution - 无法下载

无法使用 Xcode Automatically Manage Signing 安装 ad-hoc IPA