iOS 開發環境設置

來算一算這是我第幾次來設置開發環境了⋯

  1. 2014 - 買了自己的第一台 MacBook Pro
  2. 2015 - 第一份工作所配發的 MacBook Pro
  3. 2018 - 換工作所配發的 iMac
  4. 2018 - 換工作所配發的 iMac
  5. 2020 - 換工作所配發的 iMac
  6. 2020 - 向 Apple 所申請的 DTK
  7. 2021 - 為了加速開發 side project,買了 MacBook Air M1(正在弄)

前面六次的開發環境設置,都隨著物換星移地不斷迭代;從 bash -> zshoh-my-zsh -> zim,加上還因為 DTK 的先行使用,踩了一些當時尚未支援的坑⋯這次再來紀錄一下這過程,讓之後的第八次能夠更順利一些(?

brew

首先,勢必是得從 brew 開始安裝起,也可以簡化後續很多的安裝流程。而這邊主要已經避開了當時還不支援 Apple silicon CPU 的坑,所以十分地順利!

git

自從上次 git 發生了資安問題後,我都習慣用 brew 所安裝的 git 為主。

iTerm2

接著下載 iTerm2 來取代原先的 Terminal,並客製化一下這部分。

刪除的快捷鍵

在 Profiles -> Keys -> Key Mappings 這邊新增兩個

  • Send Hex Codes: 0x15(command + delete)
  • Send Hex Codes: 0x17(option + delete)

這樣就可以在 iTerm2 上使用和 Xcode 一樣的刪除快捷鍵了。

Color theme

我個人都習慣使用 Dracula 來套用到所有的工具配色上,安裝方法可以直接參照。

Sublime Text

這是一套很讚的文字編輯器,我這邊會做幾個客製化的功能

Install Package control

command + shift + P 可以叫出操作列,並輸入 Install Package control 便可以安裝套件管理工具。

這邊順道提供一個我常拿來處理 JSON 格式的套件:Pretty JSON。

Command Line Interface

在 zsh 的環境下,可以直接透過下列的程式碼來達到效果

echo 'export PATH="/Applications/Sublime Text.app/Contents/SharedSupport/bin:$PATH"' >> ~/.zprofile

這麼一來,我們就可以使用 subl 的指令了。

Color theme

一樣透過 Dracula 的安裝方式來更換成一致的配色。

[zim]

輸入下列程式碼即可開始安裝

curl -fsSL https://raw.githubusercontent.com/zimfw/install/master/install.zsh | zsh

powerlevel10k

Zim 的安裝方式

Xcodes.app

透過 brew 來安裝 Xcodes.app,作為 Xcode 管理套件。

brew install --cask xcodes

npm

也是透過 brew 來安裝 npm

brew install npm

Commitizen

接著就透過 npm 來安裝 Commitizen。

npm install -g commitizen

rbenv

透過 brew 安裝 rbenv 來做 Ruby 的版本管理

brew install rbenv

接著來查看目前可安裝的版本列表

rbenv install -l

再來安裝特定的版本,如我這邊安裝 3.0.2

rbenv install 3.0.2

安裝完想用的版本後,就可以在特定的資料夾指定 Ruby 所使用的版本

rbenv local 3.0.2

再來要去 .zshrc 裡頭註明一下 rbenv 的路徑

# rbenv
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

bundler

可以先確認一下目前使用的 Ruby 是不是剛剛所制定的版本

which ruby

安裝 bundler 來管理專案裡頭的 gem 套件們

sudo gem install bundler

最後執行更新 bundler 列表的套件即可

bundle update --bundler

如我目前專案裡頭的 Gemfile 內容包含了

gem 'fastlane'
gem 'cocoapods'

就可以順利地透過 bundle 和 rbenv 來安裝相關的套件了

comments powered by Disqus