iOS8升级IOS 9 和 XCode 7 引起的问题记录

Xcode升级到7之前最好升级到OX EI Capitan 10.11.1 (或者更高的版本),不然的话升级Xcode6,也是徒劳(可能是当时我的系统是10.10.1/2,相对较低吧),然后升级之后看到还是Xcode6.4,多郁闷啊。然后就是升级系统用了几个小时下载系统当时6G还要多,之后下载 Xcode Version 7.1 (7B91b) 大概4.3GB,而Xcode6.4 是2.6GB;小心卡顿。我升级之后就是老看到转圈圈。附本机配置:MBP 2.7 GHz Intel Core i5  8 GB 1867 MHz DDR3。


问题一: 升级xcode 7最低的系统配置要求

升级了ios9 后使用 xcode 6.1 已经不能用了,必须升级 xcode 7才行,原先的系统是OSX 10.10.1 版本。而xcode 7.0 系统最低的系统要求是os x 10.10.4 或者以上(官方表明)。这样子不用等到新的 mac 新系统 到来也可以提前用了。 

问题二 :微信库64位的问题

xcode 7 的动态库后缀名改了,这下子旧的项目也要重新替换。 
这里有一篇文章是关于ios 微信的用法和配置 可以参考一下 
不过 64 位的问题 也随之而来,如果不加入 libc++.dylib 后就会报错 编译不过 
所以在微信引入库里面,需要加入

libsqlite3.0.dylib 
libz.dylib 
SystemConfiguration.framework 
libc++.dylib (如果编译错了,加上这个库进去。)

注意:xcode 7 变了后缀 
iOS8升级IOS 9 和 XCode 7 引起的问题记录_第1张图片


问题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 下再添加。这个时候生效了,能够处理这个问题。不知道原理是什么,这里的参数总是很让人莫名奇妙 但能凑效 
iOS8升级IOS 9 和 XCode 7 引起的问题记录_第2张图片

问题 4 二进制库不支持bitcode

在 xcode 7 项目 中 build Settings 搜索这个字,默认情况是YES ,不支持就改成No 。 
今天微信编译的时候也报相关的错,这一点真是让人纠结。xcode 设置总是多。有时候很难理解。只好一点点记录。 
iOS8升级IOS 9 和 XCode 7 引起的问题记录_第3张图片

问题 5 Xcode process launch failed: Security

概述:之前一直是采用了企业的证书登录,所以编译过程中一直没有出现Xcode process launch failed: Security这样的问题。在xcode 7 配置好免证书进行调试,使用一个不是开发者的账号登录后会出现了这种问题。

参考的办法:stackoverflow Xcode process launch failed: Security

问题 6 出现了不受信任的开发者情况

概述:xcode 7 免证书下,需要使用自己的AppleID。我尝试打开编译后App**出现了不受信任的开发者情况**

解决办法:可以按如下操作 。以在真机ipad air 2 , ios 9 为例  
中文版:设置-通用-描述文件 选择受信任的开发者  
英文版:Go to your iPhone > Settings > General > Profile > “[email protected]” > Trust(引用stackoverflow 的一位解答

设置后,这个问题可以解决了,然后可以继续玩耍。

问题 7 Xcode 插件Alcatraz 安装不显示Package manager

参考 https://github.com/supermarin/Alcatraz/issues/352

<code class="hljs avrasm has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">终端输入:

defaults delete <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">com</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.apple</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.dt</span><span class="hljs-preprocessor" style="color: rgb(68, 68, 68); box-sizing: border-box;">.Xcode</span> DVTPlugInManagerNonApplePlugIns-Xcode-<span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">7.0</span>

打开Xcode后有选项,选第一个Load</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li></ul>

能凑效使用。

问题 8 部分API未来面临要修正

删除API这也不是苹果一两天的事情,刚接触API,发现了旧的书和新版本SDK已经不兼容了,刚在IOS使用UIAlertView,UIActionSheet 的时候,发现IOS的版本已经不存在了,到了IOS9 对这个组件已经不能再用了,改为合二为一UIAlertController 代替 。

<code class="hljs mizar has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">NS_CLASS_DEPRECATED_IOS(2_0, 9_0, "UIAlertView <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">is</span> deprecated. Use UIAlertController with a preferredStyle <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> UIAlertControllerStyleAlert instead")

NS_CLASS_DEPRECATED_IOS(2_0, 8_3, "UIActionSheet <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">is</span> deprecated. Use UIAlertController with a preferredStyle <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">of</span> UIAlertControllerStyleActionSheet instead")</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>
<code class="hljs objectivec has-numbering" style="display: block; padding: 0px; background-color: transparent; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-top-left-radius: 0px; border-top-right-radius: 0px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px; word-wrap: normal; background-position: initial initial; background-repeat: initial initial;">   UIAlertController* alert = [UIAlertController alertControllerWithTitle:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"提示"</span>
                                                                  message:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"内容不能为空"</span>
                                                           preferredStyle:UIAlertControllerStyleAlert];

     UIAlertAction* defaultAction = [UIAlertAction actionWithTitle:@<span class="hljs-string" style="color: rgb(0, 136, 0); box-sizing: border-box;">"OK"</span> style:UIAlertActionStyleDefault
                                                              handler:^(UIAlertAction * action) {}];

    [alert addAction:defaultAction];
    [<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">self</span> presentViewController:alert animated:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">YES</span> completion:<span class="hljs-literal" style="color: rgb(0, 102, 102); box-sizing: border-box;">nil</span>];
</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right;"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li></ul>

问题 9 约束框架和tableView 等在ios9问题引起注意

可以查阅以下文章进行解答。  
https://github.com/ChenYilong/iOS9AdaptationTips

问题10 Cocoapods 升级系统后用不了,xcode插件路径引起问题

下面是关于在新版系统不能使用Cocopods 命令的问题,一些解决的方法。 
http://stackoverflow.com/questions/32934911/cocoapods-doesnt-work-after-upgrading-mac-os-x-ei-capitain 
https://github.com/kattrali/cocoapods-xcode-plugin/issues/76 
新版系统会删除旧的Cocopods 改变了原先的位置,重装一下,改变一下ruby 淘宝镜像地址。重新安装后,xcode的Cocoapods 插件就能用得上了,注意区别 usr/bin usr/local/bin的位置


一次教训:将设备的 Show Provisioning Profiles 删除了

误操作: 把Show Provisioning Profiles 删除了 
造成结果:之前的自己编译的应用全部打不开了。 
操作如下 : 
xcode - >window->Devices 打开后可以看到自己的机器(USB链接下) 
点击设备,鼠标右键 看到Show Provisioning Profiles 的菜单,然后可以看到自己Identifer 
使用“-”减号 删除。操作完成后,之前的编译过的App将不能启动了。真是算是一次教训吧


一些问题的解决参考资料如下:

《ios编译库文件时出现的问题》 
http://www.jianshu.com/p/3f87f024b573

《does not contain bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE)》 
http://www.swift7media.com/category/ios-development/

《开发中常见错误和警告总结(九)》 
http://www.bubuko.com/infodetail-1061146.html

《二进制库不支持bitcode》 
http://blog.csdn.net/soindy/article/details/48519363

《【官方方法】xcode7免证书真机调试》 
(http://altair21.com/156.html) 

《IOS 9 适配 问题》 
https://github.com/ChenYilong/iOS9AdaptationTips


http://blog.csdn.net/hero82748274/article/details/48629461

你可能感兴趣的:(iOS8升级IOS 9 和 XCode 7 引起的问题记录)