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

时间:2014-07-31 10:05:35

标签: ios ios8 xcode6

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

  • 存档申请
  • 分发Ad-Hoc
  • 选择配置文件
  • 将.ipa保存到文件夹

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

默认使用iPhone distribution签名身份,并生成某种XC Ad Hoc配置文件,如下图所示:Exporting IPA 如果单击配置配置文件附近的箭头,则会打开包含配置文件的文件夹。

所以我的问题是:

Xcode 6中有没有办法选择Ad Hoc分发使用的配置文件?

谢谢!

18 个答案:

答案 0 :(得分:52)

我遇到了同样的问题,使用命令行“xcodebuild”工具脚本解决,该脚本预装了XCode6(不需要重新安装XCode5)。

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'

答案 1 :(得分:31)

提交到App Store时我遇到了类似的问题。我创建了一个存档,然后点击了#34;提交"和Xcode想要使用默认的" XC com。*"自动签名。通配符配置文件,而不是已有的显式配置文件。

要解决此问题,我只是在Apple Developer Portal上重新生成了个人资料:

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

答案 2 :(得分:27)

进入组织者后

  • 选择临时版本,然后点击"导出...."
  • 选择"保存进行特别部署" - >下一步
  • 不是从下拉列表中选择一个组织,而是选择"使用本地签名资产" - >选择
  • 像以前一样导出并保存.ipa。

当然,您需要生成,下载和安装ad-hoc配置文件。

答案 3 :(得分:17)

最近生成的配置文件似乎现在获胜。因此,您可以重新生成所需的配置文件并下载它,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

答案 4 :(得分:8)

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

不过,使用脚本可以导出并上传到testflight,但设备无法下载。可能在某个地方我错了。如果有人知道它为什么,请告诉我。 TKS

答案 5 :(得分:8)

我也无法解决这个问题 - 在提交到AppStore时,它被默认为通配符。

我最终在Xcode 6中构建,然后回到Xcode 5的Organizer窗口进行提交。这样,它会提示您选择要签名的个人资料。

答案 6 :(得分:7)

这对我有用:

  1. 点击"查看帐户.."在" ..选择一个开发团队.." 对话框。
  2. 点击"查看详细信息.."并找到XC Ad Hoc配置文件。
  3. 右键点击该个人资料,然后选择"在Finder中显示"。
  4. 删除所选的个人资料。
  5. 返回步骤1中的对话框。
  6. 点击"选择"。
  7. 点击配置资料旁边的箭头以打开配置 个人资料目录。
  8. 再次删除通用配置文件,如步骤4中所示。
  9. 点击"上一页"从"发送[应用程序名称]到Apple的按钮:"对话。
  10. 再次选择"保存进行特别部署"
  11. 再次点击"选择"按钮。
  12. 现在您应该看到正确的配置文件名称。

答案 7 :(得分:6)

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

我安装了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进行分发。

答案 8 :(得分:4)

导出时使用本地签名资产解决了我的问题:enter image description here

答案 9 :(得分:3)

@MrPatol的答案对我不起作用。 我的Xcode 6.3.2的工作场景

在会员中心 - > iOS配置文件

  • 删除在您尝试构建应用时默认设置的配置文件(例如“XC ...”)。使用短名称创建临时供应配置文件(而非生产)。

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

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

在Xcode中 - >组织者

  • 选择临时版本,然后点击“导出....” 选择“保存以进行特别部署” - >下一步
  • 从下拉列表中选择一个组织
  • 检查您的新ad-hoc配置文件是否已自动选中
  • 像以前一样导出并保存.ipa。

答案 10 :(得分:2)

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

  • 生成配置文件时,需要将其链接到使用与您的应用相同的包标识符的显式应用ID 。通配符应用程序ID不起作用。
  • 导出应用以进行临时部署时,请在下拉列表中选择使用本地签名资产,然后单击“选择”。

然后,Xcode会通过将App ID与应用的捆绑包标识符进行匹配来找到正确的配置文件。

答案 11 :(得分:1)

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

然后,您可以选择使用哪些设备来测试应用,就像使用开发者资料一样。

当您以常规方式从管理器导出包时,新创建的证书将可用。

或者,您可以使用Apple提供的iOS 8 TestFlight解决方案,让您的用户可以访问预发行版。

enter image description here

答案 12 :(得分:1)

我有同样的问题,最后我解决了它重新生成我想在Xcode 6中使用的配置文件,包括我在iOS Dev帐户上注册的所有设备,这样做,选择导出时显示正确我可以在不使用脚本的情况下使用Xcode 6进行Ad Hoc导出。希望它有所帮助。

答案 13 :(得分:0)

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

    xcodebuild -exportArchive -archivePath $ 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>
    

    app-store,enterprise,ad-hoc,development是另类

    1. 但您可能会在上面遇到另一个错误。
    2.   

      错误域= IDEDistributionErrorDomain Code = 14“不适用   找到的设备。“UserInfo = {NSLocalizedDescription =没有适用的设备   找到。}

      这是一个红宝石问题。试试这个shell脚本,xcbuild-safe.sh

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

        xcbuild-safe.sh:line 62:shell_session_update:找不到命令

        地狱是什么shell_session_update?让我们来解决它。只需在真正的xcodebuild cmd之前定义一个函数,即在第60或61行。

        function shell_session_update() { :; }
        

答案 14 :(得分:0)

在xcode 7中,我无法通过

选择adhoc配置

组织者 - &gt;上传到App Store&amp;组织者 - &gt;验证

但我可以通过管理器选择 - &gt;导出

<强>编辑:

在将adhoc导出到appFlight的应用商店后上传应用导致了另一个问题here。因此,解决这两个问题就是一个问题。 创建AppStore配置,以便能够通过组织者选择并通过上传到appstore来利用testFlight。

答案 15 :(得分:0)

几乎相同的问题。创建分发存档(Product&gt; Archive)后,导出存档(单击Export ...)并选择&#34; Save for Enterprise Deployment&#34 ;;那么&#34;接下来&#34;。然后选择&#34;开发团队&#34;默认(例如组织名称),然后单击&#34;选择&#34;。最后,您将看到一个摘要视图,其中还列出了Xcode自动为您找到(可能是即时创建)的配置文件。这可能是错误的配置文件(通常是通配符配置文件,例如&#34; XC:*&#34;)并且可能会发生,因为开发人员门户上已经存在通配符配置文件。通配符配置文件可能被其他较旧的项目使用,也许从开发人员门户中删除通配符配置文件是不明智的。

我使用了支持票,只获得了此链接https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1。不是很大的帮助。

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

答案 16 :(得分:0)

我已经被困了一段时间了,但是使用Crashlytics解决了它,使用Xcode项目的构建设置中的选定配置文件进行分发。

希望它对某人有帮助。

答案 17 :(得分:-4)

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