-
Notifications
You must be signed in to change notification settings - Fork 120
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
iOSビルドのサポート #459
Comments
Issue 作成ありがとうございます! ぜひ進めていきたいですね……!
こちらなのですが、私も cocoapods が使えるのではないかとちょっと期待していたのですが、これが本当なのであれば当てが外れましたね…….。 cocoapods として配布されているバイナリは Specs に記載されているリンクからダウンロードできることを個人的に確認していました。その中に含まれている
この中で、実機やシミュレータ向けの |
静的ライブラリでのビルドは試せていません。 よろしければリンクの設定などをどこで行えばいいか教えていただけると嬉しいです。 |
先程iPad実機上で動作を確認しました(dylibの方です)ので追記しておきます。 |
横槍すみません! |
これはどちらも同意です! なので話が変わってしまって申し訳ないのですが、static library をリンクすることを考えるのはやめて、まずは自前で iOS 向けの dylib をビルドするのを考えるのが良さそうですね。 また、最初の Issue コメントに
とあるように、シミュレータ向けの dylib もビルドすると尚良いですね。その場合、シミュレータ向けビルドにはさらに x86_64 向けと arm64 向けの違いがあるはずなので、全部で3種類のターゲットに対応することになりそうです。 |
VOICEVOX/onnxruntime#3を見越してonnxruntime-builderの対象を1.14.1に上げちゃってたと思うのですが、これどうしましょうかね? まあ現行のCOREに1.14.1をリンクしてももしかしたら動くかもしれないし、 |
なるほどです、確かに対応が必要ですね。
そうかもしれないですが、iOS 版だけ v1.14.1 対応にしてしまうとビルド手順が一時的に複雑になりそうですね。今しばらくはとりあえずmicrosoft本家(Rust 版の正式リリースはまだ)ではなくフォークした VOICEVOX/onnxruntime-rs を使い続けることになっていると思いますが、これを(他のプラットフォーム向けも含めて)とりあえず v1.14.1 に対応してしまうのが綺麗かもしれない、と思いました。その上で VOICEOX/onnxruntime-builder に iOS ビルドの手順を加え、v1.14.1 のリリースをやり直し、そこから dylib をとってくるように実装、という感じです。 (余談ですが、VOICEVOX/onnxruntime-builder の linux arm64 向けのリリースは、今後は使われなさそう? armhf のビルド済みバイナリは公式には提供されていないので今後の対応のためにビルドする意味がありますが、arm64 版の方は現在は microsoft/onnxruntime からとってきているので……) とはいえ、
これが一番手っ取り早そうでもあります( @HyodaKazuaki さんがビルドしたものを使うのも良いですし、ビルド手順を教えていただければこちらでビルドすることもできそうです)。 |
iOS向け動的ライブラリのビルド、そして他のprebuildと同じような扱いができるようにファイル移動などを行った処理は以下の部分にあります。 microsoft/onnxruntime のRustコードのコンパイル方法にはiOS向けビルドに必要なオプションがないので |
コアは全体的に1.14.1を使っていく方針にするのが良いのかなと思いました!
あ、ビルドしてましたっけ。 他に判断が必要なとことかあればいつでもお呼びください! 🙏 |
VOICEVOX/onnxruntime-builder#15 に書いたような問題 (v1.14.1 向けの Android バイナリが利用できない)がわかったため、今のところ onnxruntime は v1.14.0 を使うように変更する見込みになったことをメモしておきます |
皆さんのご協力のお陰で、このIssueの残りタスクはprocess_pathのiOSサポートとvoicevox_coreへのiOSビルドのアクション追加のみとなりました。 process_pathについては、先日からPRを送っているものの、リポジトリオーナーから特にアクションがなかったのでリマインドを行いました。もしこのまま反応がなかったり、iOSサポートが必要ないなどの判断によってPRがマージされない場合はVOICEVOX側でprocess_pathをforkする必要があるかと思います。 voicevox_coreへのiOSビルドのアクション追加については、近いうちにDraftとして公開したいと思います。 |
こちらこそ作業ありがとうございます!
そうですね! スマホ版 VOICEVOX の開発をどんなスピード感で進めるかによりますが、もう fork を検討してもよいかもしれません( @Hiroshiba さんの判断次第ですね)。本家で iOS 対応が追加されたらそちらに切り替える感じで良さそうでしょうか。 |
forkでもcoreにsubmodleとして追加するでも良いと思います!! |
では同じPRをそちらにも出しておきます。 |
内容
Androidビルドがついにできたようですので、iOSビルドも追加されると嬉しいです。
Pros 良くなる点
Cons 悪くなる点
実現方法
その他
すでに手元でiOS向けビルドを生成済みです。 https://twitter.com/HyodaKazuaki/status/1641263474511843328
まだ実際に生成できるかは確認できていません。
加えて、iOS向けビルドではiphoneosとiphonesimulatorというSDKがあり、例えばSDKにiphoneosを指定してビルドしたライブラリはXcodeのシミュレータで動かすとエラーが出ます。ですので両方のSDKでビルドしたものを含むライブラリを作るか、更にFrameworkにしてしまう必要がありそうです。
iOSアプリを開発した経験がほとんどないので誤っている点などあるかもしれませんが、ご指摘いただけると幸いです。
The text was updated successfully, but these errors were encountered: