2013-04-09 23 views
5

fork();を実行して、App Sandboxの整合性をチェックして、デバイスがjailbrokenされているかどうかを検出するメカニズム(iOSアプリケーション)を作成しています。この呼び出しを試みるとApp Storeのガイドラインに違反するかどうかは誰にも分かりますか?iOSアプリケーションのfork()はアップルの査読プロセスによって拒否される可能性がありますか?

+0

これはしばらくお待ちしています。 'fork()'を使ってストアにアプリを持ってきたことがありましたか?私は興味がある。 – mpontillo

+0

私も知りたいのですが、私はUnixのcmdlineユーティリティのラッパーであるアプリを持っています。もしそれを 'fork()'してから、そのユーティリティの 'main()'関数を呼び出すことができれば、スレッド内で実行する[ユーティリティは 'exit()'と呼ぶことができる場所がたくさんあるので、forkしたプロセスはスレッドよりも良いでしょう] – Alnitak

答えて

4

jailbrokenされていないデバイスのiOSアプリケーションで新しいプロセスを作成することはできませんが(「操作が許可されていません」などのエラーが発生します)、pthreadライブラリを使用して新しいスレッドを作成できます。

編集:しかし、デバイスが脱獄されているかどうかを検出しようとしている場合、私はフォークを行うために店のガイドラインに違反するとは思わないが、技術的な問題質問。

アプリストアのガイドラインには、低レベルのAPIを使用することを禁止するものは何も見つかりませんでした。脱獄は存在しないので論理的ですが、あなたができないことをあなたが禁じることは何でしょうか?私が見つけた

最も近いものがあります:どのような方法でコードをダウンロードしたり、フォームが

  • アプリを拒否されます
  • アプリを拒否され、その指定されたコンテナエリア外のデータを読み書き

    • アプリ他の実行可能コードをインストールまたは起動することは拒否されます。
  • +2

    'fork()を呼び出すと、実際には' -1 ' ) 'を実行します。 (そしておそらく 'Tue Apr 9 03:06:41 unknown sandboxd [84] :HelloWorld(80)あなたのログにprocess-fork'を拒否しています)OPは動作しているかどうかを確かめるためにこれを単純に呼びたいと思っています。 – Nate

    +0

    はい私は最初に質問を誤解していたので、私は私の回答を編集したのです。 – zakinster

    +0

    @Nate – Ocelot

    0

    fork(2)が拒否される可能性があります。デバイスがjailbrokenであるかどうかを確認することが目的の場合は、APTの存在を確認できます。私の経験、フォルダが/private/{etc,var}/aptに存在する(APTのconfigureとキャッシュディレクトリ、動作するようにCydiaので必要とされるが、バニラiOSデバイス上に存在しない)かどうかを確認しようとしたアプリから

    NSFileManagerが拒否されません使用して存在しています。

    +0

    編集のおかげで、別の解決策はないのでしょうか? – Ocelot

    5

    fork()(その他)は拒否されません。バニラOSによって拒否された操作は、提出中に再現することはできません。 私はappstore上でfork()とsystem()を使って脱獄環境をチェックするアプリケーションを持っていますが、どれもこれに対して拒否されていません:)

    関連する問題