iOS 开发中的环境统一

关于 iOS 开发环境的问题,曾经遇到过融云SDK美恰SDK在 Cocoapods 1.0.1 以上的版本安装的时候会发生冲突,因此在该项目中只能用 1.0.1 以下版本的 Cocoapods…… 又或者是团队中每个人本机的 Cocoapods 版本不一致,那么每次同步项目的时候都会提示需要 pod install,同时 git commit 中会出现许多 Podfile.lock 的修改记录,因此 iOS 团队开发中环境统一的小细节需要做好。

0x00 基本环境

  1. Homebrew

    Homebrew 是开发者在 macOS 必装的环境之一。

  2. Ruby

    Ruby 则为 iOS 开发中必备的环境之一,Cocoapods、fastlane 等会依赖 Ruby。

Ruby 的安装强烈建议通过 Homebrew 来安装并管理,因为使用系统自带的 Ruby 会有权限上的问题,一旦弄坏了环境不好处理,通过 Homebrew 安装的则可以有效隔离各种问题。

0x01 Bundler

简介

Bundler 统一项目中 gem 依赖的工具。通过命令 gem install bundler 安装。

使用

Bundler 的使用和 Cocoapods 的使用十分相似,首先在项目的根目录中初始化 Gemfile

bundler init

修改 Gemfile

source "https://rubygems.org"

gem "cocoapods"
gem "fastlane"

根据 Gemfile 安装依赖:

bundler install --path ./Gems

注意到以上命令指定了安装目录,跟 Cocoapods 一样在当前目录会创建一个类似 Pods 的文件夹:Gems,同时还会有一个 Gemfile.lock 的文件生成,作用与 Podfile.lock 是一样的。

更多相关 Bundler 的使用说明:http://bundler.io/docs.html

⚠️注意:记得更新 .gitignore 文件把 ./Gems 文件忽略掉,和 Cocoapods 一样,避免 Push 到 Git 上。

0x02 最后

做完以上简单的步骤之后,团队内部约定使用该项目中对应的环境就 OK 了。

git clone ... && cd ...
bundler install
bundler exec pod install
bundler exec fastlane ios beta
bundler exec fastlane ios release
......

虽然每次命令操作都要加上 bundler exec,但总比乱糟糟的环境要好~