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

  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. AVFoundation--视频录制

    // // ViewController.m // AVFoundationCameraRecording // // Created by ZhuYi on 16/5/3. // Copyright ...

  2. 4、mybatis动态sql+struts2(通配符+全局配置+分页)

    1.创建userinfo.sql数据库脚本 create table USERINFO ( id NUMBER not null, uname ), password ), age NUMBER ) ...

  3. 仿bootstrap的

    <!doctype html> <html class="no-js"> <head> <meta charset="utf-8 ...

  4. Openjudge-计算概论(A)-求分数序列和

    描述: 有一个分数序列 2/1,3/2,5/3,8/5,13/8,21/13,.... 求这个分数序列的前n项之和.输入输入有一行:正整数n.输出输出有一行:分数序列的和(浮点数,精确到小数点后4位) ...

  5. JQ和其他框架一起使用方法

    时下,越来越多的javascripe框架不断崛起,同时开源网站系统也之间增多.网站建设过程中当使用一些开源的网站程序时,免不了会在javascript上产生冲突.也许网站的开发者习惯使用jQuery, ...

  6. 网页 HTML表单

    今天,我首先先学习了图片热点和在原来页面嵌入其他页面. 图片热点:<img src="" usemap="#ditu"/> <map name ...

  7. docker network

    前言:前面的部分一直都是单机跑docker,但实际生产环境不可能只用一台来跑.肯定会用到多台,因为他们都是内部私有ip,那么多台主机之间的容器如何通信?这个是个很头疼的问题!目前主流几种方法如下: 1 ...

  8. Git Bash 简单操作

    在Windows下使用Git Bash,用的是Linux命令,常用几个文件操作命令如下: Windows命令 Linux命令 意义 cd e:\xxx cd /e/xxx 切换到xxx目录 cd pw ...

  9. C++ 使用string一行一行读取文件

    c++ 读取文件中的一行一行数据 通用模板: std::ifstream in(dictpath); if(!in) { std::cout << __DATE__ << &q ...

  10. HDU 3499 Flight spfa+dp

    Flight Time Limit : 20000/10000ms (Java/Other)   Memory Limit : 65535/65535K (Java/Other) Total Subm ...