为什么我的应用程序被appstore拒绝,虽然我没有使用icloud

我没有使用任何icloud存储

原因2.23:应用必须遵循iOS数据存储指南,否则将被拒绝—– 2.23 —–我们发现您的应用不符合iOS数据存储指南,根据App Store审核指南要求。 特别是,我们发现在启动和/或内容下载时,您的应用程序存储21.12 MB。 要检查应用程序存储的数据量: – 安装并启动应用程序 – 转到设置> iCloud > Storage & Backup > Manage Storage – 如有必要,点击“显示所有应用程序” – 检查应用程序的存储空间iOS数据存储指南指示只有用户使用您的应用创建的内容,例如文档,新文件,编辑等,才能由iCloud备份。 应用程序使用的临时文件只应存储在/ tmp目录中; 请记住在用户退出应用程序时删除存储在此位置的文件。 可以重新创建但必须保持应用程序正常运行的数据 – 或者因为客户希望它可供脱机使用 – 应标记为“不备份”属性。 对于NSURL对象,请添加NSURLIsExcludedFromBackupKey属性以防止备份相应的文件。 对于CFURLRef对象,请使用相应的kCFURLIsExcludedFromBackupKey属性。 有关详细信息,请参阅技术问答1719:如何防止文件备份到iCloud和iTunes?。

要将数据离线存储到Sqlite我的function是

 + (NSString*)saveImageInDocuments:(UIImage*)senderImage { NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; NSDate *selected = [NSDate date]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"ddmmyyyyhhmmss"]; NSString *imgName = [dateFormat stringFromDate:selected]; imgName = [NSString stringWithFormat:@"%@.jpg",imgName]; NSString *savedImagePath = [documentsDirectory stringByAppendingPathComponent:imgName]; UIImage *image = senderImage; NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation(image)]; [imageData writeToFile:savedImagePath atomically:YES]; NSLog(@"path is... %@",savedImagePath); return imgName; } 

为了从sqlite离线数据我正在使用这个function

 + (UIImage*)getImageFromDocuments:(NSString*)senderImageName { NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString *getImagePath = [documentsDirectory stringByAppendingPathComponent:senderImageName]; NSFileManager *fileManager = [NSFileManager defaultManager]; BOOL fileExist = [fileManager fileExistsAtPath:getImagePath]; // Returns a BOOL UIImage *img = [[UIImage alloc] init]; if(fileExist) { img = [[UIImage alloc] init]; img = [UIImage imageWithContentsOfFile:getImagePath]; } NSLog(@"path is... %@",getImagePath); return img; } 

您必须为不希望在iCloud上同步的文件设置标志。 默认情况下为iOS Sync。 如果设备设置允许,iCloud上的应用数据。

使用此方法可以从备份中跳过文件

 - (BOOL)addSkipBackupAttributeToItemAtURL: (NSURL *)URL { float version = [[[UIDevice currentDevice] systemVersion] floatValue]; if (version > 5.0) { 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; } return NO; } [self addSkipBackupAttributeToItemAtURL:[[NSURL alloc] initFileURLWithPath:"YOURFILEPATH"]];