应用程序因未遵循 iOS 数据存储指南而被拒绝
Posted
技术标签:
【中文标题】应用程序因未遵循 iOS 数据存储指南而被拒绝【英文标题】:App got rejected not following the iOS Data Storage Guidelines 【发布时间】:2013-05-30 10:04:40 【问题描述】:我的应用有可下载的内容,我保存在 Documents Directory 中。哪个备份在 iCloud 上。因此,我可以将它们放在文档侧的一个目录下,然后在该目录上设置“不备份”,而不是设置所有单个文件的“不备份”,这行得通吗?还是我必须在所有单个文件上设置标志。
【问题讨论】:
您可以将它们放在 tmp 目录而不是 Documents 目录中.. 或缓存中.. 不,我不想删除这些文件。这些文件是我的应用正常运行所必需的。 可下载的内容应该放在这里:/Library/Caches developer.apple.com/icloud/documentation/data-storage 我之前遇到过这样的拒绝..然后我在库下创建了一个目录.然后我在那里下载了文件.. 对此很抱歉,但我想质疑您的基本假设。如果内容是按需下载的,那么删除缓存就无关紧要了。相反,如果内容是必需的,而不是按需下载,则应将其备份。 【参考方案1】:在将数据库保存到文档目录之前,在您的应用程序中使用以下代码..
-(BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
const char* filePath = [[URL path] fileSystemRepresentation];
const char* attrName = "com.apple.MobileBackup";
u_int8_t attrValue = 1;
int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
// NSLog(@"Attributs : %d and Path : %@",result,URL);
if (result != 0)
NSLog(@"File Backup Attribute setting error");
return result == 0;
【讨论】:
没关系,但它不能回答我的问题:( 您可以从此链接找到。 developer.apple.com/icloud/documentation/data-storage【参考方案2】:您可以将所有临时文件或您的程序无需用户帮助即可生成的任何其他数据存储在 Library/tmp 文件夹(不是用户创建的数据)中 - Library/tmp 文件夹不是内部文档文件夹,其文件夹位于同级 Document 目录。
您将不需要为所有文件添加 donotbackup 属性。
谢谢!
【讨论】:
【参考方案3】:这也发生在我身上。阅读此apple storage guideline
简而言之,您的应用要遵循准则 #2
可以再次下载或重新生成的数据应存储在 /Library/Caches 目录。您的文件示例 应该放在Caches目录下的包括数据库缓存文件和 可下载的内容,例如杂志、报纸和 地图应用程序。
【讨论】:
以上是关于应用程序因未遵循 iOS 数据存储指南而被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
与 Spotify 新库相关的 iOS App Rejection