使用Xcode8编译旧项目遇到的问题

Posted Cocoa开发者社区

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Xcode8编译旧项目遇到的问题相关的知识,希望对你有一定的参考价值。


原文链接:http://www.jianshu.com/p/26f223bb312c


虽说Xcode8在就9月份就发布了,但我是在国庆之后才开始使用。今天没什么事儿,就把自己遇到的问题总结一下,方便自己看,也方便大家查阅。


问题一:如果你的项目中使用了MJRefresh,并且不是最新版本的,就会直接崩溃:



如果你在Xcode的输出窗口仔细瞅会发现有关MJRefresh的输出


使用Xcode8编译旧项目遇到的问题


解决方法:只要将MJRefresh更新到最新版本就行了。简单粗暴


问题二:就是输出窗口,输出一大堆乱七八糟的日志,对我们几乎没有用


使用Xcode8编译旧项目遇到的问题


解决方法:【product】-【scheme】-【Edit Scheme】-【Run】-【Argument】-【Environment Variable】添加key:Value【OS_ACTIVITY_MODE : disable】即可。


问题三:我们解决了问题二之后,是不是赶脚心里舒服多了,乱七八糟的输出不见了,但是在我们用真机调试的时候,NSLog也不工作了。我们在输出窗口看不到我们想要的日志了。


解决方法:


定义一个宏即可


#ifdef DEBUG

#define CLLog(format, ...) printf("[%s] %s [第%d行] %s\n", __TIME__, __FUNCTION__, __LINE__, [[NSString stringWithFormat:format, ## __VA_ARGS__] UTF8String]);

#else

#define NSLog(format, ...)

#endif


问题四:在用模拟器进行调试的时候,会莫名的输出


使用Xcode8编译旧项目遇到的问题


这个输出不影响调试,也不影响程序运行。看着它输出只是心理不爽而已。


原因:是在这两个路径下有两个模拟器包文件,并且这两个包文件中都包含了PhotoLibraryServices文件,模拟器不知道使用哪个文件了。在真机上就不会出现这种情况。



解决方法:这两个模拟器包文件谁都不可以删除,删除谁都会报错,确切的说删除iPhoneSimulator10.0.sdk这个包文件会报错,另一个不能在模拟器上运行了。我得到的结果是:这可能是模拟器的bug,也可能是我电脑上安装了两个版本的Xcode,个人偏向于第一种说法。


PS:写这篇的思路是按遇到问题的先后顺序来的。由崩溃到能运行,再到解决其它遗留。




▲长按二维码“识别”关注即可免费学习 iOS 开发

月薪十万、出任CEO、赢娶白富美、走上人生巅峰不是梦

--------------------------------------

商务合作QQ:2408167315

投稿邮箱:support@cocoachina.com

以上是关于使用Xcode8编译旧项目遇到的问题的主要内容,如果未能解决你的问题,请参考以下文章

xcode8.0升级之后公司项目遇到的问题

Xcode 8.2,Swift 编译器错误:错误:意外的输入文件

xcode 编译旧程序遇到的一些问题解决汇总

xcode 编译旧程序遇到的一些问题解决汇总

核心数据模型似乎没有反映在应用程序中

Xcode 8.2使用旧版Swift问题[重复]