#現状(2019/12/17追記)
toolchain.py
のソースコードがおそらく変更されており、kivy-iosの手順に従えば、基本的には問題なくできると思う。
何か問題が発生した場合は、python
やkivy
をアンインストールしたキレイな状態から開始することをオススメする。
また、pyenv
の使用はオススメしない。
kivy-ios
の手順ではbrew install python
と記載がある。手順に従わない方法でpython
環境を整えると、うまくいかない可能性が高まる。
ちなみに、pyenv
でやると必ずNGという訳ではないと思うが、私はpyenv
を使用することにこだわりはなかったので、素直にbrew
でインストールした。
#やりたいこと
python
を勉強したい!
なんか適当にアプリを作りたい!
できるならスマホアプリを作りたい!
(外出先でいろいろ遊べるので。)
##ひとまず、kivy
のtutorialとして提供されているPong GameをiPhone実機で実行することを目標にする。
##実行環境
python
3.6.5(Kivy3.appを入れたらこのバージョンのpythonがインストールされた)
kivy
1.10.1
Cython
0.28.1
Mac
macOS Mojave 10.14.4
Xcode
10.2.1
iPhone
iOS 12.2
##手順
基本的にはここに書いてあるコマンドを実行していけばよいが、一部補足して記載する。
https://github.com/kivy/kivy-ios
###1 git clone
git clone https://github.com/kivy/kivy-ios.git
ここにあるtoolchain.py
をあとで実行するので、git clone
しておく。
kivy-iosディレクトリが作成されるので、cd kivy-ios
しておく。
###2 権限(?)の設定
####2-1 kivy
のpython
バージョンの確認
kivy
とタイプするとpython
プロンプトが起動する。このとき、上図のようにpython
のバージョンを確認できる。
※筆者はbrew
によりpython 3.7.3
を元々インストールしていたが、Kivy3.appによりkivy
をインストールしたところ、kivy
にはpython 3.6.5
が関連付いた。
パスも異なる為共存しても問題ないが、python
を実行する際はどの場所にあるどのバージョンのpython
を実行しているかを気にする必要がある。
####2-2 pip
のpython
バージョンの確認
head -1 $(which pip)
pip
コマンド(実態はpython
スクリプト)のシバンに書いてあるpython
のバージョンを確認する。
シバンだけで確認できない場合は、シンボリックリンクを追ったりpython --version
してみる。
2つのバージョンが一致していれば、2-4へ移動。
2つのバージョンが一致していない場合、一致させる必要がある。
おそらく、kivy
のpython
バージョンに合わせる方が楽。
####2-3 pip
を作成し、バージョンを一致させる
適当なディレクトリにcd
して下記を実行する。
※実行するpython
は2-1で確認したkivy
のpython
で実行する。
上図で言うpython 3.6.5
がどこかにあるのでそのpython
で実行する。
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
このときに使用するpython
がポイントで、python
のパス・バージョンに応じたpip
が生成される。
また、実行したpython
が存在するディレクトリにpip
が作成される為、/usr/local/bin/python
などで実行するとpip
が上書きされる可能性がある為注意。
なお、後続の処理で実行するtoolchain.py
の中でwhich pip
を行いpip
のパスを取得しているようなので、pip
を作成した場合はwhich pip
でどのpip
が参照されているかを確認した方がよい。
####2-4 pip
実行
pip install -r requirements.txt
この権限(?)の設定はpython
毎に実行が必要らしく、kivy
に関連付いているpython
のバージョンを変更した場合、再度実行が必要になる。
ちなみにrequirements.txt
の内容は下記である。
バージョンの設定か何かをしているようだが、よく分からない。。
pbxproj==2.5.1
requests>=2.13
###3 Xcodeのコマンドラインツールのインストール
xcode-select --install
1つ注意点として、電源を繋いでいないとインストールできなかった。
###4 なんかインストール
brew install autoconf automake libtool pkg-config
英文を読む限り必須作業なのか微妙だが、やれるものはやっておこう。
インストール時に下図のように警告やエラーが出ることがある。
警告は、「それ最新入ってるよ」なのでOK。
エラーは、「それ入ってるけどちょい古いから更新かけてね」なので、更新をかける。
####4-1 最新バージョンへ更新
brew upgrade automake
####4-2 リンクの設定
brew link libtool
上図のように警告が出ることがある。
これも「既にリンクあるよ」なのでOK。
###5 Cythonのインストール
pip install cython==0.28.1
2019-05-20現在、こちらのkivyのインストール手順ではCython=0.23を指定している。
上記は有志の方による翻訳のhtml版だが、翻訳時のバージョンが単に0.23だっただけだと推察。
※有志の方、翻訳ありがとうございます!大変助かっています!
###6 一旦確認
./toolchain.py recipes
ここで上記コマンドが正常に実行できれば、ここまでの手順はOKと判断できる。
出力結果はrecipe
と呼ばれるものの一覧であり、よく分からないがこれらが何なのかは重要なことだと思うので後で調べる。
###7 ビルド
./toolchain.py build python3 kivy
ビルドが1回以上必要らしいが、時間がかかることがある。
初回は40分ほどかかった。
なお標準出力にログが大量に出力されるが、ほとんどがDEBUGログである為toolchain.py
のどこかをいじればログの出力を抑制できそうな気がする。
また、作成したアプリに応じてビルド対象を増減する必要がある。
###8 Xcode Projectの作成
./toolchain.py create <title> <app_directory>
上記の書式でtoolchain.py
を実行する。
第2引数の「<title>
」は作成するアプリの名前なので慎重に決定する。
※<app_directory>
にはmain.py
が存在していないといけない。
###9 Xcodeでプロジェクトを開く
open <title>-ios/<title>.xcodeproj
上記コマンドを実行すると、Xcodeで使用するファイルをまとめたディレクトリ(<title>-ios
)が作成される。
<title>.xcodeproj
がその名の通りXcodeのプロジェクトファイルなのでopen
する。
※作成された<title>-ios
の中身を勝手にいじってはいけない。
###10 まずはSimulatorで実行
実機で動かす前にSimulatorで実行ができないと話にならないので、Simulatorで実行してみる。
再生ボタンを押下後、下図のようにSimulatorが起動する(一旦iOSのバージョンは適当でよい)。
※初回実行時は少し時間がかかる。
リンゴのマークとプログレスバーが表示される。
左にスライドすると下図のようにpongのアプリがあるのでクリックする。
すると下図のようにpongがSimulator上で実行できていることが確認できる。
###11 iPhone実機転送の準備
####11-1 iPhoneをMacに接続する。
####11-2 下図の「Team」を選択する。
※個人開発でも個人アカウントが出てくるのでそれを選択。
※場合によってはapple IDにログインが求められる。
####11-3 下図のようなエラーが発生した場合は、こちらのサイト様を参考に解消する。
###12 iPhone実機転送
####12-1 再生ボタンを押下!
####12-2 iPhone側でアプリの実行を許可する。
アプリ単位ではなくdeveloper単位の様子。
以上。