iOS 常见的 error

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:

 NSAppTransportSecurity
 
  NSAllowsArbitraryLoads
  
 
  • 如果需要对某些网址 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,下面一些常见的复制粘贴过来凑数:其他还有很多。一般在继承文档都有说明。

LSApplicationQueriesSchemes 
  
wechat 
weixin 

 
sinaweibohd 
sinaweibo 
sinaweibosso 
weibosdk 
weibosdk2.5 

 
mqqapi
 mqq 
mqqOpensdkSSoLogin 
mqqconnect 
mqqopensdkdataline 
mqqopensdkgrouptribeshare 
mqqopensdkfriend 
mqqopensdkapi 
mqqopensdkapiV2 
mqqopensdkapiV3 
mqzoneopensdk 
wtloginmqq 
wtloginmqq2 
mqqwpa 
mqzone 
mqzonev2 
mqzoneshare 
wtloginqzone 
mqzonewx 
mqzoneopensdkapiV2 
mqzoneopensdkapi19 
mqzoneopensdkapi 
mqzoneopensdk 

 
alipay 
alipayshare

你可能感兴趣的:(iOS 常见的 error)