要将应用程序分发给我们的测试人员,我们使用 Xcode,我们使用以下过程执行此操作:
归档申请
临时分发
选择配置文件
将 .ipa 保存到文件夹
但是在 Xcode 6 中,这个工作流程发生了一些变化。我仍然可以选择 Ad-Hoc 分发选项,但我无法选择我想要的配置文件。这使我们无法控制使用哪个签名证书和配置文件配置(我们使用推送通知)。
https://i.stack.imgur.com/4ssU0.png
所以我的问题是:
Xcode 6 中是否有任何方法可以选择与 Ad Hoc 分发一起使用的配置文件?
谢谢!
我遇到了同样的问题,使用命令行“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'
提交到 App Store 时,我遇到了类似的问题。我创建了一个存档,然后单击“提交”,Xcode 希望使用默认的“XC com.*”通配符配置文件而不是已经拥有的显式配置文件自动签名。
为了解决这个问题,我刚刚在 Apple Developer Portal 上重新生成了配置文件:
1) 转到 developer.apple.com 并找到您要使用的分发配置文件。 2) 选择它,单击“编辑”,重新命名配置文件,然后单击“生成”。 3) 将配置文件下载到桌面并将其拖到 Xcode 6 图标上。 4) 重新启动 Xcode 6。 5) 打开管理器窗口并在您构建的存档上单击“提交”。 Xcode 将自动选择您的显式配置文件而不是通用配置文件。
进入管理器后
选择临时构建并单击“导出...”
选择“为临时部署保存”-> 下一步
不要从下拉列表中选择组织,而是选择“使用本地签名资产”-> 选择
像以前一样导出并保存 .ipa。
当然,您需要生成、下载和安装临时配置文件。
似乎最后生成的配置文件现在赢了。所以你可以重新生成你想要的配置文件并下载它,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"
和我的设置:
https://i.stack.imgur.com/kRbpL.png
我也想不通 - 在提交到 AppStore 时被它咬了一下,它默认为通配符配置文件。
我最终在 Xcode 6 中构建,然后返回 Xcode 5 的 Organizer 窗口进行提交。这样,它会提示您选择要签名的个人资料。
在 Xcode 6(我现在至少使用 6.1)中,当您进行临时导出时,xcode 6 将自动扫描是否有任何配置文件包含在开发者帐户中注册的所有设备,同时匹配捆绑 ID .如果不是,它将使用 XC 配置文件。因此,如果您想使用自己的配置文件,例如,为了推送通知,您需要在苹果开发者门户上选择您的配置文件中的所有设备。我想这就是为什么有些人重新创建个人资料会起作用而有些人不会的原因。
顺便说一句,使用脚本可以导出并上传到 testflight,但设备无法下载它。可能在某个地方我错了。如果有人知道为什么,请告诉我。 tks
这对我有用:
单击“..选择开发团队..”对话框中的“查看帐户..”。单击“查看详细信息..”并找到 XC Ad Hoc 配置文件。右键单击该配置文件并选择“在 Finder 中显示”。删除选定的配置文件。返回步骤 1 中的对话框。单击“选择”。单击配置文件附近的箭头以打开配置文件目录。再次删除第 4 步中的通用配置文件。单击“将 [应用程序名称] 发送到 Apple:”对话框中的“上一个”按钮。再次选择“Save for Ad Hoc Deployment”再次单击“选择”按钮。
现在您应该看到正确的配置文件名称。
我有一个适合我的解决方法。
我同时安装了 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 分发。
https://i.stack.imgur.com/LBKzW.png
@MrPatol 的答案对我不起作用。我的 Xcode 6.3.2 工作场景
在会员中心 -> iOS 配置文件
删除在您尝试构建应用程序时默认设置的配置文件(例如“XC...”)。使用短名称创建临时配置文件(非生产)。
在 iPhone 配置实用程序 -> 配置文件中
删除相同的配置文件(例如“XC...”)
在 Xcode -> 管理器中
选择临时构建并单击“导出...”选择“保存临时部署”-> 下一步
从下拉列表中选择一个组织
检查是否自动选择了新的临时配置文件
像以前一样导出并保存 .ipa。
这是为我解决问题的两个关键点。
当您生成配置文件时,它需要链接到使用与您的应用程序相同的捆绑标识符的显式应用程序 ID。通配符 App ID 将不起作用。
当您导出应用程序以进行临时部署时,请在下拉列表中选择使用本地签名资产,然后单击选择。
然后,Xcode 将通过将 App ID 与应用程序的捆绑标识符匹配来找到正确的配置文件。
事实上,您需要创建一个新的分发配置文件,专门用于 Ad Hoc 部署。这个可以在经典的会员中心找到,但它是一种新型的证书。
然后,您可以选择可用于测试应用程序的设备,就像使用开发人员配置文件一样。
当您以通常的方式从 Organizer 导出包裹时,新创建的证书将可用。
或者,您可以使用 Apple 为 iOS 8 提供的 TestFlight 解决方案,使您的用户能够访问预发布版本。
https://i.stack.imgur.com/BJLL1.png
had the same problem, finally I solved it regenerating the profile that I wanted to use in Xcode 6 including all the devices that I have registered on my iOS Dev account, doing it that way, when selecting export it shows the correct profile and I可以在不使用脚本的情况下使用 Xcode 6 进行 Ad Hoc 导出。希望能帮助到你。
几乎同样的问题。创建用于分发的存档(产品 > 存档)后,您导出存档(单击导出...)并选择“保存以供企业部署”;然后“下一步”。然后您选择“开发团队”默认值(例如组织名称)并单击“选择”。最后,您将看到一个摘要视图,其中还列出了 Xcode 自动为您找到(可能是即时创建)的配置文件。这可能是错误的配置文件(通常是通配符配置文件,例如“XC: *”)并且可能会发生,因为开发人员门户上已经有一个通配符配置文件。通配符配置文件可能会被其他旧项目使用,并且从开发人员门户中删除通配符配置文件可能是不明智的。
我为此使用了支持票,但只得到了这个链接 https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1。帮助不大。
我发现 MrPatol 的解决方案也适用于企业部署,并为我们解决了问题。我首先登录开发人员门户并手动创建适合我的应用程序的配置文件。然后下载并安装新的手动创建的配置文件。
在 xcode 7 中,我无法通过
Organizer -> 上传到 App Store & Organizer -> 验证
但我可以通过 Organizer -> Export 进行选择
编辑:
在为临时导出到应用商店以进行 testFlight 后上传应用会导致讨论的另一个问题 here。因此,解决这两个问题是其中之一。 创建 AppStore 配置,以便能够通过管理器选择它并通过上传到应用商店来使用 testFlight。
我认为这是在 Xcode 7 之后指定 -exportOptionsPlist 选项的正确方法。无论您在项目设置中指定什么,它都会像在 GUI 导出中一样选择正确的配置文件。
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>
应用商店、企业、临时、开发是替代方案
但是你可能会在上面遇到另一个错误。
错误域 = IDEDistributionErrorDomain 代码 = 14 “未找到适用的设备。” UserInfo={NSLocalizedDescription=未找到适用的设备。}
这是一个红宝石问题。试试这个 shell 脚本,xcbuild-safe.sh
xcbuild-safe.sh xxxxNormalOptionsInXcodebuild bla...
稍等片刻,又一个奇怪的错误来了。
xcbuild-safe.sh:第 62 行:shell_session_update:找不到命令
shell_session_update
是什么鬼?让我们解决它。只需在真正的 xcodebuild cmd 之前定义一个函数,即在第 60 行或第 61 行。
function shell_session_update() { :; }
在回答您的具体问题时,没有办法选择要使用的配置文件。你想做什么? (即您要选择的配置文件允许自动生成的配置文件不允许什么?)
xcodebuild
的其他答案没有-exportProvisioningProfile
开关。