gomobileをちょっとだけ便利にする


gomobileコマンドをラップしたgomobileappというコマンドを作ってみた。 gomobileでできることはそのままにgomobileappで出来るようにラップしておいて、 いくつかの機能追加をしてみた。

このツールが追加する機能

以下のようなちょっとした機能を追加してみた。

  • gomobileのアウトプットにアイコンを付与できます。
  • gomobileでiOSにもインストールできるようにします。
  • gomobileでデスクトップ用にビルドできるようにします。

インストール

ソース: http://github.com/nobonobo/gomobileapp

go get -u golang.org/x/mobile/cmd/...
go get -u github.com/nobonobo/gomobileapp
gomobileapp init

依存ツールのセットアップ

iOS向け

  • Xcode7.1のインストール
  • ios−deployのインストール(npm install -g ios-deploy)

コード署名用証明書の作成(Developer Program非加入の場合の手順)

  • Xcode7.1を起動してPreferencesを開く。
  • Accounts項目に自分のアカウントがあることを確認して、無ければ追加します。
  • 自分のアカウントの「View Details…」をクリックして「Sigining Identities」一覧を表示。
  • 「iOS Development」の「Create」ボタンをクリックします。(ボタンが見えない場合は作成済み)
  • 作成された証明書の確認はキーチェーンアクセス.appで自分の証明書一覧にあります。
  • うまくいかない場合はキーチェーンアクセスから削除してやり直すとうまくいく場合があります。

Android向け

  • android-platform-toolsのインストール
  • android-apktoolのインストール
  • JRE(java runtime environment > 1.8)のインストール

iconジェネレータツールのインストール(Android/iOS共通)

curl -kL https://raw.github.com/pypa/pip/master/contrib/get-pip.py | sudo python2
sudo pip2 install icons

使い方

iOSアプリのビルド

go get -d github.com/nobonobo/nobopiano
gomobileapp build -icon icon.png -target ios github.com/nobopiano/nobopiano
ios-deploy install -b nobopiano.app

インストールコマンドの実行(ビルドも実行されます。)

go get -d github.com/nobonobo/nobopiano
gomobileapp install -icon icon.png -target ios github.com/nobopiano/nobopiano

備考

アイコンは正方形で大きめのpngファイル。24bpp推奨。 初回は必ずXcodeが開きます。 Xcodeでビルドしようとすると、コード署名に問題があるからfixするかどうか ダイアログが出ますので「Fix issues」をクリック。 自分のアカウントを選択します。 これでビルド成功するようになれば、 二回目以降はXcodeが開かずにビルド出来るようになります。

Androidアプリのビルド

go get -d github.com/nobonobo/nobopiano
gomobileapp build -icon icon.png -target android github.com/nobopiano/nobopiano
adb install -r nobopiano.apk

インストールコマンドの実行(ビルドも実行されます。)

go get -d github.com/nobonobo/nobopiano
gomobileapp install -icon icon.png -target android github.com/nobopiano/nobopiano

備考

アイコンは正方形で大きめのpngファイル。32bpp(アルファチャンネル付き)推奨。 アイコンを指定した場合、apkファイルを分解してアイコン入れて再構築します。 この際署名をつける際にオンラインである必要があります。

デスクトップアプリのビルド

go get -d github.com/nobonobo/nobopiano
gomobileapp build -target desktop github.com/nobopiano/nobopiano
./nobopiano

まとめ

デスクトップで開発とデバッグしておいて、 リリースタイミングでアイコンを作成してiOS用とAndroid用のアプリを作成できます。

将来の課題

  • AndroidManifest.xmlの指定からアイコンの付与ができるようにする。
  • goの標準パッケージでもアイコンファイル処理は可能なのでiconsツール依存からは脱却しておきたい。