Skip to content
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のApp Storeへの申請を通るようにした #723

Merged
merged 26 commits into from
Feb 29, 2024

Conversation

nekomimimi
Copy link
Contributor

@nekomimimi nekomimimi commented Jan 5, 2024

内容

iOS版がApp Storeへの申請が通らなかったため、
現状、xcframeworkの中に直接、動的ライブラリが入っていたが、
xcframeworkの中にframeworkを作り、その中に動的ライブラリを入れた。

関連 Issue

ref #715

その他

1.onnixruntime側の修正とセットです。
VOICEVOX/onnxruntime-builder#25

2.利用する時のヘッダーファイルがデフォルトでは
#include "voicevox_core.h"
でしたが、
#include <voicevox_core/voicevox_core.h>
に変わります。
(iOSのframeworkでの標準的な位置となります)

3.テストはsample.vvmで簡単に動作を確認し、AppStoreに申請して受理されることを確認しました。

@Hiroshiba
Copy link
Member

Hiroshiba commented Feb 4, 2024

すみません、大変お待たせしました!!!
ほぼLGTMです!!

ほぼというのは、ちょっとコードを共通化できそうだったので提案になります!
例えばなのですが、Create FrameworkChange @rpathそれぞれで、simとaarch64の2種をまとめて1ブロックずつにするのはどうでしょう?

特にChange @rpathの方は-sim-aarch64の違いだけしか無いと思うので、for文でfor arch in "sim" "aarch64"とすれば処理コードを共通化できそうに思いました!

yamlファイルに書くのが大変であれば、別途.bashコードを/build_util/に置く形でもOKです。(むしろそっちのほうがメンテナンスしやすい・・・。)
bashスクリプトがそこそこ書けないと結構大変なのですが、見たところしっかりしたコードだったのでお伺いしてみた次第です。
もしよければ・・・!!

@nekomimimi
Copy link
Contributor Author

はい。bashスクリプトを書く方向で直してみたいと思います!

@Hiroshiba
Copy link
Member

ありがとうございます!!!ぜひ!!!

@nekomimimi
Copy link
Contributor Author

nekomimimi commented Feb 5, 2024

Bashスクリプト化して、ループによる共通化をし、動作確認しました〜!
(onnxruntime-builderのほうも同様の修正をした方がいいのかな?)

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

すごく読みやすく感じました!!!
VOICEVOXは全体的にyamlの中に書く運用だったのですが、ここまで読みやすくなるならちょっと見直していきたいなと感じました!

(onnxruntime-builderのほうも同様の修正をした方がいいのかな?)

もしお時間あればお願いしたいです!!
あ、いったんこちらが一段落してからでも!

build_util/ios_xcframework.bash Outdated Show resolved Hide resolved
build_util/ios_xcframework.bash Outdated Show resolved Hide resolved
build_util/ios_xcframework.bash Outdated Show resolved Hide resolved

echo "* Create dylib"
# aarch64はdylibをコピー
cp -v "artifact/voicevox_core-aarch64-apple-ios/libvoicevox_core.dylib" \
Copy link
Member

@Hiroshiba Hiroshiba Feb 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

入出力のディレクトリ、
artifact/voicevox_core-x86_64-apple-ios
artifact/voicevox_core-aarch64-apple-ios-sim
artifact/voicevox_core-aarch64-apple-ios
artifact/${ASSET_NAME}
は外から引数、あるいは環境変数として与えられるようにしておくと便利かもと思いました!

というのも、たとえばbuild.yamlの方でartifactのディレクトリ名を変えたとき、こっちのbashファイル内のディレクトリ名を変えるのを忘れそうなんですよね。
引数や環境変数で与えるようにすればどこを変えればよいかわかりやすいかなと!

Copy link
Contributor Author

@nekomimimi nekomimimi Feb 9, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

入出力ディレクトリをyaml側からbash側に入れるようにしました。
少し気持ち悪い点がありまして、
yaml側の環境定義で
ASSET_NAME: voicevox_core-ios-xcframework-cpu-${{ needs.config.outputs.version }}
ASSET_PATH: artifact/voicevox_core-ios-xcframework-cpu-${{ needs.config.outputs.version }}
と記述に重複があります。
(envの中で前に定義したのが使えないようで、次のstepsで
echo "ASSET_PATH=artifact/${ASSET_NAME}" >> $GITHUB_ENV
とできるようなのですが、わかりにくいので現状はこれにしました。)

@nekomimimi
Copy link
Contributor Author

指摘の通り直す方向で行きたいと思います。
onnxruntime-builderの方は、こっちが固まってから行きたいと思います〜

@nekomimimi
Copy link
Contributor Author

レビュー頂いた箇所の修正が完了したのでお知らせします〜

@Hiroshiba
Copy link
Member

@PickledChair @qryxip @HyodaKazuaki
もしよかったらレビューいただけると心強いです・・・! 🙇

Copy link
Member

@Hiroshiba Hiroshiba left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTMし忘れてました!! LGTM!!!

Copy link
Member

@PickledChair PickledChair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

xcframework については詳しくないのですが、たぶんほぼ問題はないと思いました……!

一箇所気になったところにコメントしました

.github/workflows/build_and_deploy.yml Outdated Show resolved Hide resolved
Copy link
Member

@PickledChair PickledChair left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@HyodaKazuaki
Copy link
Contributor

HyodaKazuaki commented Feb 28, 2024

コードチェック&動作チェックできました、LGTMです!
App Store提出まで検証していただきありがとうございます 🙇

@Hiroshiba
Copy link
Member

PR&レビュー&検証ありがとうございます! マージします!

@Hiroshiba Hiroshiba merged commit 9f87faf into VOICEVOX:main Feb 29, 2024
31 checks passed
@nekomimimi nekomimimi deleted the add_framewodks branch March 1, 2024 01:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants