由于“不备份”原因,苹果开发者拒绝了iPhone应用程序。现在我该怎么做?
由于“不备份”原因导致应用程序被拒绝原因由于“不备份”原因,苹果开发者拒绝了iPhone应用程序。现在我该怎么做?
我尝试了一件事来消除此问题。我从Apple技术支持获得了一小段代码,并根据iOS guideLines在我的项目中使用此代码。首先,我在我的appdelegate.m
部分添加了一个头文件
#import<sys/xattr.h>
然后粘贴下面的函数。
- (BOOL)addSkipBackupAttributeToItemAtURL:(NSURL *)URL
{
const char* filePath = [[URL path] fileSystemRepresentation];
const char* attrName = "com.apple.MobileBackup";
u_int8_t attrValue = 1;
int result = setxattr(filePath, attrName, &attrValue, sizeof(attrValue), 0, 0);
return result == 0;
}
并在完成启动时将上述函数调用到我的appdelegate。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.viewController = [[ViewController alloc] initWithNibName:@"ViewController" bundle:nil];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
return YES;
[self addSkipBackupAttributeToItemAtURL:[NSURL URLWithString:@"<Application_Home>/Library/Caches"]];
[self addSkipBackupAttributeToItemAtURL:[NSURL URLWithString:@"<Application_Home>/tmp"]];
[self addSkipBackupAttributeToItemAtURL:[NSURL URLWithString:@"<Application_Home>/Library/Private Documents"]];
}
现在我只想知道这是否行。我可以重新上传我的申请iTunes Connect吗?
我找到了解决此问题的解决方案。我们不应该保留任何大的内存数据库。 为了消除这个问题,我删除了所有放置在db.sqlite
(db.sqlite
是我的数据库名称)的图像。现在我做了一个新的db.sqlite
。在这个我只保留图像名称,图像保存在我的项目文件夹。
如果您的应用程序中有大量数据库,那么您将不得不遵循iCloud。 现在Apple接受我的申请,并获得批准。 :-)
也阅读了本 - 数据存储的准则
- 无法重新创建,如文档,或者如果设备被损坏,将无法用户特定的数据
关键数据,进入Application_Home>/Documents目录下的<,除非另有说明,否则将由iCloud备份。
可以重新创建的缓存数据(如本地数据库或下载的图像)进入< Application_Home>/Library/Caches目录,不会被iCloud备份。如果iOS的磁盘空间不足,可能会在某些时候清除此数据。
在应用程序启动(例如临时文件高速缓存)之间临时数据是临时数据,并且不会被iCloud备份到< Application_Home>/tmp目录中。你应该永远记得自己删除存储在这里的文件。
当设备脱机时(例如飞行模式),需要持久保存且可用的离线数据将进入< Application_Home>/Library/Private Documents目录,并且不会由iCloud备份,但它也会在磁盘空间不足的情况下不会被iOS清除。有关iOS中的私人文档的更多信息。
您应该在创建文件夹的位置设置属性。如果在didFinishLaunching期间尝试设置属性并且文件夹尚不存在(即,首次启动时),那么一旦它们被创建,它们将不会设置属性。在您的应用下次启动时它会正确设置,但您仍然会在第一次和第二次运行之间创建备份。
此外,我相信库/库文件夹会自动从备份中排除。
为什么选了票?当我在IOS新手时,我问了这个问题。现在我已经给出了关于这个问题的答案...但是仍然得票低于...... :( – TheTiger 2012-11-03 16:06:57