最近进入一家新公司,接手了一个之前由外包公司承接的项目。首先吐槽一下项目质量,哎毕竟也憋了很久了。

  1.上手项目是打不开的,所有framework静态库全体飘红,一编译七八十错误。最终是偷懒还是什么就不得而知了。最终慢慢一个个的将静态库framework导入Building Phases中,其中又发生了很多意想不到的错误。若有人对此有兴趣我们可以下次再聊这些问题。

  2.项目代码分类封装问题。项目是用Swift写的,而我之前使用的较多的是Objective-C,Swift用的不多,对Swift的印象就是:一升级Xcode就满屏红点;各类三方库都需要用桥来连接;等等等等诸如此类问题吧。当然这并不是主要槽点,毕竟Swift是个大趋势,iOS开发人员向前看的话,Swift是必须要了解熟悉到精通的。但似乎目前直接全盘用Swift来写的公司并不多,大多数都是OC慢慢向Swift转换吧。直接用Swift写项目,一定是大神。抱着这样欣赏的眼光我开始看代码。然后我恨不得为刚才自己的判断抽自己两巴掌。

  所有代码都没有分类,除了大的MVC框架,底下的各个小模块的控制器都混在一个目录下。然后类的命名上,首字母大小写不分,直接汉语拼音这种kongtiaoController都出来了。我天对我个强迫症这简直要亲命好吗。一周工作进度没多少,全给分辨各式各样莫名其妙的类名、方法名参数上去了。

  代码的封装问题。例子:项目是用Post请求数据,参数在上传前需要MD5加密,大概30行代码左右。一般这种哪个类里面都有可能用到的代码,写个工具类来执行就完事儿了,代码看着省心,复用率高。可人偏不,每一页都复制粘贴一下,就改一个参数,其他都不改原封不动复制粘贴。第一次看到有种砸电脑的冲动,我想大家都懂。

  大概就扯这么多吧。不管怎么样,拿着老板的钱,就看代码呗。昏天黑地改了一周代码后,老板说,打包上传吧。我说先做个真机测试吧,老板一挥手,去吧。我就回来准备用五分钟真机测试下就打包,结果就出现了如下的问题:在Build Success,真机打开启动页后,程序崩溃,提示如下:

  因为是解决了办法才来写博文,之前也没有截图问题,现在也不敢乱改回去了。我的错误就是log中Pods.framework换成SwiftHTTP。看到之后真心内心是崩溃的。这什么鬼?SwiftHTTP本身就不是我多么熟悉的框架,再加上并不知道具体是什么原因导致的这个问题。得,Google吧。

  最终大概出现了这些解决办法:

  1.clean&run,不行重启手机clean&run

    目测某些大神人品摆平一切,我这儿什么都没有发生。要多扶老奶奶了。

  2.Build Phases中重新导入SwiftHTTP

    什么都没有发生。

  3.SwiftHTTP的Required换成Optional可选

    这是提及频率最高的办法了,也有好多人似乎用这个方法成功解决了问题。大概解释是使用的框架不支持低的版本,所以设置成可选来配置是否可用。

    哎这是个想法,顿时我就去看了我的Deployment Target,是9.0。难道是这儿的问题?

    首先,9.0换成9.3,安装,继续崩溃。

    Required换成Optional,编译报错,具体问题忘了,大概就是link不到框架。

    9.3换成9.0,编译继续报错。哎放弃了。

  4.在某个角落发现了这么不起眼的一句话:DFULibrary.framework静态库是添加在Embedded Binaries下面的

    当然那个答主是将Embedded Binaries里面的framework转移到Build Phases中,而我当时除了SwiftHTTP其余的几个静态库都在Embedded Binaries中存在。难道是这个问题?

    试着在Embedded Binaries中导入SwiftHTTP,运行,崩溃。哎我又去设置Required和Optional了,却意外发现Build Phases中存在两个SwiftHTTP。难道Embedded Binaries中会自动导入Build Phases?我试着删除,成功运行。

  五分钟的真机测试弄了一整天左右吧。哎碰到这种不知所云的崩溃真是没什么办法。

  至今仍不知道为什么会这样,这也只是解决办法,原理求大神告知吧。

iOS真机测试中出现dyld`dyld_fatal_error错误的更多相关文章

  1. IOS真机测试

    学习了两天的Android开发,我感觉Android开发跟IOS开发和.NET平台下的开发有点不同,Android开发我更觉得跟web(Html)倒是有类似的地方,都是节点标签显示的,当然个人理解,感 ...

  2. iOS真机测试,为Provisioning添加设备 -- based xcode6[原]

    iOS真机测试,  我们需要添加几台新的设备进行测试.我们只需要对Provisioning Profiles 进行更新. 1. 在苹果开发者中心添加测试设备 打开苹果Certificates, Ide ...

  3. Unity导出iOS真机测试教程

    原地址:http://unity3d.9tech.cn/news/2014/0410/40177.html 学 习了两天的Android开发,我感觉Android开发跟IOS开发和.NET平台下的开发 ...

  4. Xamarin.iOS真机测试报错

    Xamarin.iOS真机测试报错   错误信息:The MinimumOSVersion inside Info.plist does not include the device version( ...

  5. iOS 真机测试错误“The application bundle does not contain a valid identifier”

    iOS 真机测试错误"The application bundle does not contain a valid identifier" 真机测试的时候报错:"The ...

  6. iOS 真机测试错误“The application could not be verified”

    iOS 真机测试错误"The application could not be verified" 真机测试的时候报错:"The application could no ...

  7. 关于微信小程序开发环境苹果IOS真机预览报SSL协议错误问题解决方案

                              微信小程序开发环境苹果IOS真机预览报SSL协议错误问题 原文来自:https://blog.csdn.net/qq_27626333/articl ...

  8. IOS真机测试(用证书进行真机测试)

    真机测试需要准备 1.证书 2.Iphone或者Ipad 3.到developer.apple.com注册开发者账号(不用money的) ------------------------------- ...

  9. ios 真机测试与发布详细流程,基于最新的开发者网站,ios7,xcode5(有截图的哦)[[[第一部分真机测试]]]

    转载于:http://blog.csdn.net/lv_ruanruan/article/details/14446597 真机测试及发布详细流程,最新版 第一次一个人搞一个项目,我们老大规定,一个周 ...

随机推荐

  1. PAT 团体程序设计天梯赛-练习集 L1-007. 念数字

    输入一个整数,输出每个数字对应的拼音.当整数为负数时,先输出“fu”字.十个数字对应的拼音如下: 0: ling 1: yi 2: er 3: san 4: si 5: wu 6: liu 7: qi ...

  2. Algorithm 算法

    http://www.cnblogs.com/baiboy/category/723479.html 记下来,有空去看 随笔分类 - Algorithm   [项目总结]自然语言处理在现实生活中运用 ...

  3. jQuery第三章

    一.jQuery中的DOM操作 一般来说,DOM操作分为3个方面,即DOM Core核心.HTML-DOM和CSS-DOM 1.DOM Core JavaScript中的getElementById( ...

  4. linux命令 awk

    awk的工作流程如下: 读入有 '\n' 换行符分割的一跳记录,然后将记录按指定的域分隔划分域,填充域,$0 表示所有域, $1 表示第一个域, $n 表示第n个域.默认域分隔符为“空白键”或者“[t ...

  5. Chapter 14_3 非全局的环境

    关于“环境”的一大问题在于它是全局的,任何对它的修改都会影响程序的所有部分. 例如:若安装一个元表用于控制全局变量的访问,那么整个程序都必须遵循这个规范. 当使用某个库时,没有先声明就使用了全局变量, ...

  6. memset用法总结

    memset是计算机中C/C++语言函数.将s所指向的某一块内存中的前n个 字节的内容全部设置为ch指定的ASCII值, 第一个值为指定的内存地址,块的大小由第三个参数指定,这个函数通常为新申请的内存 ...

  7. C++ inline和#define宏的区别

    (1)什么是内联函数? 内联函数是指那些定义在类体内的成员函数,即该函数的函数体放在类体内. (2)为什么要引入内联函数?当然,引入内联函数的主要目的是:解决程序中函数调用的效率问题.另外,前面我们讲 ...

  8. ejabberd模块开发

    参考: http://anders.conbere.org/journal/ http://www.process-one.net/en/wiki/ejabberd_module_developmen ...

  9. ****ural 1141. RSA Attack(RSA加密,扩展欧几里得算法)

    1141. RSA Attack Time limit: 1.0 secondMemory limit: 64 MB The RSA problem is the following: given a ...

  10. IIS启用GZip压缩

    IIS启用GZip压缩,是提高网站速度和减轻服务器负载的一个优化手段和方法,经测试,网站启用GZip压缩后,速度快了3倍!而配置起来也相当的简单,因此被广大网站管理员使用.本文将详细介绍如何在IIS启 ...