iOS10适配问题收集整理

 更新时间:2016年09月27日 10:12:41   作者:梦晨ing  
本文是小编给大家收集整理些有关iOS10适配问题的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下

1、TencentOpenAPI的坑

表现:启动就crash

原因:由于很久没有更新该sdk了,用的版本是2.3.1。后来想着去官网下个最新的吧,不过最新的是3.0的版本,替换原来的sdk后,有些接口和头文件定义的问题,直接编译不过。为了少踩点坑,还是选择了其他项目已经在用的2.8版本。该版本可以直接替换,在iOS10上顺利解决。

2、私有权限申请的坑

表现:Xcode8编译的版本,首次打开相机、相册、获取通讯录、录视频...统统crash

原因:由于iOS10对Security and Privacy Enhancements 安全和保密性增强,在申请很多私有权限时,都需要添加描述,不添加会crash。但使用之前的Xcode编译的话,仍然会采用系统的权限通知框。

填这个坑,只需在Info.list里配置上请求权限的描述信息就可以了。

我在Info.list添加了程序中用到的权限,就解决了。

示例图

这里列出相关的key, 可以要小心,绝对不能写错哦!

NSBluetoothPeripheralUsageDescription
NSCalendarsUsageDescription
NSCameraUsageDescription
NSContactsUsageDescription
NSHealthShareUsageDescription
NSHealthUpdateUsageDescription
NSHomeKitUsageDescription
NSLocationAlwaysUsageDescription
NSLocationWhenInUseUsageDescription
NSMicrophoneUsageDescription
NSMotionUsageDescription
NSPhotoLibraryUsageDescription
NSRemindersUsageDescription
NSSiriUsageDescription
NSSpeechRecognitionUsageDescription
NSVideoSubscriberAccountUsageDescription
NSVoIPUsageDescription

3、statusBar不见了

表现:statusBar会消失掉或颜色没有改变

原因:找到原因是,程序经常会在全屏浏览的时候隐藏掉statusBar,相信很多应用都用到这个功能,当退出是使用以下方法还原:

[[UIApplication sharedApplication] setStatusBarStyle:_previousStatusBarStyle animated:animated];

不过该方法使用寿命就到iOS9了,iOS10彻底不能用了。要想以后iOS10也能保持statusBar的正确显示,就按下图接口备注的来改吧。估计改动会比较多,那又有什么办法呢,苹果爸爸就给你指定好规则了,你就老实的跟着走吧。

4、Xcode8打包,ios7安装后调用[UIImage imageNamed:]奔溃

表现:堆栈信息如下:

原因:使用xcassets管理图片,拿掉xcassets后正常。这个是针对iOS7的,别的同事遇到,因为我暂时没有iOS7的设备,没有验证,大家遇到了可以参考。

5、从App中直接跳转到特定的设置项失效或审核不过

表现:之前使用prefs:root=xxxx,"xxxx"可以是Photos,WIFI等这些具体的设置项,在升级到iOS10后发现失效。

原因:其实这种设置方式并没有在任何苹果的官方文档里出现,只是之前很多人这么使用了,而且顺利提交AppStore了。之前就有应用使用过多这种方式,被拒了,苹果给出的理由是使用了私有接口。在iOS10时发现,我们之前也使用了这种方式跳转到相册权限设置,原本通过的功能失效了,可能在iOS10中出于安全性的考虑,这些系统的scheme被修改或禁用了。

解决方法:iOS8以后可以跳转到系统的“设置”页面。

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];

不过iOS10这个openURL的API也有所调整,应使用下面的方法

- (void)openURL:(NSURL*)url options:(NSDictionary<NSString *, id> *)options completionHandler:(void (^ __nullable)(BOOL success))completion NS_AVAILABLE_IOS(10_0) NS_EXTENSION_UNAVAILABLE_IOS("");

6、字体的变化,导致中文显示宽度变大,英文没有影响。

表现:固定宽度的按钮,变...了,显示不全。

原因:iOS10的字体变化了

解决方法:一个个修改控件的吧,还没想到好方法。

以上所述是小编给大家介绍的iOS10适配问题收集整理,字体适配和编译不过的问题及解决方案,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • iOS12新特性之推送通知详解

    iOS12新特性之推送通知详解

    这篇文章主要给大家介绍了关于iOS12新特性之推送通知的相关资料文中通过图文以及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • iOS实现手势滑动解锁功能简析

    iOS实现手势滑动解锁功能简析

    本篇文章主要介绍了iOS实现手势滑动解锁功能简析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • 学习iOS全局跑马灯

    学习iOS全局跑马灯

    这篇文章主要帮助大家学习iOS全局跑马灯,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-10-10
  • 关于iOS中属性变量setter与getter方法的理解

    关于iOS中属性变量setter与getter方法的理解

    这篇文章主要给大家介绍了关于iOS中属性变量setter与getter方法的相关资料,文章介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-06-06
  • 详解iOS开发之NSURLProtocol的那些坑

    详解iOS开发之NSURLProtocol的那些坑

    本篇文章主要介绍了详解iOS开发之NSURLProtocol的那些坑,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • iOS内存管理Tagged Pointer使用原理详解

    iOS内存管理Tagged Pointer使用原理详解

    这篇文章主要为大家介绍了iOS内存管理Tagged Pointer使用原理详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-01-01
  • iOS输入框的字数统计/最大长度限制详解

    iOS输入框的字数统计/最大长度限制详解

    在开发中经常会遇到键盘输入的字符长度的限制,下面这篇文章主要给大家介绍了关于iOS输入框的字数统计/最大长度限制的相关资料,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2018-06-06
  • iOS中设置清除缓存功能的实现方法

    iOS中设置清除缓存功能的实现方法

    清除缓存基本上都是在设置界面的某一个Cell,于是我们可以把清除缓存封装在某一个自定义Cell中,现在位大家介绍一种最基础的清除缓存的方法,感兴趣的朋友一起看看吧
    2017-07-07
  • 史上最详细的CocoaPods安装教程(图文)

    史上最详细的CocoaPods安装教程(图文)

    虽然网上关于CocoaPods安装教程多不胜数,但是我在安装的过程中还是出现了很多错误,所以大家可以照下来步骤装一下,我相信会很好用
    2016-09-09
  • 关于ios配置微信config出现验签失败的问题解决

    关于ios配置微信config出现验签失败的问题解决

    这篇文章主要介绍了关于ios配置微信config出现验签失败的问题解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04

最新评论