macOS Sierra、Xcode 8.2iOSシミュレータをサンドボックスで実行する
Xcode iOSシミュレータをサンドボックスで実行したいので、テストしているアプリケーションのネットワーク接続を制限できます。
(version 1)
(allow default)
(deny network*)
その後、私はこのようなシミュレータを実行しました::
Based on what I saw hereは、私はこのようなサンドボックスファイルを作成しsandbox-exec -f ~/Desktop/block_network.sb /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/Contents/MacOS/Simulator
これが適切に管理されている他のどんなプロセスにシミュレータを接続していないようですそれ。 simは起動しますが、デバイスが見つからないとし、Xcodeで実行するだけで別のシミュレータが起動します。私も私の端末でこのエラーが表示されます:CoreSimulatorService connection became invalid. Simulator services will no longer be available.
アイデア?
また、すべてが許可されるように、(deny network*)
をsbファイルから削除してみました。同じ問題。
ありがとうございますが、これをサンドボックスファイルに追加すると同じエラーが表示されます。ログにサンドボックス違反はありません。私はサンドボックスに「拒否」ルールがなくても機能しないので、サンドボックス内で実行するだけで、それを破るようです。 – sudo
パスはサンドボックスディレクトリにルートされるので、必要なファイルが見つからない可能性があります。 'fs_usage'をチェックして、どのパスがサンドボックスの下でアクセスしようとしているのかを調べることができます。 – russbishop
これは理にかなっていますが、 'fs_usage'を見ると、" Simulator "、" Xcode "、" sandbox "を含むすべての行は、'〜/ Library/Containers/[...] 'と呼びます(サンドボックスのルートディレクトリはiWorkアプリがアクセスしているのがわかります)。 – sudo