更新Xcode7之后---番外篇

来源:互联网 发布:java获取彩票开奖数据 编辑:程序博客网 时间:2024/05/16 14:13

更新Xcode7之后
       在运行项目时,首先会碰到的问题就是配置兼容,会出现如下错误

技术分享

图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所示

技术分享

图2.2 关闭BitCode 操作示意图

 

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

技术分享图2.3 动态链接库丢失示意图

 

       最后,部分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)。

技术分享

图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 示意图

其它事项

        可能还有部分朋友跟小编一样,有碰到另外一个现象,就是UITextView,无论怎么设置它的textColor显示的总会是黑色,小编已找到具体的原理,准确地讲,应该是Xcode的一个Bug。
        当小编在App开发时,在Xib上面设置过UITextView的背景色(BackgroundColor)为非默认颜色(WhiteColor)时,UITextView的文字颜色(textColor)无论怎么设置,都将会是黑色,如果想要颜色值正常,可以在设置好文本后,再重设一次颜色即可正常。

0 0
原创粉丝点击