Windows / LinuxからiOSでのコンパイルにRoboVMを適合させます

1年半後、MicrosoftはRoboVMを誤ってXamarinのバスケットに入れてシャットダウンしました。 すでに公式のrobovm.comは忘却の中に沈んでいます。 最新のオープンソースバージョン1.8はMobiVMによってフォークされ、 人工呼吸について 正常に動作しています。







RoboVM自体(以降、MobiVMフォークと呼びます)はMacOSXと密接に絡み合っており、Windows / Linuxで実行されている元の形式では、コードを記述できてコンパイルできないというメッセージが表示されます。 cmakeファイル/ネットワークでのWindowsの言及に応じて、私は電話を受け入れ、問題を何らかの結果に導くことにしました。







あなたが必要になります:









最初の4つのポイントには特別な質問はありませんでした。









概念実証(または迅速な内訳)のために、ソースコードは大まかに切り刻まれ、膝の部分はすべてクロスコンパイルされ、8月にWindowsからの最初の実行可能ファイルがリンクされました。 コード署名では、それは面白くありませんでした。 saucelabs / isignを使用して救急車に同じ方法で署名しようとしても成功しませんでした:ユーティリティは、署名済みのアプリケーション(LC_CODE_SIGNATUREを強調表示)、依存関係でopensslをドラッグし、Pythonの最高の伝統で書かれたアプリケーションにのみ再署名できました。 Appleからのcodesignのソースコードが閉じられていないことは注目に値しますが、Macプラットフォーム用ではないソースコードのビルドは複雑で、未解決の依存関係でいっぱいです。

問題の解決策は自然に生まれました。私は自分で書きました 自転車 Javaのコードサイン 。 根拠は重要です。 理解を深めるために、最初に署名検証者を作成し、それを180度展開することで署名者を受け取りました。







最初の成功! Xcodeのユーティリティを必要としない単純なアプリケーション(コードの干渉部分もすべて容赦なくカットされました)がデバイスで起動されました。 10月が終了しました。







その後、ルーチンが始まりました:ソースコードを活性化し、プラットフォーム固有のコードをファサードの後ろに移動し、(Xcodeに類似した)ユーティリティーのサロゲートセットを作成し、クロスコンパイルの苦痛と涙と長時間のアセンブリを行いました。 ルーチンを特異な方法で希釈しました:リンカーをcygwin



からMinGW



下のアセンブリによく知られた方法で移植しましたposix



機能を利用可能なサロゲートに置き換え、たとえば、260文字のパス制限をドラッグするなど、新しい副作用を追加しました。 しかし今では、Linuxの下から、獣医たち全体が1か所に移動していました。







結果はこのセットです:









結果は楽しいプロジェクトでしたが、現在はApple機器以外でiOS SDKを使用するライセンスに限定されています。 しかし、Windowsをポピーの上に置いて、その下から完全にクロスコンパイルできます!







参照:










All Articles