关于 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

Windows 上简单但强大的截图工具 – Snipaste

在电脑上截图,是一个非常简单但又非常难做到令人满意的事情。如果只是单纯的截取屏幕上的内容,Windows 自带的工具就可以满足,但在对截图内容进行精确控制,或需要在截图后对内容进行标注的时候,往往需要启动一些重量得多的工具来完成——比如 QQ,又比如印象笔记。 Snipaste 是一个简单但强大的截图工具,也可以让你将截图贴回到屏幕上!下载并打开 Snipaste,按下 F1来开始截图,再按 F3,截图就在桌面置顶显示了。就这么简单! 你还可以将剪贴板里的文字或者颜色信息转化为图片窗口,并且将它们进行缩放、旋转、翻转、设为半透明,甚至让鼠标能穿透它们!如果你是程序员、设计师,或者是大部分工作时间都在电脑前,贴图功能将改变你的工作方式、提升工作效率。 Snipaste 使用很简单,但同时也有一些较高级的用法可以进一步提升你的工作效率。 Snipaste 是免费软件,它也很安全,没有广告、不会扫描你的硬盘、更不会上传用户数据,它只做它应该做的事。 强大的截图 自动检测界面元素区域 像素级的鼠标移动控制、截图范围控制 取色器 (试试 F1, C, F3) 历史记录回放 (,/.) 支持多屏 支持高分屏 把图片作为窗口置顶显示 支持将剪贴板中的以下内容转为图片 图像 纯文本 HTML 文本 颜色信息 图像文件:PNG, JPG, BMP, Read more…

Uncategorized

修复 macOS 应用去除签名后的沙盒路径

自从做了两个Tweak:WeChatTweak-macOS 和 QQTweak-macOS,发现了都存在一个共同问题:由于以上两个应用都采用了 macOS 的沙盒机制,同时插入动态库时签名被移除,导致了沙盒失效,拖延症的我终于在国庆期间修复,并记录一下过程。 0x00 举个例子 以下应用在安装完 Tweak 之后,会导致沙盒失效,因此会导致聊天记录等文件无法加载,同时文件路径会出现错乱。囧rz…… WeChat 无法加载历史聊天记录等 ~/Documents 目录下出现 MMappedKV 文件夹。参考 #19 ~/Documents 目录下出现 JietuSDKStat.plist。参考 #21 ~/Documents 目录下出现 .rdq 文件夹。 QQ 无法加载历史聊天记录等 ~/Documents 目录面目全非 0x01 沙盒 沙盒的大概意思: 有兴趣的可以查看 Apple 官方文档:About Read more…

Uncategorized

让微信 macOS 客户端支持 Alfred

Alfred 作为 macOS 平台上的效率神器,Dash、Evernote等应用配合 Alfred 能够有很好的效率提升与体验,然而还是有很多应用未能支持得,比如 Telegram、微信等经常使用的一些应用。既然原生未能支持,那么自己来动手搞一个了~ 0x00 相关回顾 GitHub: WeChatTweak-macOS 微信 macOS 客户端无限多开功能实践 微信 macOS 客户端拦截撤回功能实践 以上为微信 Tweak 增强的以往的一些文章资料,可供参考。 0x01 需求 通过 Alfred 模糊搜索联系人并快速跳转到对应聊天界面 还没想到 (:з」∠) 0x02 Cocoa App 与 Alfred 的通讯 通过 Google Read more…