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 from the vendor, or disablebitcode for this target. for architecture arm64
上述這段文字說明了咱們的第三方庫不支持bitcode,若是你須要支持,就須要這個第三方庫也支持bitcode。蘋果目前給出的臨時解決方案就比如當 初MRC和ARC時候的解決辦法,當初xcode5更新時候默認是工程建立是ARC的,你能夠關閉ARC改成MRC,通過了一段時間後,你們都開始使用了 ARC,那麼bitcode也同樣,在xcode7時候默認是開啓的,咱們須要關閉,那麼如何關閉 以下圖:
在targets裏面選擇BuildSetting中搜索bitcode,將對應的Yes 改爲對應的No。
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必須將其加入白名單(摘抄)
在使用URL scheme的時候,在ios9上面,若是不加白名單的話 應用會找不到對應的app。
受此影響,當你的應用在iOS 9中須要使用 QQ/QQ空間/支付寶/微信SDK
的相關能力(分享、收藏、支付、登陸等)時,須要在「Info.plist」裏增長以下代碼:ios
<key>LSApplicationQueriesSchemes</key> <array>
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
5、報錯 Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3505.16/UIApplication.m:3294 (羣友sun提供) 在Info.plist中,能夠找到:「Main storyboard file base name」 String 「Main」,刪掉這個條目, 再啓動,屏幕變成了黑屏 手動添加window - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; //全屏window self.window.backgroundColor = [UIColor whiteColor]; //白色背景 [self.window makeKeyAndVisible]; // return YES; } ok,這個因爲更新xcode7報錯已解決! 若是按照上面修改完,發現還在報錯,那麼去看看你的項目是否是加了引導頁 把上面的add方法,變成下面的就好。 這個add方法在xcode7以前是沒有問題的,在xcode7後不能這樣寫了!
6、找不到(丟失).dylib文件,換成.tbd文件而又沒法運行,請用下面的方式來解決。 1. Go to Build Phases >Link Binary with Librairies > + > Add other 2. Once in the file selection window do "CMD"+Shift+G (Go to folder) and type /usr/lib/ 3. From /user/lib you can add : libz.dylib and more... 4. Compile and have fun