我的应用因iCloud存储限制而被拒绝。 (2.23)。 这种情况有很多问题,但我仍然不确定为什么我的应用程序被拒绝了。这是我的嫌疑人:
1-我的应用程序下载pdf文件和图像,以便当用户从tableview中选择一行时,允许用户在“离线”模式下查看。我将我的下载文件夹设置为“Documents / privateDownloads”,并将文件夹(和文件内部)url标记设置为“不备份”
2-我的应用程序也有2Mb。 “preload.json”文件,我的应用程序在首次启动时读取文件,并且仅在首次启动时预加载到数据库中(显示导入数据的进度的进度hud)。我没有将“preload.json”文件设置为“不备份”。我只是将文件拖放到Xcode中的“Supporting Files”组中。
我的猜测是问题在于第二个嫌疑人,但我还读到我应该将“privateDownloads”文件夹移动到“Application Support”文件夹而不是Documents文件夹中。
我总是将我的离线文件存储在nsurl缓存上很长一段时间(技术上永远),但这次我决定这样做。
感谢阅读和帮助。
编辑:应用商店中有一条说明拒绝原因:
“特别是,我们发现在发布和/或内容下载时,您的 应用商店3.6MB“
当我控制此问题时,在我的应用程序“预加载”数据之后会发生这种情况。但我真的不明白,我将这个预装数据存储在核心数据中。所以,是的,我想在iCloud中备份这些数据吗?!
答案 0 :(得分:1)
该问题与preload.json文件无关。如果它包含在您的应用程序发行版中,它就是应用程序的一部分,您不需要做任何不同的事情。
我怀疑审稿人没有注意到您在已添加到Documents / privateDownloads文件夹的文件上设置了“不备份”标志,或者您有错误且未设置标志一点都不如果可以的话,将这些类型的文件存储在/ Library / Caches子目录中会更安全。那你就不用担心国旗了。
答案 1 :(得分:1)
要解决种子数据过大的问题,可以将Core Data堆栈拆分为两个独立的存储 - 一个存储用户数据并备份到iCloud。第二个存储从JSON导入的种子数据。然后可以通过“不备份”标志将该商店从iCloud备份中排除。
另一种推荐的方法是运送预先填充的商店,如this article on objc.io中所述。由于您提到了preload.json是几MB,因此在初始应用程序启动时预先生成一次存储比在每个设备上更令人满意。并且您可以应用所需的文件属性,而不是更容易备份它。