轉載自:http://blog.sina.com.cn/s/blog_adb19b690102vvlm.html
一、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時候默認是開啓的,我們需要關閉,那麼如何關閉
我引用了一篇文章的gif圖來做演示
在targets裏面選擇BuildSetting中搜索bitcode,然後改爲no就ok了
二、iOS9 https問題
三、iOS 9 使用URL scheme必須將其加入白名單
四、新浪微博的jsonkit在部分機型上面導致崩潰
問題是 程序會奔潰到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
六、報錯 Assertion failure in -[UIApplication _runWithMainScene:transitionContext:completion:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3505.16/UIApplication.m:3294
在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後不能這樣寫了!
新增一種解決辦法,就是如果你以前的小工程運行在Xcode7上面,會直接崩潰原因在Xcode7上面是必須要windows有一個rootViewController的,所以我們需要給他添加一個
window.rootViewController = [UIViewController new];
八、關於加入微信白名單會報錯的總結