我们的应用程序最近因违反iOS Data Storage Guidelines有关在iCloud上备份文件而被拒绝.
我必须用do not back up属性标记数据.
我将所有重要数据存储在SQLite数据库中,并将我的用户首选项存储在UserDefaults.plist中.我必须将我的database.sqlite文件标记为do no back up?
我问评论员是否要iCloud在我的AppID中禁用它会对我的情况有所帮助,而且反应很神秘,并没有真正给我一个是或否答案.
我的应用程序中没有任何东西真的需要备份,我可以iCloud在我的AppID中禁用支持而不必担心将文件标记为do not back up??
以下是评论者的回复:
2.23
我们还发现您的应用不遵循iOS数据存储指南,这是根据App Store审核指南所要求的.
特别是,我们发现在启动和/或内容下载时,您的应用程序存储4 MB.要检查应用存储的数据量:
iOS数据存储指南表明,只有用户使用您的应用创建的内容(例如文档,新文件,编辑等)才能由iCloud备份.
应用程序使用的临时文件只应存储在/ tmp目录中; 请记得在用户退出应用程序时删除存储在此位置的文件.
可以重新创建但必须保持应用程序正常运行的数据 - 或者因为客户希望它可供脱机使用 - 应标记为"不备份"属性.对于NSURL对象,请添加NSURLIsExcludedFromBackupKey属性以防止备份相应的文件.对于CFURLRef对象,请使用相应的kCFURLIsExcludedFromBackupKey属性.
有关详细信息,请参阅技术问答1719:如何防止文件备份到iCloud和iTunes?.
有必要修改您的应用程序以满足iOS数据存储指南的要求.对于离散的代码级问题,您可以咨询Apple Developer技术支持.请务必:
Mac*_*ade 31
基本上,它取决于您存储的数据类型.
如果可以重新生成数据(例如,当用户在其他设备上安装应用程序时),则不应备份该数据.
否则,iCloud备份就可以,因为用户希望他的数据可用,即使在另一台设备上也是如此.
在第一个场景中,您基本上有两种实现此目的的方法......
您可以使用它NSURL来设置kCFURLIsExcludedFromBackupKey文件,也可以将它们存储在不会备份的位置,例如<Application_Home>/Library/Caches.请注意,第二种解决方案是更好的,恕我直言.
有关信息,kCFURLIsExcludedFromBackupKey可以这样使用:
NSURL * fileURL;
fileURL = [ NSURL fileURLWithPath: @"some/file/path" ];
[ fileURL setResourceValue: [ NSNumber numberWithBool: YES ] forKey: NSURLIsExcludedFromBackupKey error: nil ];
Run Code Online (Sandbox Code Playgroud)
对于第二种情况,有时Apple审核人员认为您的数据可以重新生成,而不是.然后,您必须解释为什么必须备份数据.
| 归档时间: |
|
| 查看次数: |
8657 次 |
| 最近记录: |