Xcode 6-如何为 Ad-Hoc 分发选择签名证书/供应配置文件?

为了将应用程序分发给我们的测试人员,我们使用 Xcode,我们使用以下过程:

  • 存档申请
  • 为特设组织分发
  • 选择配置文件
  • 将.ipa 文件保存到一个文件夹中

但是对于 Xcode 6,这个工作流程有所改变。我仍然可以选择 Ad-Hoc 分发选项,但是我不能选择我想要的配置文件。这使我们无法控制使用哪个签名证书和配置文件配置(我们使用推送通知)。

默认情况下,使用 iPhone distribution签名标识并生成某种类型的 XC Ad Hoc配置文件,可以在下面的图像中看到:Exporting IPA 如果单击配置文件附近的箭头,它将打开包含配置文件的文件夹。

所以我的问题是:

在 Xcode 6中是否有任何方法可以选择用于 Ad Hoc 发行版的供应配置文件?

谢谢!

96369 次浏览

我也搞不清楚这一点——在提交到 AppStore 时被它咬了一口,在那里它默认为通配符配置文件。

我最终在 Xcode 6完成了建设,然后回到 Xcode 5的 Organizer 窗口进行提交。这样,它会提示你选择一个配置文件来签名。

我在向应用程序商店提交时也遇到过类似的问题。我创建了一个归档文件,然后点击“提交”,Xcode 希望自动使用默认的“ XCcom”签名。*”通配符配置文件,而不是已有的显式配置文件。

为了解决这个问题,我只是在 Apple Developer Portal 上重新生成了这个配置文件:

1)进入 developer.apple.com ,找到你想要使用的分发配置文件。
2)选择它,点击“编辑”,重新命名配置文件,然后点击“生成”。
3)将供应配置文件下载到桌面,并将其拖放到 Xcode 6图标上。
4)重新启动 Xcode 6。
5)打开组织者窗口,点击“提交”在你建立的档案。Xcode 将自动选择显式的配置文件,而不是通用的配置文件。

这对我很有效:

  1. 点击“查看帐户. .”中的“ . . 选择一个开发团队. .” 对话。
  2. 点击“查看详细信息. .”并找到 XC Ad Hoc 配置文件。
  3. 右键单击该配置文件并选择“显示在查找器”。
  4. 删除选定的配置文件。
  5. 回到步骤1中的对话框。
  6. 点击“选择”。
  7. 单击供应配置文件附近的箭头以打开供应 配置文件目录。
  8. 再次删除通用配置文件,如步骤4所示。
  9. 点击“发送[应用程序名称]到苹果:”对话框中的“上一个”按钮。
  10. 再次选择「储存作一次性特别配置」
  11. 再次点击“选择”按钮。

现在您应该看到正确的供应配置文件名。

实际上,您需要创建一个新的分发配置文件,特定于 Ad Hoc Deployment。这可以在经典的会员中心找到,但它是一种新型的证书。

然后您可以选择哪些设备可以用来测试应用程序,就像您对开发人员配置文件所做的那样。

当您以通常的方式从组织者导出您的软件包时,新创建的证书将可用。

或者,您可以使用苹果公司在 iOS8中提供的 TestFlight 解决方案,使您的用户能够访问预发行版。

enter image description here

看来最后生成的供应配置文件现在胜出了。所以你可以重新生成你想要的配置文件并下载它,Xcode 会使用它。

更好的方法是: 在目标中设置所需的 prov 配置文件,并使用命令行构建 ipa,这也是可行的。

这是剧本,我用的是:

#!/bin/sh


# Current as working as of 2014/09/22
# Xcode 6


OUTPUTDIR="$HOME/build"
APPNAME="your-app"
SCHEME="your-app"
APP_WORKSPACE="$HOME/Path/To/your-app.xcworkspace"


rm "$OUTPUTDIR/$APPNAME.ipa" #deletes previous ipa
xcodebuild -workspace "$APP_WORKSPACE" -scheme "$SCHEME" archive -archivePath "$OUTPUTDIR/$APPNAME.xcarchive"
xcodebuild -exportArchive -exportFormat ipa -archivePath "$OUTPUTDIR/$APPNAME.xcarchive" -exportPath "$OUTPUTDIR/$APPNAME.ipa"

还有我的设定:

Xcode settings

我有个解决办法,对我很有用。

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

我面临着同样的问题,使用命令行“ xcodebuild”工具脚本解决了这个问题,这个脚本是用 Xcode 6预安装的(不需要重新安装 Xcode 5)。

Http://www.thecave.com/2014/09/16/using-xcodebuild-to-export-a-ipa-from-an-archive/

终端中的脚本:

xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile 'Provisioning Profile Name'

我也遇到过同样的问题,最终我解决了这个问题,重新生成了我想在 Xcode 6使用的配置文件,包括我在 iOS 开发者账户上注册的所有设备,这样做的话,当选择导出时,它会显示正确的配置文件,我可以不用脚本就可以用 Xcode 6进行 Ad Hoc 导出。希望能有帮助。

在 Xcode 6(至少我现在使用的是6.1)中,当您为特别目的导出时,Xcode 6将自动扫描是否有任何供应配置文件包含在开发人员帐户中注册的所有设备,并同时匹配包 ID。如果没有,它将使用 XC 规定配置文件。因此,如果您想使用您自己的配置文件,例如,为了推送通知的目的,您将需要在 Apple 开发者门户上选择您的配置文件中的所有设备。我想这就是为什么有些人重建侧写会奏效,而有些人不会。

另外,use script 可以导出并上传到 testFlight,但是设备无法下载。可能是我哪里搞错了。如果有人知道原因,请告诉我。谢谢

在回答您的具体问题时,没有办法选择要使用的供应配置文件。你想干什么?(例如,您想要选择的配置文件允许自动生成的配置文件不允许的配置文件是什么?)

一旦你进入组织者

  • 选择 ad-hoc build 并单击“ Export...”
  • 选择「储存作临时部署」-> 下一步
  • 不要从下拉列表中选择组织,而是选择“使用本地签名资产”-> 选择
  • 和以前一样导出和保存。

当然,您需要已经生成、下载和安装了 ad-hoc 供应配置文件。

我已经被这个问题困住了一段时间,但是使用 Crashlytics解决了这个问题,在 Xcode 项目的构建设置中使用选定的配置文件进行分布式构建。

希望能帮到别人。

几乎是同样的问题。在为发布创建归档文件(Product > Archive)之后,导出归档文件(单击 Export...)并选择“ Save for Enterprise Deployment”; 然后选择“ Next”。然后选择「开发小组」的预设名称(例如机构名称) ,并按「选择」。最后,您将看到一个摘要视图,其中还列出了 Xcode 自动为您找到(可能是动态创建的)的供应配置文件。这可能是错误的配置文件(通常是通配符配置文件,比如“ XC: *”) ,可能是因为开发人员门户上已经有了通配符配置文件。通配符供应配置文件可能被其他较早的项目使用,也许仅仅从开发人员门户中删除通配符供应配置文件是不明智的。

我使用了一个支持票为此,只得到这个链接回 https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1。没有真正的大帮助。

我发现 Patol 先生的解决方案也适用于 企业部署,为我们解决了这个问题。我首先登录到开发人员门户,手动创建一个适合我的应用程序的配置文件。然后下载并安装新的手动创建的供应配置文件。

以下是为我解决这个问题的两个关键点。

  • 生成供应配置文件时,需要将其链接到与应用程序使用相同捆绑包标识符的 显式应用程序 ID。通配符应用程序 ID 不起作用。
  • 当您为特别部署导出应用程序时,在下拉列表中选择 使用本地签名资产并单击 Select。

然后,Xcode 将通过将 AppID 与应用程序的 bundle 标识符匹配来找到正确的供应配置文件。

“帕托尔先生”的回答对我不起作用。 我在 Xcode 6.3.2中的工作场景

会员中心-> iOS 设备配置简介

  • 删除在构建应用程序时默认设置的配置文件(例如“ XC...”)。创建一个短名称的临时配置配置文件(不是生产配置文件)。

在 iPhone 配置实用程序-> 配置配置文件

  • 删除相同的配置文件(例如“ XC...”)

在 Xcode-> Organizer 中

  • 选择 ad-hoc build 并单击“ Export...” 选择「储存作临时部署」-> 下一步
  • 从下拉列表中选择一个组织
  • 检查是否自动选择了新的 ad-hoc 配置文件
  • 和以前一样导出和保存。

在 xcode 7中,我无法通过

组织者-> 上载至应用程式存储及组织者-> 验证

但我可以选择通过 主办机构-> 出口

编辑:

在将 adhoc 导出到 testFlight 的应用程序商店之后上传应用程序会导致另一个讨论 给你的问题。因此,解决这两个问题的办法是一个。创建 AppStore 供应,以便能够通过组织者挑选它,并通过上传到 AppStore 来利用 testFlight。

在出口时使用本地签名资产为我解决了这个问题:enter image description here

  1. 我认为在 Xcode 7之后指定-exportOptionsPlist 选项是正确的。无论您在项目设置中指定什么,它都会选择正确的供应文件,比如 GUI 导出。

Xcodebuild-exportArchive-Archive vePath $Archive _ Path-exportPath $LOCAL _ PACKAGE _ DIR-exportOptionsPlist $Export _ Plist _ Path

OptionPlist 文件是这样的,

<dict>
<key>teamID</key>
<string>MYTEAMID123</string>
<key> teamID </key>
<string>app-store</string>
<key>uploadSymbols</key>
<true/>
</dict>




<plist>

应用程序商店,企业,特别,开发是可供选择的

  1. 但是在上面之后你可能会遇到另一个错误。

错误域代码 = 14“不适用 UserInfo = { NSLocalizedDescription = 没有适用的设备 找到了

这是一个 Ruby 问题。请尝试这个 shell 脚本 xcbuild-safe.sh

xcbuild-safe.sh xxxxNormalOptionsInXcodebuild bla...
  1. 稍等片刻,又出现了一个奇怪的错误。

Xcbuild-safe.sh: 第62行: shell _ session _ update: 未找到命令

shell_session_update是什么鬼东西?让我们想想办法。只需在真正的 xcodebuild cmd 之前定义一个函数,即在第60或61行。

function shell_session_update() { :; }