在CloudKit开发环境中使用TestFlight

24

是否可以使用iTunes Connect中的“Development”环境通过新的TestFlight提交应用程序,以涉及it技术相关内容?

似乎只有AdHoc预配配置文件在从组织者进行“导出”时要求提供CloudKit容器名称(Production或Development),但是AdHoc预配配置文件不包括提交应用程序到iTunes Connect并允许TestFlight使用所需的“beta-reports-active”授权。

因此,如果您想使用新的iTunes Connect版本的TestFlight测试基于CloudKit的应用程序,则必须使用Production环境。是否还有其他人遇到此问题?

3个回答

25

我也曾尝试过这样做,但我认为这是不可能的。TestFlight主要用于发布到App Store上的应用程序。如果您正在与iTunes用户进行beta测试,则Apple希望您使用Production服务器,因为用户希望他们的内容在发布后仍然存在。

就我个人而言,当我开始使用TestFlight时,我决定切换到Production。如果您只是与内部用户进行测试,则仍可以选择Ad Hoc分发,正如您指出的那样,这允许您使用任一服务器。

顺便说一句,您可以在本地更改服务器,以便从调试版本中测试Production。

文档说明如下:

运行时,CloudKit使用您的应用程序com.apple.developer.icloud-container-environment特权来查找您是否使用您的配置文件的开发或生产版本。

因此,您可以将其添加到您的特权中,以将其设置为Production或Development:

<key>com.apple.developer.icloud-container-environment</key>
<string>Production</string>

你可以尝试将该字段设置为开发模式,然后推送到iTunes Connect,但我猜测在上传时Xcode会覆盖它,强制你使用生产模式。


1
我尝试了权限建议并上传到iTunes TestFlight,但是构建上有一个标记,表示它无法使用。不过还是谢谢你的帮助! - nh32rg
1
太好了!谢谢!我成功切换到生产环境并进行了调试。 - AlKozin
这对我不起作用。在我的archived-expanded-entitlements.xcent文件中,我从<key>com.apple.security.app-sandbox</key><true/>切换到<key>com.apple.developer.icloud-container-environment</key><string>Production</string>,但仍然指向Sandbox。 - user2924482
@user2924482 应用程序沙盒与iCloud环境不同。应用程序沙盒指的是您的应用程序只能访问属于它的文件。无论如何,所有iOS应用程序都始终处于沙盒状态。iCloud环境与此无关 - 它指的是应用程序连接的服务器:开发服务器或生产服务器。 - Richard Venable
1
你只能对生产环境进行增量更改,不能在生产环境中删除或重命名任何内容。但这正是苹果希望你在使用TestFlight之前做的。他们不希望你将可能会在后期出现问题的代码发送给他们的客户。 - Richard Venable
显示剩余5条评论

10
似乎这是不可能的。
“请注意,通过TestFlight或商店分发的应用程序无法使用开发环境。”您可以通过在授权文件中将com.apple.developer.icloud-container-environment设置为“Production”来在调试应用程序时将其指向生产环境。但是,请记住,当您完成调试后,确保将其还原回开发环境。 https://developer.apple.com/library/content/documentation/DataManagement/Conceptual/CloudKitQuickStart/TestingYourApp/TestingYourApp.html

1
谢谢,我没有意识到即使是内部测试也需要切换到生产环境。 - AmitaiB

-1

实际上,您可以按照此文档操作,并使用沙盒来测试您的应用程序:

苹果文档


该链接现在重定向到一个“存档”文件,其中写着“指示[您的测试人员]使用iTunes在他们的设备上安装应用程序”,但是iTunes已经不存在了。 - Graham Lea

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接