私はサンドボックスアプリケーションを持っています。起動するたびに(メインアプリケーションのバンドルから)ヘルパーアプリケーションを起動する必要があります。しかし、これは失敗します。サンドボックスアプリケーションからヘルパーを起動
NSError *error;
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:helperURL
options:NSWorkspaceLaunchDefault
configuration:nil
error:&error];
エラーは次のとおりです。
The application “Helper” could not be launched because it is corrupt., NSUnderlyingError=0x10214c700 "The operation couldn’t be completed. (OSStatus error -10827.)"}
を今、私はサンドボックスの権利を無効にするとアプリが起動細かいので、誤差は、誤解を招くおそれがあります。どうやらこれはバグで、報告されているようにhereです。
私の質問はですか?回避策はありますか?
hereが説明するように、私は、SMLoginItemSetEnabled
を使用することができます。
Pass
true
to start the helper application immediately and indicate that it should be started every time the user logs in. Passfalse
to terminate the helper application and indicate that it should no longer be launched when the user logs in.
をしかし、私は理由のApp Storeレビューガイドライン2.26で、最初のユーザに尋ねることなく、このAPIを使用することはできません。
Apps that are set to auto-launch or to have other code automatically run at startup or login without user consent will be rejected
この回避策を使用すると、ユーザーに「ログインするたびにヘルパーを起動してもよろしいですか?そうでない場合、このアプリを使用することはできません!明らかに、それは理想的ではないのです...
アプリが試していてもlaunchApplicationAtURLが失敗して以来、これはrdar:// 10934199起動は既にユーザーによって手動で開始されている – valexa
あなたのアプリが実行されているかどうかをチェックしてヘルパーアプリを起動するユーザー起動エージェントをインストールする権限を取得できますか? – Colin