1、iOS9 bitcode
首先最大的问题就是坑货xcode7,xcode7默认是打开bitcode的,bitcode是苹果为了解决他本身之后的应用能够随意更换硬件的处理作的准备也就是arm指令集和x64指令集的问题
那么咱们的工程若是你采用了别人封装的第三方库,那么好了,会爆如下错误
ld: ‘/UsersFramework/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 fromthe vendor, or disablebitcode for this target. for architecture arm64
上述这段文字说明了咱们的第三方库不支持bitcode,若是你须要支持,就须要这个第三方库也支持bitcode。苹果目前给出的临时解决方案就比如当初MRC和ARC时候的解决办法,当初xcode5更新时候默认是工程建立是ARC的,你能够关闭ARC改成MRC,通过了一段时间后,你们都开始使用了ARC,那么bitcode也同样,在xcode7时候默认是开启的,咱们须要关闭,那么如何关闭
我引用了一篇文章的gif图来作演示
在targets里面选择BuildSetting中搜索bitcode,而后改成no就ok了
2、iOS9 https问题
若是在Xcode 9以前使用的时http请求,那么在XCode 9上编译的App是不能联网的,会提示以下错误:
App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app‘s Info.plist file.
修 改方法是要么使服务器支持https访问,要么关闭https的使用。第一种方法对于我的开发者来讲代价仍是比较大的,所以推荐使用后面一种方法,具体的 作法是:在工程的Info.plist文件里添加NSAppTransportSecurity字典类型的,添加一个元素:key为 NSAllowsArbitraryLoads,值为YES。
3、iOS 9 使用URL scheme必须将其加入白名单(摘抄)
不然会提示相似以下错误:
canOpenURL: failed for URL: "mqqopensdkapiV2://qqapp" - error: "This app is not allowed to query for scheme mqqopensdkapiV2”
修正方法是,Info.plist文件中添加一个key为LSApplicationQueriesSchemes的数组值,里面包含须要添加白名单的string类型的scheme。特酷吧在项目中使用了qq,微信等分享登陆功能,须要添加的值为:
mqqopensdkapiV2
mqqOpensdkSSoLogin
mqq
mqzoneopensdkapiV2
mqzoneopensdkapi19
mqzoneopensdkapi
mqzoneopensdk
mqzone
weixin
wechat
3、新浪微博的jsonkit在部分机型上面致使崩溃(群友Gemini提供
问题是 程序会奔溃到jsonkit.m void keyObjectISA = ((void **)keys[idx]);这行代码,由于在os x10.10中,NSString采用了TaggedPointer这项技术,此类型不使用解应用isa来获取其所属类,而是经过接下来的三位来查找类表索引的类型,且对象指针最低位置为1。
如何解决:解决方法由群友sun提供参考地址以下
http://blog.csdn.net/woainiliuwei007/article/details/48549103
因为taggedpointer类型不能用isa了,就必须修改成object_getClass(keyObject) ,并且在line:2601处也须要作修改
这里附一个修改过的jsonkit,能够正常使用
http://download.csdn.net/detail/woainiliuwei007/9123789四 、原来的dylib后缀名的库所有修改成libz.tbd