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