サンドボックス化されたアプリケーションがあります。ヘルパー アプリケーションを起動するたびに (メイン アプリケーションのバンドル内から) 起動する必要があります。ただし、これは失敗します。
NSError *error;
[[NSWorkspace sharedWorkspace] launchApplicationAtURL:helperURL
options:NSWorkspaceLaunchDefault
configuration:nil
error:&error];
エラーは次のとおりです。
アプリケーション「ヘルパー」は、破損しているため起動できませんでした。
サンドボックスの資格を無効にするとアプリが正常に起動するため、エラーは誤解を招く可能性があります。ここで報告されているように、どうやらこれはバグです。
私の質問は次のとおりです。回避策はありますか?
ここでSMLoginItemSetEnabled
説明されているように、私は使用できます:
ヘルパー アプリケーションをすぐに開始するために渡し
true
、ユーザーがログインするたびに開始する必要があることをfalse
示します。
ただし、App Store レビュー ガイドライン 2.26 のため、最初にユーザーに確認しないとこの API を使用できません。
自動起動するように設定されているアプリ、またはユーザーの同意なしに起動時またはログイン時に他のコードが自動的に実行されるように設定されているアプリは拒否されます
したがって、この回避策を使用すると、ユーザーに「ログインするたびにヘルパーを起動してもよろしいですか? そうでない場合、このアプリを使用できません!」と尋ねることになります。明らかに、それは理想的ではありません...