みずぴー日記

人間の再起動ボタンはハワイのビーチにある

⚡️Brew Sparkling: homebrew for iOS

Xcode7 からApple Developer Programに参加しなくて、iOSアプリの実機デバッグが可能になった。

これを利用し、Github等で公開されているソースコードをダウンロードし、自分のiPhoneにインストールするHomebrew拡張を作った。 例えば brew sparkling install SparkingSample でサンプル用のアプリケーションがインストールされる。

主な用途としては、次のようなアプリケーションの配布を想定している。

  • 進捗時計のような雑なアプリケーション。AppStore審査を通さない分、気軽に公開できるようになる。
  • Provenance(マルチエミュレータ)のようなAppStoreの審査を通過できないアプリケーション。

準備

必要なもの

初期設定

  1. Xcodeを起動し「Preferences -> Accounts」から、AppleIDを登録する。
  2. 右下の「View Details」をクリックし、表示された画面で「iOS Development」のSigning Identifiesを作成する

使い方

インストール

brew install codefirst/sparkling/brew-sparkling

Xcodeを再起動すると、プラグインをロードするかを確認されるので、「Load bundle」を選択する。

設定

Xcodeの情報を正しく接続できているかを確認する。

# アカウントの確認
brew sparkling accounts

# 証明書の確認
brew sparkling certificates

# 接続されているデバイスの確認
brew sparkling devices

適当なものを選び環境変数に設定する。自分の場合は以下のようにしている。一個しか表示されないなら特に設定は不要のはず。

export BREW_SPARKLING_USERNAME=brew_sparkling@icloud.com
export BREW_SPARKLING_CERTIFICATE='iPhone Developer: brew_sparkling@icloud.com (xxxxxx)'
export BREW_SPARKLING_DEVICE=mzpPhone

iOSアプリのインストール

  1. iPhoneMacに接続する
  2. brew sparkling install SparklingSample
  3. 途中でXcodeがKeychainにアクセスしてよいかを聞いてくるので許可する。
  4. 待つ

iPhoneがロックされているとインストールできないので、自動ロックはオフにしておいたほうがよい。

インストールできるアプリケーションの例

Firefox for iOS

f:id:mzp:20150831073641p:plain

Firefox for iOS。現時点ではまだリリースされていないがソースコードが公開されているため、Sparklingでインストールできる。

インストール方法:

brew sparkling install Firefox

JapaneseKeyboardKit

f:id:mzp:20150814222207p:plain

Google日本語入力から派生したMozcをiOSに移植したキーボード。 JapaneseKeyboardKit·Mozcを使ったiOS8用カスタムキーボード MOONGIFTなどで紹介はされているが、AppStoreでは配布されていなかった。

インストール方法:

brew sparkling install JapaneseKeyboardKit

SpoolDays

f:id:mzp:20150814221821p:plain

指定した日付からの経過日を表示するアプリケーション。AppStoreで公開していない理由を作者である@さんに聞いたところ「怠惰」とのこと。

インストール方法:

brew sparkling install SpoolDays

Provenance

f:id:mzp:20150814211833p:plain

SNESSega Genesis、Game Gearなどのマルチエミュレータ。ここでは、スーパーファミコンのプログラムを書きたい - ポルノアニメのROMを動かしている。

インストール方法:

brew sparkling install Provenance

その他

インストール可能なiOSアプリは brew sparkling list で一覧表示できる。もしくはGithubレポジトリを見てもよい。

その他

制限

  • Capabilityが利用できないため、位置情報の取得、バックグラウンド再生、アプリ内課金などの機能は利用できない。
  • 3ヶ月で有効期限が切れるため、定期的に再インストールが必要。

関連リンク

謝辞

Xcodeの挙動を解析するときに@さんにものすごくお世話になったので、Sparklingっぽいものを贈っておいた。