iOS 应用被拒绝:应用必须遵循 iOS 数据存储指南,否则将被拒绝
iOS app rejected: Apps must follow the iOS Data Storage Guidelines or they will be rejected
我的申请第二次被拒绝了。
当我的应用程序 第一次 被拒绝时,我首先检查了所有这些链接以及更多链接:
- Rejection: "2.23: Apps must follow the iOS Data Storage Guidelines", We do not have any data saved in documents folder
- 2.23: Apps must follow the iOS Data Storage Guidelines or they will be rejected
- http://samwize.com/2013/06/28/ios-data-storage-guidelines-and-how-to-resolve-itunes-connect-reject/
- iOS: Do not back up attribute?
然后,我添加了一个功能,用 "do not back up" 属性 NSURLIsExcludedFromBackupKey
标记我的所有 /Documents
文件。但是我的申请又被拒绝了。这是我的代码:
func excludeUrls(path: String) {
let urlToExclude = NSURL.fileURLWithPath(path)
do {
try urlToExclude.setResourceValue(NSNumber(bool: true), forKey: NSURLIsExcludedFromBackupKey)
print("\(path) excluded.")
} catch {
print("failed to set resource value")
}
}
更多信息:
- 我在
Supporting Files
中嵌入了大约320张静态照片,这些图片没有备份。
- 我使用
Google/SignIn
、Google/CloudMessaging
、Alamofire
和 SQLite.swift
pods
- 我有 1 sqlite 数据库,我保存在 /Library/Cache 文件夹中,当然没有备份。
- 当我检查我的应用程序的 iCloud 存储 space 时:
Go to Settings > iCloud > Storage & Backup > Manage Storage
我发现我的应用存储只有 578 KB
根据您发布的评论,Apple 断言您的应用在启动时实际上备份了大约 6 兆字节的数据。
这是关键。尝试重现并隔离该行为。如果一切看起来都不是这样的话,您也许可以使用仪器和仔细的眼睛在较低的层次上解决这个问题。
您唯一能做的就是让他们与您联系并与他们讨论。
希望 Apple 审核团队最终接受我的申请。这是我所做的:
1 - 我将生成的数据库移动到 /Library/Caches
2 - 我添加了一个 ImageLoader class 来优化我在应用程序中加载和使用图像的方式,特别是有很多图像需要处理。所以,最好的方法是使用缓存:check this class
3 - 在看到我的应用程序没有在 iCloud 中存储大量 KB 后,我所做的最重要的事情是我对拒绝提出上诉,并提供了很多描述和细节,甚至是一些屏幕截图。
我的申请第二次被拒绝了。
当我的应用程序 第一次 被拒绝时,我首先检查了所有这些链接以及更多链接:
- Rejection: "2.23: Apps must follow the iOS Data Storage Guidelines", We do not have any data saved in documents folder
- 2.23: Apps must follow the iOS Data Storage Guidelines or they will be rejected
- http://samwize.com/2013/06/28/ios-data-storage-guidelines-and-how-to-resolve-itunes-connect-reject/
- iOS: Do not back up attribute?
然后,我添加了一个功能,用 "do not back up" 属性 NSURLIsExcludedFromBackupKey
标记我的所有 /Documents
文件。但是我的申请又被拒绝了。这是我的代码:
func excludeUrls(path: String) {
let urlToExclude = NSURL.fileURLWithPath(path)
do {
try urlToExclude.setResourceValue(NSNumber(bool: true), forKey: NSURLIsExcludedFromBackupKey)
print("\(path) excluded.")
} catch {
print("failed to set resource value")
}
}
更多信息:
- 我在
Supporting Files
中嵌入了大约320张静态照片,这些图片没有备份。 - 我使用
Google/SignIn
、Google/CloudMessaging
、Alamofire
和SQLite.swift
pods - 我有 1 sqlite 数据库,我保存在 /Library/Cache 文件夹中,当然没有备份。
- 当我检查我的应用程序的 iCloud 存储 space 时:
Go to Settings > iCloud > Storage & Backup > Manage Storage
我发现我的应用存储只有 578 KB
根据您发布的评论,Apple 断言您的应用在启动时实际上备份了大约 6 兆字节的数据。
这是关键。尝试重现并隔离该行为。如果一切看起来都不是这样的话,您也许可以使用仪器和仔细的眼睛在较低的层次上解决这个问题。
您唯一能做的就是让他们与您联系并与他们讨论。
希望 Apple 审核团队最终接受我的申请。这是我所做的:
1 - 我将生成的数据库移动到 /Library/Caches
2 - 我添加了一个 ImageLoader class 来优化我在应用程序中加载和使用图像的方式,特别是有很多图像需要处理。所以,最好的方法是使用缓存:check this class
3 - 在看到我的应用程序没有在 iCloud 中存储大量 KB 后,我所做的最重要的事情是我对拒绝提出上诉,并提供了很多描述和细节,甚至是一些屏幕截图。