论项目中静态库符号冲突的几种解决方式

在实际项目过程中,我们经常会碰到引入三方的静态库后出现符号冲突的现象,也就是出现 duplicate symbols 错误,那么如何解决这类冲突呢? 这里我们区分几种不同的冲突情况 最复杂的情况: 项目中使用的 libSDKA.a 和 libSDKB.a中有符号冲突,这里假定两者都包含了很多同名的代码等 这里,两者重复的符号,并一定是在同一个文件中,或者即使在同一个.o中,但是,鬼知道它们有没有对这些重复符号的类啥的方法添加了另外的内容,也就是说即使它们两包含了同一份代码,也可能是并不兼容的两个版本. 这里的解决办法 ...

利用xcodeproj给主工程添加子工程

现在,ccocoapods已经成为iOS工程的标配,在这个工具的开发过程中,开源了一个专门用来操作工程的.xcodeproj文件的ruby库Xcodeproj,利用它,我们自己也可以用ruby脚本来添加和删除工程中的文件等,做到自动化操作 问题的提出 在我们的组件化过程中,是通过子工程的方式来建立业务组件的.可能有人会问,为什么不用pod来建立业务组件呢?其实当时也有考虑过,pod更适合已经比较成熟的组件,而我们现在的业务变动还很大,并且pod在开发的过程中,新增文件什么的,还要运行下pod install才能运行,综合考虑,在业务早期,还是使用子工程的方式更便捷,能取得各方面的权衡 当我们采用子工程来建立业务组件,那么通常建立了一个模板化的组件工程( ...

iPhoneX利用unc0ver来越狱iOS12

在iOS11时代,有两种越狱的方式,一种是unc0ver,一种是electra,它两的历史还是挺有趣的,unc0ver的开发者本来是electra的成员,但由于不满某些东西,所以自己出来又搞了unc0ver,说是改进了越狱错误显示等,更加友好了,不过我亲身体验了两种,发现unc0ver各种不稳定,并不是像他们自己标榜的那样优势啊,可见,还是实践出真知啊 前言 2.22日 unc0ver的成员在twitter上宣布,开放iOS12的越狱了,那个激动呀,早前,国内的阿里和腾讯,都宣称已经开发出了iOS12的完美越狱,不过不开放工具,还以为自此和iOS12越狱无缘了, ...

podfile文件用到的Ruby语言的学习和使用

序言 在我们的iOS开发中,现在的cocoapods已经是事实上的添加第三方库的标准方式了.在cocoapods中的podfile文件就是利用Ruby语言写的一款DSL(Domain Specific Language,领域特定语言). Ruby简介 在Ruby的维基百科Ruby(翻墙才能访问)上的说明:Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言。 在20世纪90年代中期由日本电脑科学家松本行弘(Matz)设计并开发。 遵守BSD许可证和Ruby License。 它的灵感与特性来自于Perl、Smalltalk、Eiffel、Ada以及Lisp语言。 ...

XCode10的新变化

XCode的正式版已经发布一个星期了,是时候总结一下XCode的新变化了. 1 调试预览的增强 xcode10 提供了新的调试时候对(NS)data的导出预览功能 这里的Export,可以导出我们预览的NSData的内容,保存到一个文件中去,然后选择第三方的工具去打开这个保存下来的Data内容. 2 对于xib的增强 当我们在代码里,点击IBOutlet元素,会弹出它所对应的在xib中的控件.当你在出现的弹框中点击,它就会跳转到xib文件中,并定位到它. 3 将snippet library和Midea library从原来的 迁移到了 最顶部的状态栏上 ...