菜鸟教程小白 发表于 2022-12-12 15:24:44

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


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

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

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

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

<blockquote>
<p>2.23 - Apps must follow the iOS Data Storage Guidelines or they will
be rejected</p>
</blockquote>

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

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

<p>有人知道如何解决这个问题吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>您需要将文件标记为 <a href="https://developer.apple.com/library/ios/qa/qa1719/_index.html" rel="noreferrer noopener nofollow">not backup to iCloud</a> .</p>

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

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

<p>为防止这种情况,Apple 建议:</p>

<pre><code>- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
    assert([ fileExistsAtPath: ]);

    NSError *error = nil;
    BOOL success =
                                  forKey: NSURLIsExcludedFromBackupKey error: &amp;error];
    if(!success){
      NSLog(@&#34;Error excluding %@ from backup %@&#34;, , error);
    }
    return success;
}
</code></pre>

<p>除了 iCloud 的全面遗漏之外,您唯一剩下的就是将您的<em>用户生成的</em>内容与您的<em>可重新创建的内容</em>分开。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - 如何在不将其备份到 iCloud 的情况下为我的应用程序提供演示数据?,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/19233751/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/19233751/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - 如何在不将其备份到 iCloud 的情况下为我的应用程序提供演示数据?