1、需要有投诉举报的功能
之前的版本都可以通过,同样的界面没有说没举报的功能,苹果的审核机制还真让人费解!
Your app enables the display of user-generated content but does not have the required precautions in place.
Next Steps
Please revise your app to implement all of the following precautions:
- Require that users agree to terms (EULA) and these terms must make it clear that there is no tolerance for objectionable content or abusive users.
- A method for filtering objectionable content.
- A mechanism for users to flag objectionable content.
- A mechanism for users to block abusive users.
- The developer must act on objectionable content reports within 24 hours by removing the content and ejecting the user who provided the offending content.
解决办法:
2、微信(第三方)登陆
如果没有按钮微信等软件的话,我们会提示没有安装该软件。但苹果拒绝了,说没有该软件。
解决办法:微信可以用该方法 [WXApi isWXAppInstalled] 来判断是否有没有安装,没安装就隐藏掉。
3、Unexpected Machine Code
提交时,会收到这个邮件,其实是苹果那边的问题,照样可以审核通过。
Unexpected Machine Code - Your upload contains both bitcode and native machine code. When you provide bitcode, it's not necessary to include machine code as well. To reduce the size of your upload, use Xcode 7.3 or later, or any other toolchain that removes machine code.
4、没有遵守“iOS Data Storage Guidelines”
被拒是因为App中下载的文件被包含在iCloud备份当中,而苹果觉得这些文件不应该被备份。当然,以前的版本我们把视频、图片都放在了document里。例如:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *filepath = [[paths objectAtIndex:0]stringByAppendingPathComponent:@"smallvideo"];
if (![[NSFileManager defaultManager]fileExistsAtPath:filepath]) {
[[NSFileManager defaultManager] createDirectoryAtPath:filepath withIntermediateDirectories:YES attributes:nil error:nil];
}
根据 iOS Data Storage Guidelines:
1、只有用户创建的,并且不能被App重现的文档、数据,才应该被保存在“/Documents”路径下。2、可以重新产生、下载的数据可以放在“/Library/Caches”目录下,如用于缓存的数据库文件。3、纯粹用于缓存的数据可以放在“/tmp”目录下。4、可以通过对NSURL加参数,来保证特定的文件夹及其内容不被iCloud备份,也不会被清除,如Document文件夹。
大家可以从这篇文章找到解决办法:一次审核被拒的经历-关于iCloud到底应该备份什么数据/
一开始我们用了上文的解决办法,放在/Documents中,通过设置,不让iCloud备份。但是...没有...通过.......,
最后我们是这样的,创建文件的时候加上下面的代码,只是放在了temp里面:
NSString *giffullpath = [gifpath stringByAppendingPathComponent:filename];
[[NSFileManager defaultManager] createDirectoryAtPath:giffullpath withIntermediateDirectories:YES attributes:nil error:nil];
[Tool addSkipBackupAttributeToItemAtPath:giffullpath];
+ (BOOL)addSkipBackupAttributeToItemAtPath:(NSString *) filePathString{
NSURL* URL= [NSURL fileURLWithPath: filePathString];
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;
}
Before you Submit
On launch and content download, we continue to find your app stores 29.07MB on the user's iCloud, which does not comply with the iOS Data Storage Guidelines.
Next Steps
Please verify that only the content that the user creates using your app, e.g., documents, new files, edits, etc. is backed up by iCloud as required by the iOS Data Storage Guidelines. Also, check that any temporary files used by your app are only stored in the /tmp directory; please remember to remove or delete the files stored in this location when it is determined they are no longer needed.
Data that can be recreated but must persist for proper functioning of your app - or because users expect it to be available for offline use - should be marked with the "do not back up" attribute. For NSURL objects, add the NSURLIsExcludedFromBackupKey attribute to prevent the corresponding file from being backed up. For CFURLRef objects, use the corresponding kCRUFLIsExcludedFromBackupKey attribute.
Resources
For additional information on preventing files from being backed up to iCloud and iTunes, see Technical Q&A 1719: How do I prevent files from being backed up to iCloud and iTunes.
If you have difficulty reproducing a reported issue, please try testing the workflow described in Technical Q&A QA1764: How to reproduce bugs reported against App Store submissions.
If you have code-level questions after utilizing the above resources, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:
- complete details of your rejection issue(s)
- screenshots
- steps to reproduce the issue(s)
- symbolicated crash logs - if your issue results in a crash log
继续更新中....