BUG集

汇总一些在平时开发中遇到的BUG,不定期更新


用AutoLayout有时候会出现:

Probably at least one of the constraints in the following list is one you don't want. Try this: (1) look at each constraint and try to figure out which you don't expect; (2) find the code that added the unwanted constraint or constraints and fix it. (Note: If you're seeing NSAutoresizingMaskLayoutConstraints that you don't understand, refer to the documentation for the UIView property translatesAutoresizingMaskIntoConstraints)
(
"<NSLayoutConstraint:0x17ef4e10 V:[UIView:0x17ee9e00]-(0)-| (Names: '|':UIView:0x17ef3e10 )>",
"<NSLayoutConstraint:0x17ef4e70 V:|-(0)-[UIView:0x17ee9e00] (Names: '|':UIView:0x17ef3e10 )>",
"<NSLayoutConstraint:0x17dc8650 'UIView-Encapsulated-Layout-Height' V:[UIView:0x17ef3e10(455)]>",
"<NSAutoresizingMaskLayoutConstraint:0x17dc86b0 h=-&- v=-&- 'UIView-Encapsulated-Layout-Top' V:|-(0)-[UIView:0x17ef3e10] (Names: '|':UIViewControllerWrapperView:0x17d7ac80 )>",
"<NSAutoresizingMaskLayoutConstraint:0x17d90d50 h=--& v=--& UIView:0x17ee9e00.midY == + 184>"
)

错误原因可能是:在添加约束的时候,比如说 水平方向的约束leading trailing和 weight 冲突了系统会帮我们去掉宽度的限制
解决方法: 重新添加约束,选择性的不添加宽度<根据情况不添加一些约束>


JSON解析数据 for循环嵌套错误:
-[__NSCFString countByEnumeratingWithState:objects:count:]: unrecognized selector sent to instance 0x7fff32fabdc0


JSON解析数据,方式不对:
-[__NSCFString objectForKeyedSubscript:]: unrecognized selector sent to instance 0x7f85d4110700
原因: 解析字典时,定义的是数组;解析数组时,定义的是字典


setValue:ForUnderfinedKey:]:this class is not key value coding
原因:连线出问题了


-[ViewController up]: unrecognized selector sent to instance 0x8c50af0
原因:某个对象没有实现某个方法


"_SCNetworkReachabilityCreateWithName", referenced from:
原因:静态库中依赖的一些框架没有导入.如果静态库中用到了框架就必须导入


"std::terminate()", referenced from:
但凡看到错误提示中提示两个冒号,表示C++代码, 默认情况下Xcode创建的工程是不支持C++.
如何解决: 将工程中任意一个文件的后缀改为.MM即可

.c --> C代码
.cpp --> C++代码
.m --> C代码 + OC代码
.MM -->C代码 + OC代码 + C++代码


Undefined symbols for architecture x86_64:
这个错误, 一般是指用到的三方框架不支持64位手机
解决方式: 打开工程 --> Build Settings --> All --> Architectures --> Debug\Release --> Other -->修改为 $(ARCHS_STANDARD_32_BIT)


Paste_Image.png

真机测试

/Users//SDKs/PolymerPay/Library/mobStat/libSDK.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
/...linker command failed with exit code 1 (use -v to see invocation)

看警告可以得到的信息是"引入的一个第三方库不包含bitcode"。至于什么是bitcode,我是不太明白是神马意思,通过查阅相关资料,得出的结论是:这个东西应该和包的优化有关。
在上面的错误提示中,提到了如何处理我们遇到的问题:

You must rebuild it with bitcode enabled(Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, ordisable bitcode for this target. for architecture arm64

意思就是说:要不你第三方类库支持 bitcode 要不你就关掉它
好吧,我们只能选择后者了
我们来看看他在那里?


0504_7.png

某些另类的Bitcode报错

在进行了上述操作之后,某些第三方库或者静态库出现了一下报错信息:
std::__1::basic_istream<char, std::__1::char_traits<char> >::~base_istream()
如图:

7_2.png

错误原因:该库是c++和oc混编
解决方案:在项目配置中-->Linked Frameworks and Libraries 添加库 libstdc++.tbd

编译时报错

_OBJC_CLASS_$_xxx第三方库", referenced from: objc-class-ref in xxxViewController.o
报错原因:
该第三方库不支持模拟器调试,只能真机测试


白名单

在进行APP之间的跳转问题上,有时候代码完全没有问题,却死活不进行跳转。
原因是从xcode7开始(iOS9开始),程序里面所有的其他网络连接都得添加在白名单里面,不然是无法响应的!

解决方案:

在plist文件中里面添加一个key为“LSApplicationQueriesSchemes”数组值,里面添加包括string型的“scheme”,其他的可根据需求依次添加。
如:需要qq登录、分享

添加:mqqapi、mqq、mqqopensdkapiV2、mqqOpensdkSSoLogin、mqzone、mqzoneopensdkapiV2、mqzoneopensdkapi

04_9.png

HTTP & HTTPS

在iOS9,苹果将HTTP换成了HTTPS!真是反程序猿的设计
为此,要么后台大改,全部换成HTTPS,要么就继续延用现有。
延用现有如图设置:在plist文件中里面添加一个key


208_7.png

AFNetworking

无法解析数据,error错误信息如下:


14_3.png

原因:
AFNetworking中的ContentTypes设置只有最最最通用的几个而已(貌似是三个),然而不同的后台程序员的编码格式可能不同,当AFN中没有该同事的格式时,不论如何修改都将无济于事。
解决方案:


afnet.png

像上面14_3图所示,缺少的content-type 是 text/plain,添加上去即可!(小小建议:修改第三方库源码时,尽量注释掉原来的Demo,在下面重写)

模拟器使用CoreLocation定位

不进入定位的代理方法,并且出现错误信息:
Error Domain=kCLErrorDomain Code=0 “(null)”
解决方案:
1、确保所有关于定位的配置信息都已齐全,<a href="http://www.jianshu.com/p/0c0905e261a7">配置信息参考这篇文章</a>。
2、进行下列操作:project-->scheme-->edit scheme-->options-->core location-->allow location simulation配置选中,将Default Location设置一个默认的位置。
3、将simulator-->reset content and settings 重启。
4、运行程序,完成调试。
截图如下:

步骤2.png

步骤3.png

步骤4.png


PUSH通知推送:

The 'Apple Push Notification' feature is only available to users enrolled in xxx

原因:开发者账号不是付费账号,没有推送服务的权限
解决:
1、换一个付费账号。
2、注释掉推送部分,先处理其他需求。
3、如果硬是要使用推送部分代码可以进行以下操作:

1、在projectName.xcodeproj文件上右键“显示包内容”
2、用文本编辑器打开“project.pbxproj”文件(.pbxproj!不要找错了文件!)
3、查找:
com.apple.Push = { enabled = 1; };
修改为:
com.apple.Push = { enabled = 0; };
4、重新编译即可


关于在Xcode 9.0+ 运行后的项目,在Xcode 7 or 8 中运行报错的问题

报错信息:
ld: framework not found FileProvider for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)

原因:静态库用Xcode9打包,用Xcode8编译的话就会报错
解决方案:
1、确保你的Mac上有 Xcode 9.0+版本,点击此处下载Xcode。
2、打开Finder-->应用程序-->找到Xcode 9.0+ --> 右键‘显示报内容’
3、进入路径/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/System/Library/Frameworks/
4、找到报错的 not found 文件(Copy the 'FileProvider.framework')
5、应用程序中找到Xcode 7 or 8,再次执行步骤 2、3、进入路径,将报错framework粘贴到 Xcode 7 or 8 路径里面。
6、Xcode 7 or 8 中打开项目,command+shift+K 清除缓存,重新编译即可。(一点要clean,否则会一直报错
点击查看 Stack Overflow 上的案例


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

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,019评论 4 62
  • 时间握在掌心里 也锁不住一枝红杏的羞涩 层层的春潮讯息 涌入夜的黑暗 山预想牢固防御 掩盖起点点隐私 却在一夜醒来...
    刘海波a阅读 227评论 0 3
  • 几个简单的和弦,抓耳的小旋律,看过Jam现场的人说:她像个小女孩一样,勇敢又慌张。 Jam流传最广的歌,应该是《七...
    云海小灰鱼阅读 1,656评论 2 4
  • 五年了,是否该划上一个句号了,工作五年,并没有给我带来什么。带来的就只有这个社会的现实与冷漠。好多人,都已藏在...
    不吃白菜的兔子阅读 595评论 3 50
  • 喘着粗气,坐在回程的计程车上,胸腔急促得起伏渐渐平缓了许多,回忆起早上发生的一幕幕,就好像看到了几年前的自...
    傻傻章二阅读 370评论 2 1