从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. luogu P1095 守望者的逃离

    题目描述 恶魔猎手尤迪安野心勃勃,他背叛了暗夜精灵,率领深藏在海底的娜迦族企图叛变.守望者在与尤迪安的交锋中遭遇了围杀,被困在一个荒芜的大岛上.为了杀死守望者,尤迪安开始对这个荒岛施咒,这座岛很快就会 ...

  2. [CF441E]Valera and Number

    题意:给定$x,k,p$和一份伪代码,伪代码大致是循环$k$次,每次有$p\%$的概率把$x$乘$2$,有$(100-p)\%$的概率把$x$加$1$,问最后在二进制下$x$的末尾期望$0$个数 鸽了 ...

  3. 【dfs】【高斯消元】【异或方程组】bzoj1770 [Usaco2009 Nov]lights 燈 / bzoj2466 [中山市选2009]树

    经典的开关灯问题. 高斯消元后矩阵对角线B[i][i]若是0,则第i个未知数是自由元(S个),它们可以任意取值,而让非自由元顺应它们,得到2S组解. 枚举自由元取0/1,最终得到最优解. 不知为何正着 ...

  4. 【二分法】【尺取法】bzoj2348 [Baltic 2011]Plagiarism

    一开始以为死于精度……调了半天发现死于long long…… 一.二分法: #include<cstdio> #include<cstring> #include<alg ...

  5. Problem C: 零起点学算法18——3个数比较大小

    #include<stdio.h> int main() { int a,b,c; while(scanf("%d %d %d",&a,&b,& ...

  6. js创建json对象

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. Inno Setup入门(十五)——Inno Setup类参考(1)

    Inno setup脚本能够支持许多的类,这些类使得安装程序的功能得到很大的加强,通过对这些类的使用,将会创建出许多让人惊奇的安装程序,下面开始类的学习. 创建自定义向导页 自定义向导页需要在Init ...

  8. [Android Traffic] Android网络开启、关闭整理

    转载: http://blog.csdn.net/tu_bingbing/article/details/8469871 近段时间由于要对手机网络状况进行判断.开启和关闭,从网上找了些资料,现整理如下 ...

  9. jenkins如何在一台机器上开启多个slave

    1.一台机器不是jenkins的master分支 2.另一台机器部署多个slave分支 3.部署多台slave分支的机器其实只需要在多个目录放置多个slave.jar就可以了,然后进行一些配置即可

  10. flask前端优化:css/js/html压缩

    1.先压缩再传输,可以减少传输的大小,减少传输时间,但是压缩需要时间,所以最终页面显示是快了还是慢了,需要比较 2.先看html压缩模块:pip install Flask-HTMLmin 压缩前:大 ...