【问题标题】:IOS rejected from AppStoreIOS被AppStore拒绝
【发布时间】:2015-06-04 02:54:02
【问题描述】:

我已经向 AppStore 提交了我的申请,但我的申请被拒绝了。

这是一个原因:

我已经按照这个链接工作了,但我的申请也被拒绝了。 2.23: Apps must follow the iOS Data Storage Guidelines or they will be rejected

【问题讨论】:

  • 应用是否存储了大量不需要备份的数据?

标签: ios app-store


【解决方案1】:

这通常意味着您将一些数据、缓存文件或个人资料图像(例如,可以由您的应用重新创建/重新下载)存储在 iCloud 将备份的位置。这浪费了苹果的用户数据和服务器空间。在过去 6 个月左右的时间里,他们确实一直在打击这件事。

您可以将文件存储在 iCloud 未备份的位置(/Library/Application Support),或者使用不备份属性标记文件。

用这样的代码获取那个文件夹:

NSString* appSupportFolder = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) firstObject];

这是一个可以用来设置不备份属性的类别:

@implementation NSURL (DoNotBackupAttribute)

- (BOOL)dw_addDoNotBackupAttribute
{
    if (![[NSFileManager defaultManager] fileExistsAtPath:[self path]]) return NO;

    __autoreleasing NSError* error = nil;
    if (![self setResourceValue:@(YES) forKey:NSURLIsExcludedFromBackupKey error:&error]) {
        NSLog(@"Error: failed to set do not backup attribute on file %@, error: %@", self, [error localizedDescription]);
    }

    return YES;
}

@end

【讨论】:

  • 那么,我可以在哪里保存我的数据?
  • 更新了可能位置的答案。
  • 好的,谢谢。我会重新提交并等待结果。
【解决方案2】:

问题是您的应用开始存储 252.96MB 数据!

您无法以这种方式设计应用。请记住,用户只有有限的存储和备份空间。 Apple 的文档对这里的规则非常清楚:

https://developer.apple.com/icloud/documentation/data-storage/index.html

您应该只将大数据存储在 Caches 目录中,该目录可以清除且不会备份。

【讨论】:

  • 虽然 250+ meg 是很多,但我在一个不恰当地存储 41 Kb 文件的应用程序上看到了这种拒绝。这看起来很疯狂,直到您认为该应用程序可能拥有大量用户并且仍然需要花费大量的时间在 iCloud 系统上进行存储。
  • 好点子,但我真正的意思是 OP 显然没有费心查阅 Apple 的文档,尽管 Apple 告诉他这样做。
【解决方案3】:

如果您要存储大量可以再次下载或重新生成的数据,您需要将其存储在<Application_Home>/Library/Caches 而不是<Application_Home>/Documents 目录中。

或者,您可以使用应用委托中的addSkipBackupAttributeToItemAtURL 方法阻止设备将某些文件备份到 iCloud。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多