-
Notifications
You must be signed in to change notification settings - Fork 117
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にサブミットすると問題がありと指摘され受取拒否される。 #715
Comments
回避策以下のように回避できましたので、ご参考まで。 方針xcframeworkの中に、ios-arm64-simulatorとios-arm64のframworkをぞれぞれ作りその中にダイナミックライブラリを入れる。 方法例空のframeworkを作りダイナミックライブラリを上書きし、それをxcframework化します。 1.空のフレームワークの作成onnixrunntimeなどの名前で空のframeworkのprojectを作って、TargetのGeneralのMinimum Deploymentをonnixruntimeでは16.0、voicevox_coreでは16.2とする。 2.ダイナミックライブラリ名の変更libonnxruntime.1.14.0.dylibの名前を1.に合わせてonnxruntimeとしたいので、
としてframeworkを上書き。 3.xcframeworkにするios-arm64-simulatorとios-arm64をくっつける。
などとする。 4.rpathの変更今の自分自身のrpathが@rpath/libonnxruntime.1.14.0.dylibとなっていて見つからないので
voicevox_coreも1.〜4と同様にする。 5.voicevox_coreの依存のrpathの変更加えて、voicevox_coreはonnxruntimeに依存しているので、それを見つけるためrpathも変更する。
|
詳細なissue作成とコメントありがとうございます!!! ちなみにビルドもOSSで管理しているので、どのようなビルドコードになっているかは見れたりします。 onnxruntimeのxcframeworkのビルド箇所はこちらです。 voicevox_coreのxcframeworkのビルド箇所はこちら。
見た感じの雰囲気的に、ちょっとコードを足せばよさそう・・・・・・・・・・? |
workflowが何一つわからないので、年内、直せそうかを試してみて、無理そうだったらgive upします〜。 |
おお!!チャレンジしてくださるの嬉しいです!! |
大体上の説明で理解しました。ありがとうございます! 2点質問があります。 1.onnxruntime 試しにforkして1.15.1を指定してbuld.ymlを実行したら、エラーとなりました。 2.ファイルの置き場
|
はい、そちらのリポジトリになります!
おっと・・・! ↓の感じで、バージョン3.12未満のPythonをインストールすると良さそうです! voicevox_core/.github/workflows/python_lint.yml Lines 25 to 27 in f184995
(たぶん、ubuntu上で apt install されているpythonもついでに削除できると思います!)
ちょっとわかってないのですが、たぶん大丈夫なのかなと思っています!
こちらですが、もしよかったらどういう例を懸念されているかお聞きしてもよろしいでしょうか 🙇 |
動きました。ありがとうございます!
自分が相当勘違いしてたようなので忘れてください🙇 |
@nekomimimi すみません遅くなりました!! とりあえずの応急処置ですが、 ちょっと原因は引き続き調査中です。キャッシュ周りが悪さしてそうな予感・・・? 調査結果(わからんという結論)とりあえずファイルの中身に https://github.com/VOICEVOX/voicevox_core/releases/tag/0.15.0-preview.16 の
https://github.com/nekomimimi/voicevox_core/releases/tag/0.15.0-preview.18 の
ありえるとしたらrust-cache・・・・・・・? voicevox_core/.github/workflows/build_and_deploy.yml Lines 255 to 256 in 4e13bca
|
はい。気にせず作業を進めます! (試したところでは #716 から発生しているようでしたが、原因わからずでした。) |
テスト中、エラーが出て原因を調べてまして、 ERROR voicevox_core::helpers: Caused by: ERROR voicevox_core::helpers: Caused by: Failed to create session: Error calling ONNX Runtime C function: Failed to load model because protobuf parsing failed. 現状、どこかバージョンがズレてるのかなと考えて、もし、以下で問題になりそうな点があったら教えてください。 特に疑問点は 現状の組み合わせは、 2.onnxruntime 3.voicevox_core |
実際に使われているキャラクターの声のモデルは暗号化されており、その復号コードはHiroshibaさんしかビルドできません。 ので、解決策としては:
だと思います。 |
ありがとうございます。原因にたどり着けた気がします。とりあえずは、sample.vvmを使ってテストします。 |
不具合の内容
手元で動いてるVOICEVOXライブラリを含んだiOS版アプリをApp StoreにサブミットするとUploadが完了するがその後、
ITMS-90426: Invalid Swift Support - The SwiftSupport folder is missing. Rebuild your app using the current public (GM) version of Xcode and resubmit it.
と指摘があり受取を拒否される。
環境
voicevox_core: 0.15.0-preview.16
(voicevox_core-ios-xcframework-cpu-0.15.0-preview.16.zip)
onixruntime: 1.14.1
(onnxruntime-ios-xcframework-1.14.1.zip)
Xcode Version 15.1 (15C65)
MacOS Sonoma 14.1.1
現象・ログ
再現手順
新規プロジェクトを作り正常にサブミットできることを試した後に再度サブミットし、上記エラーを受ける手順となります。
AppleのDeveloperのアカウントがあり証明書が設定されているStoreへアプリをサブミットできる環境の下で、以下の手順で再現します。
①XCodeで新規プロジェクトを作る。
②App Store Connect側にプロジェクトと同じBundle Identifierのアプリ情報を登録する。
③適当にAssetsにアイコン、プロジェクトのTargetのGeneralのDisplay Name(アイコン下の名前)を適当に設定する。(最低限ストアーへのサブミットを通すため)
④リリース用にAny iOS Device(Arm64)などに向けてArchive。
⑤OrganizerのArchivesから今回のアプリを選んでDistribute AppをするとバイナリーをApple側で受け取ってくれる。メールでcompleted processingが来るのでこれを確認。
⑥Onnix runtimeを追加する。
プロジェクトのTargetのGeneralのFrameworks, Libraries, and Embedded Contentから + をおしてonnxruntime.xcframeworkのファイルを追加。(onnixruntimeがembedでsignedになるはず。)
⑦再度、④⑤のアーカイブとサブミットを行うと、今度はUploadは成功するが、後ほどメールでITMS-90426: Invalid Swift Supportと通知があり受取拒否される。
(voicevox_coreも確認が必要ですがとりあえずonnxruntimeだけを試しています。)
期待動作
AppleのApp Storeでバイナリーを正常に受領される。
VOICEVOXのバージョン
(voicevox_core-ios-xcframework-cpu-0.15.0-preview.16.zip)
(onnxruntime-ios-xcframework-1.14.1.zip)
OSの種類/ディストリ/バージョン
iOS 17.1.2
その他
原因はiOSの
onnxruntime.xcframework
voicevox_core.xcframework
にダイナミックライブラリーを含んでいるためと推測しています。
公式ドキュメントでは以下のように書かれています。
https://developer.apple.com/documentation/xcode/creating-a-multi-platform-binary-framework-bundle
Avoid using dynamic library files (.dylib files) for dynamic linking. An XCFramework can include dynamic library files, but only macOS supports these libraries for dynamic linking. Dynamic linking on iOS, watchOS, and tvOS requires the XCFramework to contain .framework bundles.
(翻訳 - .dylib ファイルをダイナミックリンキングに使用しないでください。XCFramework には .dylib ファイルを含めることができますが、ダイナミックリンキングにこれらのライブラリをサポートしているのは macOS のみです。iOS、watchOS、および tvOS でのダイナミックリンキングには、XCFramework が .framework バンドルを含んでいる必要があります。)
これは、ゲームエンジンのGodot Engineで同じ文言の同じ事象があったようです。
godotengine/godot#86224
The text was updated successfully, but these errors were encountered: