关于 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,但总比乱糟糟的环境要好~

Categories: Uncategorized

Related Posts

Uncategorized

Multicast Delegate 实现分析

Multicast Delegate? 传统 Delegate 大家都知道是一对一关系,一个对象只能给对应 Delegate 对象做回调,而 Multicast Delegate 顾名思义就是能向多个 Delegate 对象进行回调。 Multicast Delegate 与 KVO 对于某些属性值我们可以采用 KVO 的方法进行监听获得最新值(比如 contentOffset、contentSize 等)。但某些属性值却无法进行 KVO (比如 isDragging、isTracking 等),原因很简单,可以参考下 KVO 的实现原理,对 readonly 的属性,即不带有 setter 的属性进行 KVO 是无效的。因此 Multicast Delegate Read more…

Uncategorized

Debian 9 安装 LEMP + WHMCS 7.5 教程

WHMCS 7.5 终于发布了,这货开始支持 PHP 7.2,这里就写个简单的教程记录一下安装方式 1、准备工作 首先,按照《Debian 9 / Debian 8 使用源安装 LEMP 教程》安装好 LEMP 环境,可以选一些需要用到的 PHP 7.2 软件包

Uncategorized

我们做出了一个艰难的决定

由于烧饼博客经营不善,博主带着小姨子跑路了,整个组织濒临破产边缘。经第一届金枪鱼全体代表大会讨论研究决定,烧饼博客名下的 Telegram 群组站将启用免费使用+付费增值模式。具体收费标准如下: 项目 普通用户 青铜会员 白银会员 黄金会员 铂金会员 钻石会员 大师会员 王者 备注 收费标准 免费 $9/mo $19/mo $29/mo $39/mo $49/mo $59/mo $99/mo n/a Telegram 发言 5 条/周 10 条/周 15 条/周 20 条/周 25 条/周 Read more…