扒虫篇-Bug日志 Ⅲ


1.一个警告点击后提示:Treating Unicode character as whitespace

对于追求完美的猿来说,解决警告有时也是必须的。

解决方法:可能是由于粘贴网页上的代码的时候两行之间的回车引起的,有未识别的回车或者换行,找到,删除掉就 OK了。

2.打包发布APP时验证的时候报错

Snip20170411_1.png

分析:照上面上面的提示就是说,Bundle Identifier 和配置文件中的 ID是不一致的,可是我确认了很多次,确认是没问题,也重新打包了很多次,再次验证还是有这个问题。WTF?

解决办法:关闭其它所有工程,退出 Xcode文件,再重新打开目标工程(注意,只打开这一个工程,不要打开其他的工程),再次Archive ,验证,就没问题啦。这是由于打开多个工程造车的Bug,目前推测这是Xode 内部的Bug。

3.使用[AVAudioPlayer play]会产生 libc++abi.dylib`__cxa_throw: 异常

我调用AVAudioPlayer play方法,会莫名的产生__cxa_throw异常, 只是简单的调用系统的api,有时候可以,有时候会异常。

解决方案

由于xcode中设置了当所有异常出现时的全局断点,这是问题的关键。
解决办法是将all改为Objective-C:

Paste_Image.png

问题解决。

4. 明明加了刷新了控件了,可是就是上拉没效果

这真是一个蛋疼的Bug,我使用的是 SDRefresh,一个Tb上明明加了上提加载的刷新,可是就是上提没有效果,还以为是什么问题了,折腾了2小时,研究底层,尝试了很多办法,还是不行, WTF !!!

解决办法:我之所以出现这样的现象是因为我的 Tb只有两条数据,只占到了Tb的1/3,当数据比较多时,数据铺满屏幕时,这个上提加载的效果就出来了,看来是 SDRefresh 的刷新机制是当数据比较少时,不触发刷新效果,这在情理之中又超出常规思维。

5. 真机调试,一处:Undefined symbols for architecture arm64:

Snip20170207_9.png

在集成 萤石SDK的时候,把应该添加的 系统类库都添加完了后,编译还是报这个错误,而原Dome中运行正常。

最后发现,原Dome里面的 openssl类库没有添加进来,才导致的这个错误。

OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上。
其主要库是以C语言所写成,实现了基本的加密功能,实现了SSL与TLS协议。OpenSSL可以运行在绝大多数类Unix操作系统上。

OpenSSL了解更多

6. 真机调试,另一处:Undefined symbols for architecture arm64:

Snip20170208_2.png

这是使用SDWebImage 类库报的错,不知道什么原因,一样的代码在另一个工程中就不会出出现这样的报错,好无语。

解决办法: 导入 MapKit and ImageIO frameworks.即可。

7. #include "api/UserBind.h" 找不到

Snip20170216_1.png

导入了一个第三方文件夹,文件夹的目录是这样的:


Paste_Image.png

我们可以看到这是一个包含C/C++文件的文件夹。这就是问题所在,对于导入的 OC文件是不需要这样设置也可以搜索到的,因为是C/C++文件,才需要设置路径。

首先我们来了解下,有关iOS开发中的Search Paths设置问题:

添加目录的时候写上 “$(inherited)” 就表示从frameworks里面读取。
Library Search Paths
附加到项目中的第三方Library(.a files)的搜索路径,Xcode会自动设置拖拽到Xcode中的.a文件的路

Always Search User Paths
如果设置了Always Search User Paths为YES,编译器会优先搜索User Header Search Paths配置的路径,在这种情况下#include <string.h>,User Header Search Paths搜索目录下面的文件会覆盖系统的头文件。

C/C++ 头文件引用问题
include <> 引用编译器的类库路径下的头文件
include “” 引用工程目录的相对路径的头文件
include 是编译指令,在编译时,编译器会将相对路径替换成绝对路径,因此,
头文件绝对路径=搜索路径+相对路径。
Xcode Build Settings 下 Search Paths设置搜索路径
Header Search Paths:头文件搜索路径设置
(SRCROOT)宏和(PROJECT_DIR)宏都指xxx.xcodeproj所在的父目录

Paste_Image.png
Paste_Image.png

Other Linker Flags:其他链接标签,当导入的静态库使用了类别,需要设为-ObjC。

Project的Building Settings中的设置默认并不被Targets继承,**只有当Targets的设置加入了(inherited)时才被继承,**添加目录的时候写上 “(inherited)” 就表示从frameworks里面读取。

*******************更新*******************

Paste_Image.png
Paste_Image.png

解决方法:
Header Search Paths 设置

Paste_Image.png

这里要说一下,根据工程目录,我们可以看见有一层 Third,但是我们搜索路径中并未设置这一层,是因为,Third是虚拟目录,实际上并不存在的,而且我们不能设置为 ..../Pay/openssl 不能加上 /openssl,否则会仍然报错,因为报错图片中已经自带了一层 /openssl路径。

8. ....Podfile.lock:No such file or directory

心得:越诡异的Bug越有可能是最低级的手误造成的,比如新建A,对A初始化设置,实际使用的时候,又新建了B,使用了B,没有对B设置,这就造成了莫名其秒的Bug了。

开始的时候用pod install/update各种都没有用。后来试了这种方法,重新build就ok。
在工程设置中的Build Phases下删除Check Pods Manifest.lock及Copy Pods Resources
然后我删除了pods 工程,运行原工程时,报错,找不到一个路径。

最后在这发现了一个红色的文件,删除之,再次编辑就行啦。

9.项目导入外部文件后编译运行出现Undefined symbols for architecture x86_64错误**

Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_Person", referenced from:
objc-class-ref in main.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

这说明编译没有问题,连接的时候出错了,找不到导入的目标文件。
遇到这种问题,首先想到的是导入文件编译环境发生了变化,所以先选择Product-Clean将项目缓存清理一下,Xcode清理项目缓存。但是这样做还是不行,那怎么办呢?

解决方案:
我们应该这样做,看项目有没有编译导入的文件,在这个位置查看:
选择项目-Build Phases选项卡-Compile Sources Xcode查看项目编译项目
这里只有一个main.m,Person.m没有被编译,当然错误了,将Person.m添加进去就OK了。点击下面的”+”添加,注意只添加.m文件,不添加头文件!

10.编译报错_iconv

Undefined symbols for architecture i386:
  "_iconv", referenced from:
      _mail_iconv in libmailcore.a(charconv.o)
  "_iconv_open", referenced from:
      _charconv in libmailcore.a(charconv.o)
      _charconv_buffer in libmailcore.a(charconv.o)
  "_iconv_close", referenced from:
      _charconv in libmailcore.a(charconv.o)
      _charconv_buffer in libmailcore.a(charconv.o)
ld: symbol(s) not found for architecture i386
collect2: ld returned 1 exit status

解决办法:导入系统的 libiconv.tbd 类库即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,294评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,493评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,790评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,595评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,718评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,906评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,053评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,797评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,250评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,570评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,711评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,388评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,018评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,796评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,023评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,461评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,595评论 2 350

推荐阅读更多精彩内容