#iOS 开发

先说一下这里讲的是本地库,并不是私有库,如果想了解 Cocoapods 公共库或者私有库的支持方法可以看我的另一篇文章:【iOS 开发】创建 podspec 文件,给自己写的框架添加 CocoaPos 支持

最近公司项目需要以组件化的架构来重构项目,就是各个模块需要解耦拆分开来,利用 Cocoapods 的管理,主工程只需要将各个模块 pod install 引入即可,开始想要以私有库的方式集成,但是公司项目涉及到多个客户定制开发,定制分支比较多,如果用私有库方式必定要创建多个 Git 仓库分开管理,这样分支管理以及维护成本都大大提高,所以考虑采用本地库的方式将各个模块集成,好处是各个模块的库不需要打 tag 上传至私有库,可以在主工程直接管理各个模块的代码,下面就记录一下遇到的问题。

最近需要将自己公司的项目的打包成 Framework 然后以 SDK 的形式来供客户使用,但是项目中用到不少 Cocoapods 第三方的库,怎么才能将项目打包 Framework 并依赖 CocoaPods 第三方库呢,网上找了很久都没有找到一篇专门说这个的,让我走了很多的坑,手动打包 Framework 太麻烦,开始尝试了 cocoapods-packager 方式打包,但是这个插件貌似对于 Swift 项目的支持并不是很好,尝试很久都没有打包成功,作者貌似也不是很活跃,无奈放弃,最后选择用 Carthage 方式来打包 Framework ,下面就分享一下利用 Carthage 将项目打包 Framework 并依赖 CocoaPods 第三方库的方法。

Carthage 是一款 iOS 项目依赖管理工具,与 Cocoapods 有着相似的功能,可以帮助你方便的管理第三方依赖,它会把三方依赖编译成 framework ,以 framework 的形式将三方依赖加入到项目中进行使用和管理,下面记录一下项目添加 Carthage 支持的方法以及 Carthage 的使用方法,方便日后查看。

大多数代码源自于 ExtAudioFileConverter,因为网上关于音频格式转换的太少了,而且还特别麻烦,故封装为 Cocoapods 库,方便使用,转换 MP3 格式需要用到 lame 静态库,使用 pod 之后不需要单独集成 lame 静态库,直接 pod install 即可使用,这是库的地址:GZZAudioConverter

iOS 想要检查 App 当前版本是否为最新,一般的方案大概都是服务器自己提供一个接口来获取 App 最新版本是多少,然后再做出相应提示是否需要更新,但是接口需要手动维护,应用要审核,还得等审核通过以后才能更新版本号,其实苹果提供了一个 iTunes 接口,能够查到 AppAppStore 上的状态信息,既省事又准确,下面记录一下具体实现方法。

iOS 的几乎全部页面都是需要右滑返回的,否则用户体验会大打折扣,但是在开发过程中经常会碰到某些页面右滑返回失效的情况,下面记录一下各种情况下右滑返回失效的解决方法。

持续集成(Continuous Integration 简称 CI)。Jenkins 是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。具体就不多说了,想要更多的了解可以去查一下,下面是集成方法。

Fastlane 是一个完全开源的项目,是一款为 iOSAndroid 开发者提供的自动化构建工具,它可以帮助开发者将 App 打包、签名、测试、发布、信息整理、提交 App Store 等工作完整的连接起来,实现完全自动化的工作流,如果使用得当,可以显著的提高开发者的开发效率,这是 GitHub 地址官方文档

在开发过程中特别是做通讯录一类功能时经常要用到 中文转换拼音 以及 中文数组排序 ,下面记录一下方法,方便以后查看,有需要的可以收藏一下。

在平时的 iOS 开发过程中,少不了要使用很多的框架,一个适合的框架能够将开发效率提高几倍,这里将一些不错的 Swift 框架收集起来,有需要的可以收藏一下。