アプリをサンドボックスで動作させようとすると、この問題で行き詰まります:
ログイン項目にアプリを追加する必要があるため、次の手順に従いました。
Open exec でこのコードを実行するHelperApp.app (を使用) を作成します。
is agent = YES
NSString *appPath = @"/Applications/MyNewApp.app"; [[NSWorkspace sharedWorkspace] launchApplication:appPath]; [NSApp terminate:nil];
このアプリはサンドボックス化されています。
Contents/Library/LoginItems
サブパスと宛先を使用して MyNewApp.app バンドルにコピー ビルド フェーズを追加しましたwrapper
そして明らかにMyNewApp.appもサンドボックス化されています
MyNewApp.appで、 HelperApp.app
SMLoginItemSetEnabled
のバンドル ID で登録しました
すべて正常に動作するようになりましたが... MyNewApp.app が MyNewApp.appを起動しようとするとエラーが発生します:
LSOpenFromURLSpec() returned -10827 for application /Applications/MyNewApp.app path (null).
しかし、HelperApp.app を使用して、サンドボックス化されていない (つまり、Steam.app) アプリを起動しようとすると、魅力的に機能します!
アプリを起動する別の方法はありますか? おそらく NSWorkSpace は、サンドボックス コンテキストで許可されていない関数で動作します。何を指示してるんですか?