我构建了一个带有相当复杂的记录图的CloudKit应用,以向客户证明我们的MVP。开发几乎是完美无缺的,每个问题都可以轻易地归结为糟糕的代码。
现在,我们已经部署了该应用程序的第一个版本。审核过程就像Kafka一样,审核团队无法登录到Cloudkit。我必须使用我们的AppleTS问题之一的生命线来获得审核小组要遵循的清单(基本上说-如果您使用的iCloud帐户不起作用,请注销并使用另一个iCloud帐户登录)。
我们完成了审核过程,该应用程序已在AppStore上发布。但是现在,真正的混乱开始了。我需要修复几个错误,但现在如果使用调试设置构建了该应用程序,则无法访问该应用程序。实际上,似乎没有任何方法可以构建和运行(并获得对CloudKit开发环境的访问,又名登录,)。
我在网上发现一些晦涩难懂的参考资料,它们在谈论如何正确设置我的开发和生产环境,但据我所知,我只是遵循了本书,而关于CloudKit的Apple Docs on Design Tips根本无法解决问题。问题。
简而言之!发布后如何在CloudKit中管理Dev环境和Prod环境,以及如何通过发送到设备的XCode通过构建访问Dev环境,以在发布后继续开发?
编辑:意识到我的问题还不够清楚,这是一个尝试来说明
我可以从XCode构建和运行。尝试使用登录到iCloud时self.container.requestApplicationPermission(CKApplicationPermissions.UserDiscoverability) {...}
我得到一个CKApplicationPermissionStatus.Denied
状态返回。没有错误,只是一个被拒绝的状态而已。在“设置”->“iCloud”->“iCloud驱动器”->“通过电子邮件查找我”中,我有时发现我的应用程序开关已启用,有时已禁用。尝试切换开关会使“设置”应用崩溃。即使访问www.icloud.com并为我的应用程序设置可发现性设置也无法解决该问题。从App Store或Testflight重新安装该应用程序的过程很吸引人,但是当然可以运行到Prod环境。
所以问题仍然存在;我如何管理开发和生产环境,以便在开发时可以访问(登录到我的开发环境),同时我在AppStore中有待售的应用程序或在TestFlight中进行生产测试以进行Beta测试。
最佳答案
如何在Xcode调试中使用CLOUDKIT Development或Production DB(使用Xcode v 8.2)
不用担心,如果您遵循以下指示,它将确保您能够配置Xcode以与CloudKit一起使用并同时使用CloudKit Development和PRODUCTION DB IN XCODE并将项目部署到App Store
1)在xcode计算机上创建一个iCloud帐户并登录
2)通过打开iCloud并选择CloudKit框,从项目“菜单”的“功能”选项卡中配置Xcode以使用CloudKit。然后,Xcode应该自动生成预配置文件等,如iCloud选项卡区域中选中的各个框所示。
3)单击“CloudKit仪表板”框以调出CloudKit。我不知道为什么,但是有时候您无法连接到CloudKit,屏幕上的登录只会不断询问您的userId和密码,并且不会显示任何错误消息…。只要继续尝试,您最终就可以连接
4)在CloudKit的开发数据库中开发记录和字段架构
5)通过跟踪网络上的许多博客来对项目中的CRUD数据进行使用,从而在项目中使用CloudKit(尤其是StackOverflow.com)
6)完成项目的调试并使用Cloudkit的Development数据库工作时,请切换到Production数据库以对其进行调试,因为当您将项目部署到App Store时,App Store(和TestFlight)仅使用Production数据库。
像往常一样,关于如何和何时使用Production数据库的Apple文档通常令人困惑,过于复杂,矛盾,过时或完全无法理解(即由程序员编写)。此外,许多有关此问题的博客都未及时更新最新的Xcode和iOS版本,或者完全是错误的。
以下是我发现的工作方式,主要是通过反复试验(并庆幸地找到了一些正确的博客),方法是在成功构建后通过使用Finder在各个点保存(复制)项目来实现。
当某些问题不起作用时(例如,在CloudKit IDE中将CloudKit开发数据库部署到生产数据库),我将带回上一个有效的项目副本,然后尝试其他操作。
顺便说一下,在对Xcode,iOS,CloudKit,我的Xcode项目设置(plist,授权文件,构建设置等)进行任何重大更改之前,我已经学会了执行此过程的困难方法(即,通过Finder复制并保存项目)等等),或重大的代码更改。
要更改为生产数据库,我执行了以下操作,在此过程的每个步骤之后都复制并保存了项目…
使用CloudKit开发数据库成功调试项目后(当您打开iCloud并从“项目”设置“菜单”的“功能”选项卡中选择CloudKit时,Xcode会自动为您配置该项目)。我做了以下操作……(也请确保您已在开发计算机上登录到iCloud)
1)我将此添加到我的权利文件(位于Xcode IDE左侧“项目”菜单中的文件)中。
com.apple.developer.icloud-container-environment并将其设置为“开发”
在iPhone上运行并编译并工作..制作了项目副本
2)在CloudKit IDE中,我将Development Db SCHEMA部署(在CloudKit IDE的左下方选择“Deployment”)到生产环境(在IDE的右上方)。这仅复制数据库模式,而不复制实际数据。据我所知,无法使用CloudKit或Xcode将数据从开发复制到生产数据库。
3)然后在CloudKit IDE的左下角选择“生产”。然后,CloudKit IDE背景颜色会更改,以指示您将要连接到生产数据库。无需更改项目中的任何代码即可连接到生产数据库。
4)然后该项目仍成功编译。但是,当我运行项目时,它仍然连接到DEVELOPMENT Db
使用Finder复制,标记和保存项目
5)然后,将“开发”更改为“生产”作为
步骤1的权利文件中的com.apple.developer.icloud-container-environment。在“项目”设置“菜单”的“功能”选项卡的iClould区域中,所有“框”仍保持选中状态
该项目然后仍成功编译。这次,当我运行项目IT CONNECTED PRODUCTION DB时!
这表明可以按照上面的步骤1-5使用生产数据库在Xcode中调试项目
使用Finder复制,标记和保存项目
6)转到iTunes Connect并创建和配置您的项目,以准备将您的项目上传到App Store(当然,请确保所有必需的项目图标和屏幕截图均已在Xcode中第一次创建。)(顺便说一下… .. 生产数据库只能在实际的设备上工作....它将无法在模拟器中工作…。要在开发数据库和生产数据库之间来回切换,只需将步骤1的值更改为Production或Development )
6)选择“通用iOS设备”,然后从“产品”菜单中选择“存档”,然后选择“上传到App Store”
关于ios - CloudKit:部署到AppStore后访问开发环境吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38315708/