从xcode6.x升级xcode7.2之后,发现要做一堆事情来做适配,不然之前的项目没法好好执行。

一.换库

dylib后缀的库都要换成tbd后缀的。例如以下所看到的

换库前:

换库后:

二.https问题

xcode7.2默认项目是使用https的。所以为了继续使用http。须要在info.plist中加入例如以下图所看到的:

三.Bitcode问题

真机測试时,发如今模拟器上没出错,真机出问题了,报了例如以下类似的问题:

‘/Users/**/Framework/SDKs/PolymerPay/Library/mobStat/lib**SDK.a(**ForSDK.o)’does not contain bitcode. You must rebuild it with bitcode enabled (Xcodesetting ENABLE_BITCODE), obtain an updated library from the
vendor, or disablebitcode for this target. for architecture arm64


包括Bitcode字样,bitcode是被编译程序的一种中间形式的代码。

包括bitcode配置的程序将会在App
store上被编译和链接。bitcode同意苹果在后期又一次优化程序的二进制文件,而不须要又一次提交一个新的版本号到App store上。

当提交程序到App
store上时,Xcode会将程序编译为一个中间表现形式(bitcode)。然后App store会再将这个botcode编译为可运行的64位或32位程序。

在上面的错误提示中,提到了怎样处理我们遇到的问题:

You must rebuild it with bitcode enabled(Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, ordisable bitcode for this target. for architecture arm64

要么让第三方库支持,要么关闭target的bitcode选项。

实际上,在Xcode 7中,我们新建一个iOS程序时,bitcode选项默认是设置为YES的。我们能够在”Build Settings”->”Enable Bitcode”选项中看到这个设置。只是。我们如今须要考虑的是三个平台:iOS,Mac OS,watchOS。

对于iOS。bitcode是可选的;对于watchOS,bitcode是必须的;而Mac OS是不支持bitcode。

假设我们开启了bitcode,在提交包时,以下这个界面也会有个bitcode选项:

所以。假设我们的project须要支持bitcode。则必要要求全部引入的第三方库都支持bitcode。

否则,按下图所看到的关闭bitcode


三.白名单问题

升级到xcode7.2。假设项目有要跳转到其它app的,则须要在info.plist中加入相应app的Scheme,否则无法调用或跳转

<key>LSApplicationQueriesSchemes</key>

<array>

<string>iosamap</string>

<string>baidumap</string>

<string>seeyaa</string>

<string>wechat</string>

<string>weixin</string>

<string>sinaweibohd</string>

<string>sinaweibo</string>

<string>sinaweibosso</string>

<string>weibosdk</string>

<string>weibosdk2.5</string>

<string>mqqapi</string>

<string>mqq</string>

<string>mqqOpensdkSSoLogin</string>

<string>mqqconnect</string>

<string>mqqopensdkdataline</string>

<string>mqqopensdkgrouptribeshare</string>

<string>mqqopensdkfriend</string>

<string>mqqopensdkapi</string>

<string>mqqopensdkapiV2</string>

<string>mqqopensdkapiV3</string>

<string>mqzoneopensdk</string>

<string>wtloginmqq</string>

<string>wtloginmqq2</string>

<string>mqqwpa</string>

<string>mqzone</string>

<string>mqzonev2</string>

<string>mqzoneshare</string>

<string>wtloginqzone</string>

<string>mqzonewx</string>

<string>mqzoneopensdkapiV2</string>

<string>mqzoneopensdkapi19</string>

<string>mqzoneopensdkapi</string>

<string>mqzoneopensdk</string>

<string>alipay</string>

<string>alipayshare</string>

</array>

四.打包遇到问题

Failed to locate or generate matching signing assets

Xcode attempted to locate or generate matching signing assets and failed to do so because of the following issues.

Missing iOS Distribution signing identity for ... Xcode can request one for you.

截图例如以下

原因是Apple World Wide Developer Relations Certificate Authority的过期时间是2016年2月14。苹果的回答例如以下:

Thanks for bringing this to the attention of the community and apologies for the issues you’ve been having. This issue stems from having a copy of the expired WWDR Intermediate certificate in both your System
and Login keychains. To resolve the issue, you should first download and install the newWWDR intermediate certificate (by double-clicking on the
file). Next, in the Keychain Access application, select the System keychain. Make sure to select “Show Expired Certificates” in the View menu and then delete the expired version of the Apple Worldwide Developer Relations Certificate Authority Intermediate
certificate (expired on February 14, 2016). Your certificates should now appear as valid in Keychain Access and be available to Xcode for submissions to the App Store.

简单的说就是颁发开发人员证书的根证书过期了。假设这个时候你打开keychain看你的公布证书会是这种:


就是这个Apple World Wide Developer Relations Certificate Authority过期了。所以这个颁发的证书都不能使用了。

如今来说下解决方式:

1.打开keychain(钥匙串),在登录和系统中找到过期的 Apple World Wide Developer Relation Certification Authority,然后删除它

注意在keychain显示菜单下,设置成显示过期证书





2.下载这个链接里的AppleWWDRCA.cer的证书到本地

3.记得要把系统钥匙串的设置权限打开

4.把AppleWWDRCA.cer安装到登录和系统中

设置成功后就能够了。查看下你的公布证书是否已经正常了。

參考链接:

http://jingyan.baidu.com/article/a3aad71ac4de98b1fb0096ac.html

http://www.jianshu.com/p/cda1790ea317?appinstall=0

http://www.jianshu.com/p/3e1b4e2d06c6

http://www.jianshu.com/p/a8cce94d508e

xcode7和ios9适配之路的更多相关文章

  1. XCODE7 和IOS9适配后的一些问题

    网上比较常规的几个问题就不细说了. 什么HTTPS.bitcode.什么什么的. 记录几个自己又遇到了但是网上没有说的. 启动应用报错, *** Terminating app due to unca ...

  2. 整理iOS9适配中出现的坑(图文)

    原文: http://www.cnblogs.com/dsxniubility/p/4821184.html 整理iOS9适配中出现的坑(图文)   本文主要是说一些iOS9适配中出现的坑,如果只是要 ...

  3. iOS9 适配

    iOS适配的相关内容的整理 之前iOS开发者一直很庆幸自己不用像安卓开发者那样适配各种不同类型的机型,但如今随着iPhone各种机型的改变,适配也成了我们开发中必须会的内容了.首先我们来了解一下对于不 ...

  4. 整理iOS9适配

    整理iOS9适配 本文主要是说一些iOS9适配中出现的坑,如果只是要单纯的了解iOS9新特性可以看瞄神的开发者所需要知道的 iOS 9 SDK 新特性.9月17日凌晨,苹果给用户推送了iOS9正式版, ...

  5. iOS开发——适配篇&iOS9适配

    iOS9适配 1. Demo1_iOS9网络适配_ATS:改用更安全的HTTPS [摘要]iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采 ...

  6. iOS9适配中出现的一些常见问题

    本文主要是说一些iOS9适配中出现的坑,如果只是要单纯的了解iOS9新特性可以看瞄神的开发者所需要知道的 iOS 9 SDK 新特性.9月17日凌晨,苹果给用户推送了iOS9正式版,随着有用户陆续升级 ...

  7. iOS9适配系列教程

    链接地址:http://www.open-open.com/lib/view/open1443194127763.html 中文快速导航: iOS9网络适配_ATS:改用更安全的HTTPS(见Demo ...

  8. fir.im Weekly - iOS9 适配开发教程

    期待已久的 iOS 9 发布了,很多人更新完毕得出结论:这是值得升级的版本.随之而来的是适应 iOS9 开发技术.本期 Weekly 收集了一些关于 iOS9 相关的开发资源,希望对你有帮助. iOS ...

  9. 【转】iOS9适配

    Demo1_iOS9网络适配_改用更安全的HTTPS iOS9把所有的http请求都改为https了:iOS9系统发送的网络请求将统一使用TLS 1.2 SSL.采用TLS 1.2 协议,目的是 强制 ...

随机推荐

  1. Spring Struts里用到的设计模式

    Bean工厂的Factory模式 AOP的Proxy模式

  2. luogu P1325 雷达安装

    题目描述 描述: 假设海岸线是一条无限延伸的直线.它的一侧是陆地,另一侧是海洋.每一座小岛是在海面上的一个点.雷达必须安装在陆地上(包括海岸线),并且每个雷达都有相同的扫描范围d.你的任务是建立尽量少 ...

  3. BSGS与二次剩余

    BSGS $Big\ Step\ Giant\ Step$,大步小步法,一种在$O(\sqrt{p})$内求解方程$a^x\equiv b (mod\ p)$的算法. 先考虑$p$为质数的情况. 令$ ...

  4. [xsy2164]theory

    又积累了一个网络流模型:最大权闭合子图,相关证明去看论文,感觉自己不是很懂证明,但现在还是先把建模记下来再说吧 枚举一个点,硬点它一定要被选中,那么以它为根,如果选了$x$就必须要选$fa_x$,这就 ...

  5. 【分块答案】【最小生成树】【kruscal】bzoj1196 [HNOI2006]公路修建问题

    二分(分块)枚举 边权上限.用kruscal判可行性. #include<cstdio> #include<algorithm> #include<cstring> ...

  6. 7.1(java学习笔记)InetAddress&InetScoketAddress

    一.InetAddress 这个类主要表示IP地址.InetAddress封装了IP地址和域名.域名可以看做IP地址的一个别称,起这个别称的目的是为了便于记忆. 例如www.baidu.com 就是1 ...

  7. SSH学习——Spring基础

    1.理解什么是Spring框架? spring是J2EE应用程序框架,是轻量级的IOC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框 ...

  8. Jquery的Split二次分割

    <script type="text/javascript">var str="Q1#k1:Q2#k2"var str2=str.split(':' ...

  9. transform使用导致元素内字体出现模糊的坑~~~

    项目中遇到的,关于居中弹出层的字体模糊问题. 先来个对比图: 清晰版: 模糊版: 这个是一个不定宽高的弹出框,居中的方式如下代码: .layerdiv { position: fixed; top: ...

  10. ASP.NET Core 1.0基础之日志

    过年出去玩了一圈,回来继续翻译.前两天偷懒没有翻译,只是转了两篇C# 7计划中的新features,大家还是很支持的.现在继续完善这个系列. 来源https://docs.asp.net/en/lat ...