iOS9适配中出现的问题整理
2015-11-17 14:30
274 查看
升级xcode7后,运行项目遇到以下一些问题,收集起来,希望能帮助到大家。
1 Xcode 7 缺少 *.dylib库的解决方法
在项目Target中的Link Binary With Libraries 手动添加
首先点击 “+”
显示搜索添加页面,在这里如果搜索之前的libsqlite3.dylib是搜不出来ios9之前的。所以需要点击 Add Other,
出现文件目录页面,正常情况这里去通过Finder也是找不到老的libsqlite3.dylib文件的,因为这个文件是隐藏掉的。所以需要按
快捷键 CMD+Shift+G (Go to the folder),输入/usr/lib后,进入隐藏的界面,然后添加你需要的 *.dylib,如libsqlite3.dylib文件。即可。
2 二进制库不支持bitcode
在 xcode 7 项目 中 build Settings 搜索这个字,默认情况是YES ,不支持就改成No 。
今天微信编译的时候也报相关的错,这一点真是让人纠结。xcode 设置总是多。有时候很难理解。只好一点点记录。
3 ios 9 App Transport Security Policy (ATP的问题)
突然遇到这个问题是使用UIWebView加载 http 而不是https 协议的网址。
解决的方法可以参考这里 iOS9 HTTP 不能正常使用的解决办法
在Info.plist中添加NSAppTransportSecurity类型Dictionary。 在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
注意一点当时直接修改info.list是没生效,参考网友的做法是在target 里面info 下再添加。这个时候生效了,能够处理这个问题。不知道原理是什么,这里的参数总是很让人莫名奇妙 但能凑效
4 字体
iOS8中,字体是
所以很多原本写死了width的label可能会出现“...”的情况。
iOS8
5 URL scheme
URL scheme一般使用的场景是应用程序有分享或跳其他平台授权的功能,分享或授权后再跳回来。
在iOS8并没有做过多限制,但是iOS9需要将你要在外部调用的URL scheme列为白名单,才可以完成跳转
如果iOS9没做适配 会报如下错误
具体的解决方案也是要在info.plist中设置 LSApplicationQueriesSchemes 类型为数组,下面添加所有你用到的scheme
1 Xcode 7 缺少 *.dylib库的解决方法
在项目Target中的Link Binary With Libraries 手动添加
首先点击 “+”
显示搜索添加页面,在这里如果搜索之前的libsqlite3.dylib是搜不出来ios9之前的。所以需要点击 Add Other,
出现文件目录页面,正常情况这里去通过Finder也是找不到老的libsqlite3.dylib文件的,因为这个文件是隐藏掉的。所以需要按
快捷键 CMD+Shift+G (Go to the folder),输入/usr/lib后,进入隐藏的界面,然后添加你需要的 *.dylib,如libsqlite3.dylib文件。即可。
2 二进制库不支持bitcode
在 xcode 7 项目 中 build Settings 搜索这个字,默认情况是YES ,不支持就改成No 。
今天微信编译的时候也报相关的错,这一点真是让人纠结。xcode 设置总是多。有时候很难理解。只好一点点记录。
3 ios 9 App Transport Security Policy (ATP的问题)
突然遇到这个问题是使用UIWebView加载 http 而不是https 协议的网址。
解决的方法可以参考这里 iOS9 HTTP 不能正常使用的解决办法
在Info.plist中添加NSAppTransportSecurity类型Dictionary。 在NSAppTransportSecurity下添加NSAllowsArbitraryLoads类型Boolean,值设为YES
注意一点当时直接修改info.list是没生效,参考网友的做法是在target 里面info 下再添加。这个时候生效了,能够处理这个问题。不知道原理是什么,这里的参数总是很让人莫名奇妙 但能凑效
4 字体
iOS8中,字体是
Helvetica,中文的字体有点类似于“华文细黑”。只是苹果手机自带渲染,所以看上去可能比普通的华文细黑要美观。iOS9中,中文系统字体变为了专为中国设计的“苹方” 有点类似于一种word字体“幼圆”。字体有轻微的加粗效果,并且最关键的是字体间隙变大了!
所以很多原本写死了width的label可能会出现“...”的情况。
iOS8
5 URL scheme
URL scheme一般使用的场景是应用程序有分享或跳其他平台授权的功能,分享或授权后再跳回来。
在iOS8并没有做过多限制,但是iOS9需要将你要在外部调用的URL scheme列为白名单,才可以完成跳转
如果iOS9没做适配 会报如下错误
canOpenURL: failed for URL : "mqzone://qqapp" - error: "This app is not allowed to query for scheme mqzone"
具体的解决方案也是要在info.plist中设置 LSApplicationQueriesSchemes 类型为数组,下面添加所有你用到的scheme
相关文章推荐
- iOS9中的WebKit 与 Safari带来的惊喜
- IOS 9 UITableView整理
- iOS9 获取通讯录信息
- 苹果公司正式发布iOS9 beta3
- 解决适配iOS9
- ios9 HTTP网络请求失败 and 第三方sdk 报错问题解决方法
- UM适配iOS9
- IOS 9 关于微信,QQ三方登陆的https适配结局方案,XCODE配置
- App Transport Security (ATS)
- AddressBookUI Framework in iOS9 beta4
- iOS---iOS9中获取通讯录的方法:Contacts. framework简单使用
- 系统升级到iOS9,真机运行报“was compiled with optimization - stepping may behave oddly...”,闪退
- 整理iOS9适配中出现的坑(图文)
- 整理 iOS 9 适配中出现的坑(图文)
- ios9 XIB加载缓慢
- iOS项目更新之升级Xcode7 & iOS9
- iOS 适配系列教程
- iOS9 webView打不开了
- iOS 9部分问题
- iOS9的新特性以及适配方案