iOS9 升级XCode7遇到的问题收集
2015-09-22 15:27
232 查看
开发环境运行
各位可能会觉得,笔者在此还要讲开发环境的运行,是不是多此一举。其实并非如此,综合笔者这几年iOS开发经验的总结,运行新版本,特别是测试版本的Xcode是一个需要格外小心的事情,讲起来都是血泪史。
在运行 GM 版本Xcode时,我们需要特别注意以下几个方面:
- 在运行GM版本Xcode前,务必要退出原来正式版本Xcode(如Xcode 6.4)
- 在运行GM版本Xcode时,务必要避免双击打开工程文件(也是为了避免新旧版本同时运行)。
- 如果要切换回原来版本时,一定要先退出GM版本,而且尽可能将Xcode的缓存数据清除。
App 项目运行
待项目运行,首先会碰到的问题就是配置兼容,会出现如下错误
图2.1 BitCode 错误
当我们看到App编译报错的时候,首先想项目不兼容Xcode7,再仔细一看
其中 ENABLE_BITCODE 吸引了我们的注意,看结合其它的描述信息,基本可以确定是我们使用的第三方静态库(.a)不支持BitCode,当然,我们对应就有如下两种方案来解决:
方法一:更新对应的第三方静态库(现在更新的静态库,基本都能支持BitCode)
方法二:可以将Xcode7默认开启的BitCode功能关闭,如图2.2所示
图2.2 关闭BitCode 操作示意图
当然,除了上面的问题外,当我们在添加Framework的时候,会发现此前导入的动态链接库(dylib)他部变成了红色,如图2.3所示,所幸的是,就算不替换成Xcode 7新的动态库文件(.tbd),仍然可以正常运行.
图2.3 动态链接库丢失示意图
最后,部分App在编译的时候,可能还会收到如下报错,小编也遇到过一次
看到这句提示,就是说App默认是有开启了多任务功能,而多任务功能是需要App支持所有方向,如果我们App是有需要支持多任务,则需要开启App对各个方向(上、下、左、右)的支持;如果App不需要开启多任务,则只需要将如下示意图的 requires full screen 勾选上就ok(如图2.4)。
图2.4 勾选 Requires full screen示意图
不出意外,接下来,App应该是能正常编译运行(小编的AnimationDesk Cloud接下来是可以正常运行),但紧接着,发生了更诡异的事情,以前的的网络访问,现在完全访问不通;大家也许会觉得这可能是服务器挂了,或是外网被墙了,小编最初也是这么想的,但事实上,服务器(从Safari)还是能照常被访问,只是App访问不了,于是后来联想到iOS9 WWDC讲到的网络数据传输安全部分,经过一翻折腾,最终,网络访问的部分也恢复了正常。
其实只要在App的Info.plist里面加入如下信息就可以
添加成功后的示意图如下图(图2.4)
图2.4 添加Transport Security 示意图
各位可能会觉得,笔者在此还要讲开发环境的运行,是不是多此一举。其实并非如此,综合笔者这几年iOS开发经验的总结,运行新版本,特别是测试版本的Xcode是一个需要格外小心的事情,讲起来都是血泪史。
在运行 GM 版本Xcode时,我们需要特别注意以下几个方面:
- 在运行GM版本Xcode前,务必要退出原来正式版本Xcode(如Xcode 6.4)
- 在运行GM版本Xcode时,务必要避免双击打开工程文件(也是为了避免新旧版本同时运行)。
- 如果要切换回原来版本时,一定要先退出GM版本,而且尽可能将Xcode的缓存数据清除。
App 项目运行
待项目运行,首先会碰到的问题就是配置兼容,会出现如下错误
图2.1 BitCode 错误
当我们看到App编译报错的时候,首先想项目不兼容Xcode7,再仔细一看
方法一:更新对应的第三方静态库(现在更新的静态库,基本都能支持BitCode)
方法二:可以将Xcode7默认开启的BitCode功能关闭,如图2.2所示
图2.2 关闭BitCode 操作示意图
当然,除了上面的问题外,当我们在添加Framework的时候,会发现此前导入的动态链接库(dylib)他部变成了红色,如图2.3所示,所幸的是,就算不替换成Xcode 7新的动态库文件(.tbd),仍然可以正常运行.
图2.3 动态链接库丢失示意图
最后,部分App在编译的时候,可能还会收到如下报错,小编也遇到过一次
图2.4 勾选 Requires full screen示意图
不出意外,接下来,App应该是能正常编译运行(小编的AnimationDesk Cloud接下来是可以正常运行),但紧接着,发生了更诡异的事情,以前的的网络访问,现在完全访问不通;大家也许会觉得这可能是服务器挂了,或是外网被墙了,小编最初也是这么想的,但事实上,服务器(从Safari)还是能照常被访问,只是App访问不了,于是后来联想到iOS9 WWDC讲到的网络数据传输安全部分,经过一翻折腾,最终,网络访问的部分也恢复了正常。
其实只要在App的Info.plist里面加入如下信息就可以
图2.4 添加Transport Security 示意图
相关文章推荐
- 判断IOS 数字是否合法,邮箱是否合法
- IOS7使用原生API进行二维码和条形码的扫描
- iOS项目开发实战——使用SDWebImage库进行图片请求
- CocoaPods pod install/pod update更新慢的问题
- iOS开发CGD
- ios 开发中遇到的问题总结以及解决方法
- TalkingData For iOS
- ios学习笔记——懒加载的使用
- iOS 开发中关于弹窗的几种方式
- iOS蓝牙相关文章
- bios
- iOS推送
- 猫猫学iOS之tableView的下拉放大图片的方法
- iOS开发-About StoryBoard
- 【iOS】iOS CocoaPods 整理
- 对于输入框为空及输入的东西只有空格的判断 ios
- Reveal 分析iOS界面
- iOS开发之NSArray和NSMutableArray的用法
- Quartz2D-绘图
- iOS疯狂详解之GCD卖火车票