2016-10-21 14 views
0

シミュレータを起動せずに、IBDesignablesのUIKitコードをXcodeで実行できることに気付きました。 macOSアプリであるIBDesignablesAgentCocoaTouchツールを使っているようです。どのようなものを実装することができますか?シミュレータなしのiOSコードの実行

+0

あなたは何をしたいですか? –

+0

シミュレータなしでユニットテストをしたいですか? –

+0

基本的にはIBDesignablesAgentCocoaTouchと似ていますが、Xcodeはありません。 – krzat

答えて

0

x86_64向けにコンパイルされたiOSアプリケーションは、実際には正常なmacOSアプリケーションであり、異なるフレームワークに対してリンクされているだけです。シミュレータフレームワークは、これらのフレームワークがiOSハードウェアでの動作と同様に機能するために必要なランタイムを提供します。 IBDesignablesAgentCocoaTouchデーモンは、Xcodeを変更するたびにUIのスナップショットを取得できるだけの十分なiOSサブシステムを起動します。理論的には、シミュレータとは異なる方法で部分的または完全にiOSサブシステムをスピンアップすることは可能ですが、インストール時に署名した開発者ライセンス契約を侵害する可能性が高く、配布には合法的ではありません。法的にもそうでなければ、それはかなり事業であり、システムへの各変更に伴い破綻する可能性が非常に高い。ここ数年でシミュレータのフレームワークがどれほど広く変化したかを見れば、アップル以外の開発者にとってこれがどれほど難しいかを知ることができます。

たとえば、テストのために非UIコードを実行する必要がある場合は、macOSターゲットを作成してその中にUI以外のものをすべて含めるなど、テストのために必要最小限のUIを出してください。

iOSフレームワークを使用してマルチプラットフォーム開発を行い、シミュレータ外のApple iOSフレームワークを使用してマルチプラットフォーム開発を実行する場合、これは法的ではありません(iOSフレームワークはmacOSでは通常配布されておらず、Xcodeをインストールする必要があります)。ユーザーがアプリケーションが実行しているプラ​​ットフォームでネイティブに動作することを期待しているので、良い考えではありません。 iOSのUIコンセプトはタッチ入力に最適ですが、精密ポインタ入力エコシステムでは適切ではありません。

+0

回答ありがとうございます。だからIBDesignablesAgentCocoaTouchはミニシミュレータのようなものですか?それはいいね。 – krzat

+0

私は契約を破るつもりはありませんでした。好奇心から尋ねるだけ。そしておそらくそれはデバッグ目的のために使われるかもしれません。 – krzat

関連する問題