iOS10 适配问题-Xcode8

前段时间升级了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)
原文地址:https://www.cnblogs.com/zhangzhang-y/p/6023025.html