iOS9 升级XCode7遇到的问题收集

开发环境运行html

     各位可能会以为,笔者在此还要讲开发环境的运行,是否是画蛇添足。其实并不是如此,综合笔者这几年iOS开发经验的总结,运行新版本,特别是测试版本的Xcode是一个须要格外当心的事情,讲起来都是血泪史。缓存

       在运行 GM 版本Xcode时,咱们须要特别注意如下几个方面:
        - 在运行GM版本Xcode前,务必要退出原来正式版本Xcode(如Xcode 6.4)
        -
在运行GM版本Xcode时,务必要避免双击打开工程文件(也是为了不新旧版本同时运行)。
        - 若是要切换回原来版本时,必定要先退出GM版本,并且尽量将Xcode的缓存数据清除。
App 项目运行

       待项目运行,首先会碰到的问题就是配置兼容,会出现以下错误
安全

图2.1 BitCode 错误服务器

当咱们看到App编译报错的时候,首先想项目不兼容Xcode7,再仔细一看网络

 

1
ld: ‘/Volumes/MacintoshHD/…/AnimationDesk Universal/Sources/AnimaitonDesk Universal/Classes/Supporting Files/GoogleLibrary/libGoogleAnalyticsServices.a(TAGDataProvider.o)' does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode  for  this  target.  for  architecture arm64

 

其中 ENABLE_BITCODE 吸引了咱们的注意,看结合其它的描述信息,基本能够肯定是咱们使用的第三方静态库(.a)不支持BitCode,固然,咱们对应就有以下两种方案来解决:

方法一:更新对应的第三方静态库(如今更新的静态库,基本都能支持BitCode)
方法二:能够将Xcode7默认开启的BitCode功能关闭,如图2.2所示app

图2.2 关闭BitCode 操做示意图less

 

       固然,除了上面的问题外,当咱们在添加Framework的时候,会发现此前导入的动态连接库(dylib)他部变成了红色,如图2.3所示,所幸的是,就算不替换成Xcode 7新的动态库文件(.tbd),仍然能够正常运行.

图2.3 动态连接库丢失示意图ide

 

       最后,部分App在编译的时候,可能还会收到以下报错,小编也遇到过一次

测试

1
All interface orientations must be supported unless the app requires full screen.

 
        看到这句提示,就是说App默认是有开启了多任务功能,而多任务功能是须要App支持全部方向,若是咱们App是有须要支持多任务,则须要开启App对各个方向(上、下、左、右)的支持;若是App不须要开启多任务,则只须要将以下示意图的 requires full screen 勾选上就ok(如图2.4)。ui

图2.4 勾选 Requires full screen示意图

        不出意外,接下来,App应该是能正常编译运行(小编的AnimationDesk Cloud接下来是能够正常运行),但紧接着,发生了更诡异的事情,之前的的网络访问,如今彻底访问不通;你们也许会以为这多是服务器挂了,或是外网被墙了,小编最初也是这么想的,但事实上,服务器(从Safari)仍是能照常被访问,只是App访问不了,因而后来联想到iOS9 WWDC讲到的网络数据传输安所有分,通过一翻折腾,最终,网络访问的部分也恢复了正常。

        其实只要在App的Info.plist里面加入以下信息就能够

 

1
2
3
4
5
<key> NSAppTransportSecurity </key>
<dict>
     <key> NSAllowsArbitraryLoads </key>
     < true />
</dict>

 

 添加成功后的示意图以下图(图2.4)


图2.4 添加Transport Security 示意图

相关文章
相关标签/搜索