Skip to content

feat: Intel MacとApple Siliconの両方に対応 - #46

Merged
dev-satoshi merged 1 commit into
mainfrom
feature/intel-mac-support
Aug 15, 2026
Merged

dev-satoshi merged 1 commit into
mainfrom
feature/intel-mac-support

Conversation

@dev-satoshi

Copy link
Copy Markdown
Owner

やったこと

  • Homebrew のインストール先をアーキテクチャで切り替え
  • Android エミュレータのシステムイメージをアーキテクチャで切り替え

Closes #12

背景

Apple Silicon 前提のパスがハードコードされており、Intel Mac では動作しませんでした。リポジトリ全体を調べたところ、該当は以下の 3 箇所でした。

箇所 内容
zsh/.zshenv eval "$(/opt/homebrew/bin/brew shellenv)"
scripts/setup/link_dotfiles.sh /opt/homebrew/share/android-commandlinetools/...
scripts/setup/android_setup.sh system-images;...;arm64-v8a

Homebrew は Apple Silicon で /opt/homebrew、Intel で /usr/local に入ります。Android のシステムイメージも CPU に合わせて arm64-v8a と x86_64 を使い分ける必要があります。

変更内容

zsh/.zshenv

実際に存在する方を使います。brew --prefix は brew 自体に PATH が通っていないと使えないため、パスの存在確認で判定しています。

if [ -x /opt/homebrew/bin/brew ]; then
  eval "$(/opt/homebrew/bin/brew shellenv)"
elif [ -x /usr/local/bin/brew ]; then
  eval "$(/usr/local/bin/brew shellenv)"
fi

scripts/setup/link_dotfiles.sh / scripts/setup/android_setup.sh

uname -m で判定します。link_dotfiles.sh は setup.sh の最初に実行され、この時点では Homebrew 未インストールの可能性があるため、brew に依存しない判定にしています。

if [ "$(uname -m)" = "arm64" ]; then
  BREW_PREFIX="/opt/homebrew"
else
  BREW_PREFIX="/usr/local"
fi

動作確認

uname を差し替えて、両アーキテクチャでの分岐を確認しました。

uname -m = arm64    → BREW_PREFIX=/opt/homebrew  ABI=arm64-v8a
uname -m = x86_64   → BREW_PREFIX=/usr/local     ABI=x86_64

.zshenv は brew の配置を変えた 3 パターンで確認しました。

Apple Silicon 相当(/opt/homebrew に brew あり) → /opt/homebrew 側を使用
Intel 相当(/usr/local に brew あり)            → /usr/local 側を使用
brew 未インストール                              → エラーなしで通過

3 つ目は今回の副次的な改善です。従来は brew が無いと no such file or directory が出ていましたが、分岐を入れたことで無害に通過するようになりました。

あわせて以下も確認しています。

  • CI と同じ ShellCheck を実行して exit 0
  • zsh -n の構文チェックを通過(3 ファイルとも)
  • /opt/homebrew と arm64-v8a のハードコードが、分岐の内側以外に残っていないこと

補足

手元が Apple Silicon のため、Intel 実機での通しの動作確認はできていません。分岐ロジックは上記の通り両方で検証済みですが、実機での確認は必要に応じてお願いします。

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@dev-satoshi
dev-satoshi merged commit 9708bcb into main Aug 15, 2026
1 check passed
@dev-satoshi
dev-satoshi deleted the feature/intel-mac-support branch August 15, 2026 10:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Intel MacとM1 Macの両方に対応させる

1 participant