前段时间升级了Xcode8,总体来讲对OC的影响不大,可是仍是跳一个坑,消耗了很多时间。这里总结下遇到的适配问题。xcode
一、权限问题app
Xcode8 访问相机、相册等须要权限的地方崩溃ide
解决办法:ui
在使用私有权限时,添加Info.plist文件中添加配置:url
下面是各类key,须要哪一个添哪一个spa
NSBluetoothPeripheralUsageDescription命令行
NSCalendarsUsageDescriptioncode
NSCameraUsageDescriptionblog
NSContactsUsageDescriptionip
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSHomeKitUsageDescription
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
NSPhotoLibraryUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSSpeechRecognitionUsageDescription
NSVideoSubscriberAccountUsageDescription
NSVoIPUsageDescription
二、回调跳转问题(openUrl) (PBItemCollectionServicer connection disconnected 友盟第三方登陆时 受权后不回调的缘由)
iOS10 openUrl须要在下面方法中进行回调配置:
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options NS_AVAILABLE_IOS(9_0); // no equiv. notification. return NO if the application can't open for some reason
三、应用程序语言英文问题
解决办法:
去掉Use Base Internationalization的勾选
四、关于推送问题(我用的是极光推送,iOS10相关配置官方文档说的很明白,自行修改)
打开Push Notifications 开关
五、快捷注释问题
升级后,使用command+/ 快捷注释,我出现了下不能使用的问题,重启后就能好了(Xcode8.1)(使用中偶尔也会出现注释快捷键失效的状况,重启xcode或重启机器O__O")。
仍是敲下网上的解决办法:
终端命令行输入:sudo /usr/libexec/xpccachectl
以后必须重启电脑
六、废弃的方法
若是还须要兼容能够定义下版本的宏,而后根据版原本处理方法的使用,替换被废弃方法的方法通常会经过warning 给出,点进去苹果文档查看便可
举个栗子:
#define IOS_10 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0 ? YES : NO)