最近在做一个项目的更新上架,上传到苹果审核,因为启动时候会崩溃导致被拒。我在本地进行测试时,都没有问题。(事后发现我只有用iOS 10一下版本进行测试,没有进行测试iOS 10真机)前后左右折腾了一段时间,期间也搭建过ipv6环境进行测试,最后发现是在iOS 10系统的权限出现问题。
首先,先看一下苹果发过来的crash log
crashlog.png???完全看不懂,都是一些内存地址,我试过使用symbolicatecrash进行解析,仍然是一些内存地址,完全定位不到具体的崩溃函数。
我仔细看了苹果审核发过来的信息
Your app crashes on iPad running iOS 10.2.1 when we:
launch the app
Next Steps
Please review your app on iPad to ensure that it runs without crashing. Also, please follow the steps to reproduce the issue when running your app on iPad configured for real world use.
For new apps, uninstall all previous versions of your app from a device, then install and follow the steps to reproduce. For updates, install the new version as an update to the previous version, then install and follow the steps to reproduce.
意思是说,我的应用在运行在ipad(iOS 10.2.1)上面,启动时候会发生闪退的情况。下面说了,解决的建议。。
刚开始我以为可能是ipad的布局问题导致的闪退,特定拿了ipad的模拟器(没有ipad)进行测试,没有问题,之后,更新了afn,搭建ipv6环境进行测试,都是没有问题的。我才意识到,我的应用还没有在iOS 10.2.1上面进行测试。于是,我更新了iphone系统,进行测试,居然崩溃了!报了以下错误:
This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSMicrophoneUsageDescription key with a string value explaining to the user how the app uses this data.
原来是iOS 10系统的权限问题导致的崩溃,汗😅,之后的解决方法就很简单了。只需要在info.plist文件中,添加即可。
Paste_Image.png这里也提供一下其他的权限key,如果你在应用中有使用其中的功能,不要忘记添加这些key哦。
<key>NSCameraUsageDescription</key>
<string>cameraDesciption</string>
<key>NSContactsUsageDescription</key>
<string>contactsDesciption</string>
<key>NSMicrophoneUsageDescription</key>
<string>microphoneDesciption</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>LibraryUsageDescription</string>
网友评论