質問: こちらの質問をしたものです。 マルチプラットフォームで動作するJavaScriptのランタイムエンジンを探していて、皆さんのアドバイスもあってBaristaCoreというChakraCoreを使い.NET Standardで実装されたフレームワークを見つけたのですが、いざ開発してみるといきなり壁にぶち当たってしまいました。 MacとiOSで試すためにUnityを使ってテストを行いました。 こちらのトピックを読みながらそのままで書いていたのですが、Macでは期待した動作をしてくれたのですがiOSにビルドしてみると上手く動作しませんでした。 そこで Xcodeのログを読むと以下のようになっていました。 ``` InvalidOperationException: A suitable constructor for type 'BaristaLabs.BaristaCore.BaristaRuntimeFactory' could not be located. Ensure the type is concrete and services are registered for all parameters of a public constructor. ``` エラー文で調べると`BaristaRuntimeFactory`のコンストラクタが`private`になっている可能性があると出たので早速ソースを読みましたが、コンストラクタは`public`になっていました。 これは私が何か前提を間違えているのか、BaristaCoreはiOSでは使えないのかが分かりません。 Unityのビルド設定でしなければいけないことがあるかも知れませんし、XcodeのLinked Frameworks and Librariesの欄に何か追加しなければいけないのかもしれません。 考えられる可能性は何でも教えていただきたいです。 かなり欲しい条件を満たしているので、できればこのままBaristaCoreを使いたいです。
回答: 逆にBaristaCoreがiOSで動作するという根拠が判りません。 該当ページの README.md にも、そこで紹介されている Roadmap にも、macOSは記載されていますが、iOSはありません。 README.md > > Provides a sandboxed JavaScript runtime natively to a .Net Standard 2.0 application on Windows, Linux and macOS. > > > Roadmap > > Continuous Integration > > ☑ Automated Cross-Platform builds w/ Unit Tests > > ☑ Windows > > ☑ Linux > > ☑ macOS > > Automated Releases > > NuGet > > Chocolatey > > Apt-Get > > Brew > > > ChakraCore自身もiOSで動かしたことはあるようですが、公式サポートはされていないようです。 How can i build ChakraCore for IOS? #3179 > > There is no build configuration for iOS today. Some friends of the project have made it work on iOS, but there is not a PR or public fork at present. > > > ただし、誰もテストしていないだけで、動くのかもしれませんが、 その場合は誰か(貴方?)が動作確認やサポートのプロジェクトを立ち上げて 推進していく必要があるでしょう。 追記 古い記事なので今も当てはまるか不明ですが、こんな情報があります。何か参考になれば。 Xamarin.Mac (か Xamarin.iOS )から netstandard2 を使用する方法 Xamarin.Mac and netstandard2 Unable to build iOS project that references a NET Standard 2.0 library Xamarin(Formsもね)で.NET Standard 2.0なライブラリを利用する .NET Standardなライブラリプロジェクトを作成して参照する さらに追記 こういう記事 Is the `JS engine` on `IOS` or `MaxOS's` Chrome browser `V8`?Or `JavaScriptCode`? や iOS版「Google Chrome」が速くない理由 があって、技術的や個人使用では可能でも、商用・公開ソフトとしては作れないのかもしれませんね。 > > AppleがiOSデベロッパーに課すライセンス契約(アプリ埋め込みでないスクリプト/インタープリタ機構の搭載を禁じる条項がある)により、... > > >