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>