6

アプリをサンドボックスで動作させようとすると、この問題で行き詰まります:

ログイン項目にアプリを追加する必要があるため、次の手順に従いました。

  • 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.appSMLoginItemSetEnabledのバンドル ID で登録しました

すべて正常に動作するようになりましたが... MyNewApp.app が MyNewApp.app起動しようとするとエラーが発生します:

LSOpenFromURLSpec() returned -10827 for application /Applications/MyNewApp.app path (null).

しかし、HelperApp.app を使用して、サンドボックス化されていない (つまり、Steam.app) アプリを起動しようとすると、魅力的に機能します!

アプリを起動する別の方法はありますか? おそらく NSWorkSpace は、サンドボックス コンテキストで許可されていない関数で動作します。何を指示してるんですか?

4

1 に答える 1

4

サンドボックスでログイン時に起動する方法に関する私のチュートリアルをご覧になることをお勧めします。

于 2012-07-03T21:41:50.677 に答える