• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 如何在不将其备份到 iCloud 的情况下为我的应用程序提供演示数据?

[复制链接]
菜鸟教程小白 发表于 2022-12-12 15:24:44 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我从一月份开始在 App Store 中有一个应用程序,它会在首次启动时将数据库文件复制到“文档”目录。

此数据库用于存储用户创建的“预设”。每个预设最多可以有 129 张照片。

在开始时,该应用程序带有一个“默认预设”,用户可以使用它来了解并开始使用该应用程序。这个预设对用户来说就像是一个“礼物”,如果他不再想要了,他可以直接删除它。

在更新 2.0.2 时,此架构中没有任何更改,但 Apple 现在拒绝了我的更新。

2.23 - Apps must follow the iOS Data Storage Guidelines or they will be rejected

我不知道如何解决这个问题。问题似乎是苹果认为“临时”的默认预设被备份到了 iCloud。此预设不是临时的。它必须持久化,并且是数据库的一部分。

我也不能用“不备份”标记数据库,因为这样用户创建的“预设”不会被备份,这将是可怕的。

有人知道如何解决这个问题吗?



Best Answer-推荐答案


您需要将文件标记为 not backup to iCloud .

如果不这样标记文件,它将有资格备份到 iCloud。 Apple 最近开始强制执行此操作。

如果应用生成大量数据,在应用启动时,他们会拒绝它。 Apple 的理由是,任何可以重新生成的数据都不应该备份到 iCloud。

为防止这种情况,Apple 建议:

- (BOOL)addSkipBackupAttributeToItemAtURLNSURL *)URL
{
    assert([[NSFileManager defaultManager] fileExistsAtPath: [URL path]]);

    NSError *error = nil;
    BOOL success = [URL setResourceValue: [NSNumber numberWithBool: YES]
                                  forKey: NSURLIsExcludedFromBackupKey error: &error];
    if(!success){
        NSLog(@"Error excluding %@ from backup %@", [URL lastPathComponent], error);
    }
    return success;
}

除了 iCloud 的全面遗漏之外,您唯一剩下的就是将您的用户生成的内容与您的可重新创建的内容分开。

关于ios - 如何在不将其备份到 iCloud 的情况下为我的应用程序提供演示数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19233751/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap