前段时间接手一个旧项目时,我在桌面上同时开着四个工具。
一个写代码,一个处理 Git,一个负责打包,还有一个专门上传测试包。
项目本身并不算大,但开发过程已经明显被拆成了很多段。后来回头整理时,我才意识到:现在的 iOS 开发,已经不是装一个 IDE 就结束的时代了。
不同工具正在负责不同环节,有的处理代码编辑,有的负责工程构建,有的专门解决自动化发布。开发者真正使用的,其实是一整套流程。
这篇内容不准备做简单的软件罗列,而是按照实际开发过程,把目前比较常见的 iOS 开发工具整理出来,顺便聊聊它们分别解决什么问题。
代码编辑:开发时间最长的一环
每天停留时间最长的工具,基本都是编辑器。
Xcode
Xcode 依然是 iOS 开发里的核心工具。
项目创建、Target 配置、Interface Builder、证书管理、真机调试,这些能力都集中在一起,对于纯原生项目来说,它仍然是最完整的开发环境,不过项目规模变大之后,很多开发者会开始把“写代码”和“工程管理”拆开。
VSCode
VSCode 这几年在移动端开发里的存在感越来越强,原因是很多团队同时维护:
- iOS
- Android
- Flutter
- Web
- Node 服务
如果所有代码都能在同一个编辑器里完成,开发过程会更连续,Swift 插件、Git 插件、终端支持以及 AI 辅助工具,也让 VSCode 在 iOS 项目里出现得越来越频繁。
AppCode
JetBrains 的 AppCode 依然有人在使用,它的代码分析能力比较强,尤其是在大型 Objective-C 项目中,重构和跳转体验会更明显,不过它本身还是依赖 Xcode 工具链。
工程与依赖管理
代码之外,项目结构本身也需要工具维护。
CocoaPods
很多老项目仍然依赖 CocoaPods 管理第三方库,执行pod install之后生成 workspace,再由 Xcode 打开,虽然现在不少项目已经迁移到 SPM,但 CocoaPods 还没有完全消失。
Swift Package Manager(SPM)
SPM 已经成为越来越多 Swift 项目的默认选择,它直接集成在 Apple 官方工具链里,不需要额外安装依赖管理工具,很多新项目已经开始减少对 CocoaPods 的依赖。
编译与构建:最容易被忽略的部分
很多开发者每天都会点击 Run,但真正发生的事情其实比想象中复杂:
- 解析工程
- 调用 SDK
- 选择架构
- 编译代码
- 链接库文件
- 生成 App
这些步骤共同组成了构建流程。
Fastlane
Fastlane 在团队项目里很常见,它负责自动执行:
- 构建
- 打包
- 上传 TestFlight
- 发布版本
例如:
fastlane beta
就可以自动完成测试包上传,当项目需要频繁发布时,这类工具会减少大量重复操作。
Jenkins / GitHub Actions
CI/CD 工具更多出现在团队协作场景,代码提交之后,可以自动:
- 编译项目
- 执行测试
- 生成安装包
- 发布版本
这些流程在项目后期会越来越重要。
真机调试与设备管理
很多问题只有在真实设备上才会出现,例如:
- 推送通知
- 蓝牙权限
- 相机功能
- 性能问题
因此真机调试一直是开发过程中最频繁的动作之一。
Apple Configurator
主要用于设备管理,例如:
- 安装配置文件
- 管理测试设备
- 批量部署应用
在企业测试环境里会比较常见。
Charles
Charles 并不属于 IDE,但几乎很多 iOS 开发者都会装。
它主要用于:
- 抓包
- 查看接口请求
- 分析网络问题
当接口异常或者数据结构不一致时,这类工具会非常重要。
上传与发布
开发完成之后,还会进入另一段流程。
App Store Connect
最终版本提交还是离不开 Apple 官方平台。
包括:
- TestFlight 测试
- 审核提交
- 版本管理
AppUploader
有些团队会把上传动作单独拆出来,AppUploader 这类工具会更偏向 IPA 上传管理,而不是开发本身。
开始出现的整合型工具
工具越来越多之后,一个变化也开始出现,开发流程被切得越来越碎,例如:
- VSCode 写代码
- Xcode 管理工程
- Fastlane 打包
- AppUploader 上传
每个工具都很好,但切换成本也越来越明显。
最近开始出现一些新的整合型工具。
其中一个比较有意思的是 快蝎(kxapp)。
它并不是单独解决某一个环节,而是在尝试把几个高频动作重新放回一个环境里。
目前快蝎支持:
- Swift 项目
- Objective-C 项目
- Flutter 项目
编辑器基于 VSCode 架构,同时内置了自己的编译工具套装,项目修改之后,可以直接进行构建和真机运行,应用构建与安装包生成也放在同一个开发环境中完成,对于需要频繁切换项目或者快速验证功能的人来说,这种工具会更接近“完整工作流”。
现在再看“iOS开发工具有哪些”这个问题,会发现它已经不只是一个软件名称列表,编辑器、依赖管理、编译工具、自动化工具、抓包工具、发布工具,都在参与开发过程。
不同团队会组合出不同工作流,有人喜欢把工具拆开使用,也有人开始尝试整合型方案。
共同学习,写下你的评论
评论加载中...
作者其他优质文章