前段时间升级了Xcode8,整体来说对OC的影响不大,但是还是跳一个坑,消耗了不少时间。这里总结下遇到的适配问题。
1、权限问题
Xcode8 访问相机、相册等需要权限的地方崩溃
解决办法:
在使用私有权限时,添加Info.plist文件中添加配置:
下面是各种key,需要哪个添哪个
NSBluetoothPeripheralUsageDescription
NSCalendarsUsageDescription
NSCameraUsageDescription
NSContactsUsageDescription
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSHomeKitUsageDescription
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
NSPhotoLibraryUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSSpeechRecognitionUsageDescription
NSVideoSubscriberAccountUsageDescription
NSVoIPUsageDescription
2、回调跳转问题(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
3、应用程序语言英文问题
解决办法:
去掉Use Base Internationalization的勾选
4、关于推送问题(我用的是极光推送,iOS10相关配置官方文档说的很明白,自行修改)
打开Push Notifications 开关
5、快捷注释问题
升级后,使用command+/ 快捷注释,我出现了下不能使用的问题,重启后就能好了(Xcode8.1)(使用中偶尔也会出现注释快捷键失效的情况,重启xcode或重启机器O__O")。
还是敲下网上的解决办法:
终端命令行输入:sudo /usr/libexec/xpccachectl
之后必须重启电脑
6、废弃的方法
如果还需要兼容可以定义下版本的宏,然后根据版本来处理方法的使用,替换被废弃方法的方法一般会通过warning 给出,点进去苹果文档查看即可
举个栗子:
#define IOS_10 ([[[UIDevice currentDevice] systemVersion] floatValue] >= 10.0 ? YES : NO)