Xcode 9 中遇到的问题
问题一: 更新Xcode 9 之后之前定义的代码块不能够使用了
解决方法: 修改 选项 Completion Scopes 为 all
问题二: Xcode9出现错误safe area layout guide before ios 9
当使用系统小于iOS9的模拟器或者真机在Xcode9上运行时,会编译不过,出现两个错误,如图:
解决办法: 这是因为苹果在iOS7中引入的Top Layout Guide和Bottom Layout Guide,这些布局指南在iOS 11中被弃用,取而代之的是Safe Area Layout Guide.所以需要在Main.storyboard和LaunchScreen.storyboard上把属性Safe Area Layout Guide.勾去掉,如图:
重新运行就没问题了
Xcode 8 中遇到的问题
Missing Info.plist key - This app attempts to access
privacy-sensitive data without a usage description. The app's
Info.plist must contain an NSCameraUsageDescription key
with a string value explaining to the user
how the app uses this data.
大概意思就是说得在plist里面必须加上
NSPhotoLibraryUsageDescription和
NSCameraUsageDescription的键值对才行,
之前都是默认的,现在必须加,要不不让通过,真是坑啊~~具体配置如下图
如下方便复制粘贴用:
麦克风权限:
Privacy - Microphone Usage Description 是否允许此App使用您的麦克风?
相册权限:
Privacy - Photo Library Usage Description 是否允许此App访问您的相册?
相机权限:
Privacy - Camera Usage Description 是否允许此App使用您的相机?
通讯录权限:
Privacy - Contacts Usage Description 是否允许此App访问您的通讯录?
地理位置权限(后台定位):
Privacy - Location Always Usage Description 是否允许此App访问您的地理位置?
地理位置权限(前台定位):
Privacy - Location When In Use Usage Description 是否允许此App访问您的地理位置?
蓝牙权限:
Privacy - Bluetooth Peripheral Usage Description 是否许允此App使用蓝牙?
日历权限:
Privacy - Calendars Usage Description 是否允许此App使用日历?
注意在复制的时候前后不要空格,并且在权限字段后一定要有描述,不然xcode会自动把这个声明删除
查到有前辈讲其中有几项权限是必需设置的,我仅仅设置麦克风,相机,相册的权限声明之后但是仍然没有构建成功,所以将这所有权限在plist文件中统一声明一下最完美,并且提醒用户的权限提示框也只有在app中代码使用到此功能才会弹出,所以不必担心影响用户体验.
所有权限字段添加完成,再次无论用Xcode还是Application loader上传成功之后,在iTunes Connect 后台就会看到成功构建的版本,提交审核就可以了!