1 https 支持
系統打印:并不會崩潰 error
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.**提示也非常明確,在 info.plist 中 添加 App Transport Security Settings 并添加 Allow Arbitrary Loads = YES
也可以這樣添加:Open As Source Code:
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
- 如果需要對某些網址 http,需要具體分別設置,而不是想上面那樣全部http
2 armv7,armv7s,arm64 相關
arm處理器的指令集,具體深入也并不是很了解,主要是在添加其他庫文件是,可能導致編譯不通過。可能出現的報錯:
Undefined symbols for architecture x86_64:
//x86_64,armv7,arm64..
- x86_64:模擬器64位,表示添加的文件不支持x86_64,需要重新添加個支持模擬器的,或者直接真機調試吧。
- arm64:真機64位,iphone5S、iPad Air、mini2 以上都是這個吧。
- armv7/armv7s:更早版本。
在Build Srtting 中,Architectures中有一些設置,一般情況下不需要修改,有問題都是因為第三方拖入文件的事。
其中Architectures 對打包文件的大小有影響,越多,越大,每一種都要生產對應的指令集的二進制包,因為可以向下兼容,所有對性能不要求的話只要armv7,就能湊活了。
3 search path
在添加其他文件例如 .a 時,可能會出現
ld: library not found for -XXXXXX
主要原因就是路徑錯誤,找不到文件,Build Setting 中 修改
Library Search Path 添加XXX 文件路徑。
$(inherited) 一般第一行都是這個,據說是從 framworks 讀取,請教大神。
$(PROJECT_DIR) 對應 /Users/name/somewheres/prejectname(工程包相對路徑)/后面還可以跟具體文件夾文件路徑XXX.a
這個相對路徑比較重要!
類似的 framwork/header Seacrh Path 也是一樣的。
4 other link flag
在添加其他文件例如.a時,編譯通過,但是運行時可能出現
selector not recognized
鏈接器,具體也不是很明白,大致是編譯之后,鏈接目標文件與庫形成執行文件。可能會用到下面幾個參數
-ObjC:將OC類添加到執行文件,但是可能添加多余沒用的文件,但是可以解決很多相關問題。如果還不行就用下面-force_load
-all_load:最好不要用,可能導致重復鏈接
-force_load :后面跟相對文件路徑,是比較好的方式。
5 bitcode
有時候,在添加第三方SDK的時候,模擬器OK,但是真機調試時會遇到
does not contain bitcode.
You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE),
obtain an updated library from the vendor,
or disable bitcode for this target.
for architecture arm64
這個根據翻譯很好理解,就是 Build Setting bitcode 設置為 NO。
這個bitcode,大致用于打包上傳appStore是形成中間二進制文件,減少上傳時app包大小。一般情況下,很多第三方SDK不支持bitcode,所以設置NO吧,跟https一樣。
iOS是可選YES/NO。而watchOS,必須YES。
6 scheme
白名單,調用檢查其他App需要添加 NSArray 類:LSApplicationQueriesSchemes
添加打印的那些 error,下面一些常見的復制粘貼過來湊數:其他還有很多。一般在繼承文檔都有說明。
<key>LSApplicationQueriesSchemes</key>
<array> <!-- 微信 URL Scheme 白名單-->
<string>wechat</string>
<string>weixin</string>
<!-- 新浪微博 URL Scheme 白名單-->
<string>sinaweibohd</string>
<string>sinaweibo</string>
<string>sinaweibosso</string>
<string>weibosdk</string>
<string>weibosdk2.5</string>
<!-- QQ、Qzone URL Scheme 白名單-->
<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>
<!-- 支付寶 URL Scheme 白名單-->
<string>alipay</string>
<string>alipayshare</string>
</array>