前提
こちらの記事(筆者作成)でpong.pyを一度実機転送したのですが、pong.pyはpython2系で書かれている為、python3系のアプリだとまた少し工夫が必要なようです。
本記事では備忘の為に、対処内容を記載します。
また、lightningケーブルの調子が悪く、python3系の自作アプリの実機転送はまだできていません。
しかし、XCodeのiOSSimulatorでは起動が確認できた為、大体OKだと思っています。
実機転送できました!
注意点1 toolchain.pyのシバンを修正する
toolchain.pyのシバンには#!/usr/bin/env pythonと記載されています。
※toolchain.pyはこちら。
私の環境でenv pythonを起動するとpython2.7.10が起動しました。

つまり、toolchain.pyを起動するpythonを指定しなければ、python2系で実行されてしまいます。
解決方法
env pythonをpython3系にするのが面倒だった方法が分からなかったので、toolchain.pyのシバンを直接python3系のpythonに修正しました。
注意点2 .kvファイルのファイル名に大文字は使用しない
当初、bigApple.kvのように複数の単語をCamelケースで連結した.kvファイルを使用していました。
これはMac上の起動では何ら問題なく動くのですが、iOSSimulatorではうまく動きませんでした。
症状として、iOSSimulatorでアプリ起動後に真っ黒な画面がずっと表示されたままになります。ログには特に変わったことは何も出力されず、結構困りました。。
解決方法
おそらく大文字を使用していることが問題なので、bigapple.kvやapple.kvなどとすれば解決します。
※当然のことながら、if __name__ == '__main__':内でrun()を実行するクラス名と一致させる必要があります。
備考
@dario_okazakiさんのこちらの記事で@taashiさんがコメントされている内容と同じだと思います。
注意点3 .kvファイルでのmainのimport方法
@dario_okazakiさんのこちらの記事で、bookSearch.kvの1行目に#: import main mainという記載があります。
これをすると、.kvファイルから.pyファイルの変数や関数などにアクセスすることができます。
これもMac上では問題なく起動するのですが、iOSSimulatorではmainモジュールがうまく探せないようで、動きませんでした。
解決方法
#: import main __main__とすることにより解決しました。
注意点4 自作モジュールのインポート
main.py以外に自作のモジュールを用意して読み込ませる方法ですが、iOSSimulatorではうまくいきませんでした。
パスが通っていないことが原因でした。
解決方法
テンプレートファイルを修正して、パスを通します。
修正ファイルの配置場所:
.../kivy-ios/tools/templates/{{ cookiecutter.project_name }}-ios
修正内容(main.pyと同階層にあるモジュールを読み込みたい場合)
%@/YourAppを追加します。

解説
toolchain.pyでXCodeプロジェクトをcreateすると、(少なくとも私の環境では)下記ディレクトリにファイルたちが作成されます。
~/Library/Developer/CoreSimulator/Devices/[UUID1]/data/Containers/Bundle/Application/[UUID2]/[アプリ名].app
※[アプリ名].appはファイルではなくディレクトリ
[アプリ名].appは上記のmain.mで言う%@に当たります。よって、パスが通っています。
しかし、[アプリ名].appに入ってみても、main.pyやpythonモジュールは見当たりません。
そこで[アプリ名].app内のYourAppに入ってみると、main.pycやpythonモジュールを見つけることができます。
つまり、ここにパスを通せば読み込めます。
ちなみに、kivyのライブラリは[アプリ名].app/lib/python3.7/site-packages/kivyにあるので、パスが通っており使用できます。
#pythonのバージョンは人によって異なるかもしれません。
他に何か注意点を見つけたら追記していきます。

