由于 2.23 导致 iOS 应用程序被拒绝 - iOS 数据存储指南

2024-05-15

以下是 Apple 关于拒绝的消息:

2.23 - 应用程序必须遵循 iOS 数据存储指南,否则将被拒绝 2.23 详情

在启动和内容下载时,您的应用程序会存储 6.5 MB,这并不意味着 遵守 iOS 数据存储指南。

下一步

请验证只有用户使用您的内容创建的内容 应用程序,例如文档、新文件、编辑等由 iCloud 备份为 iOS 数据存储指南要求。另外,检查是否有任何 您的应用程序使用的临时文件仅存储在 /tmp 中 目录;请记住删除或删除存储在 当确定不再需要它们时,此位置。

可以重新创建但必须保留才能正常运行的数据 您的应用程序 - 或者因为用户希望它可以离线使用 - 应标有“不备份”属性。对于 NSURL 对象,添加 NSURLIsExcludedFromBackupKey 属性以防止 相应的文件被备份。对于 CFURLRef 对象,请使用 对应的 kCRUFLIsExcludedFromBackupKey 属性。

我检查了设备和模拟器的应用程序的数据文件。我发现如果应用程序已经使用了一段时间,那么在启动时它的总应用程序数据可以存储 5-6 MB。但我卸载并重新安装了应用程序并再次检查,我在启动应用程序时看到〜3MB的数据存储。

我不存储任何核心数据数据库或任何其他数据库文件。但我已经意识到谷歌分析和谷歌标签管理器在此路径上存储一些 sqlite 数据:“AppData/Library”。我的意思是它不存储在这个路径上:“AppData/Library/Caches”。它对 iOS 数据存储指南有什么影响吗?

顺便一提,iCloud已禁用应用程序。

我也在用SDWeb图像用于下载图像,它在启动时存储了近 3 MB 的图像,并将图像数据存储在此路径上:“AppData/Library/Caches”

您知道我应该做什么来处理这个问题吗?


我昨天刚收到同样的拒绝消息。

我在中使用以下代码application:didFinishLaunchingWithOptions:查看我的应用程序在文档文件夹内有什么以及有关 iCloud 备份的每个项目的权限是什么:

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : nil;
NSArray *documents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:basePath error:nil];
NSURL *URL;
NSString *completeFilePath;
for (NSString *file in documents) {
    completeFilePath = [NSString stringWithFormat:@"%@/%@", basePath, file];
    URL = [NSURL fileURLWithPath:completeFilePath];
    NSLog(@"File %@  is excluded from backup %@", file, [URL resourceValuesForKeys:[NSArray arrayWithObject:NSURLIsExcludedFromBackupKey] error:nil]);
}

我在该文件夹中有一些与 iCloud 同步的文件。因此,我没有将这些文件保存在另一个地方,而是设置了资源值NSURLIsExcludedFromBackupKey键设置为YES将这些文件排除在 iCloud 备份之外,如下所示:

NSURL *URL = [NSURL fileURLWithPath:photoPath];
[URL setResourceValue:@(YES) forKey:NSURLIsExcludedFromBackupKey error:nil];

我今天再次发送我的应用程序,看看是否有效。

希望这有帮助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

由于 2.23 导致 iOS 应用程序被拒绝 - iOS 数据存储指南 的相关文章

随机推荐