6

アプリにスケジューリングを追加する必要があります。指定した日時にアプリが自動的に起動するようにします。Scheduling Timed Jobsを参照して実行しました。スケジューリング用の plist ファイルを に配置しました/Users/username/Library/LaunchAgents。サンドボックス化されていないアプリではうまく機能しますが、サンドボックス化されたアプリでは機能しません。スケジューリング ファイルをパスに追加できません/Users/username/Library/LaunchAgents。それは私にエラーを与える

Error Domain=NSCocoaErrorDomain Code=513 "“com.sample.schedule.plist” couldn’t be copied because you don’t have permission to access “LaunchAgents”." UserInfo=0x100114f10 {NSSourceFilePathErrorKey=/Users/username/Library/Developer/Xcode/DerivedData/SchedulingInSandbox-cernhnigkuqhehbndryxlekpiiiu/Build/Products/Debug/SchedulingInSandbox.app/Contents/Resources/com.sample.schedule.plist, NSUserStringVariant=(
    Copy
), NSDestinationFilePath=/Users/username/Library/LaunchAgents/com.sample.schedule.plist, NSFilePath=/Users/username/Library/Developer/Xcode/DerivedData/SchedulingInSandbox-cernhnigkuqhehbndryxlekpiiiu/Build/Products/Debug/SchedulingInSandbox.app/Contents/Resources/com.sample.schedule.plist, NSUnderlyingError=0x1001132d0 "The operation couldn’t be completed. Operation not permitted"}

エンタイトルメントにも LaunchAgents パスを追加しました。

<key>com.apple.security.temporary-exception.files.home-relative-path.read-write</key>
<array>
    <string>/Library/LaunchAgents/</string>
</array>

しかし、まだ LaunchAgents ディレクトリにスケジューリング plist を追加できません。私が正しくやっているのか、サンドボックスアプリでスケジューリングを行う別の方法があるのか​​ 。

編集 1:
フォルダーを手動で作成し、/Library/Containers/LaunchAgentsそこに plist を配置すると、次のエラーが発生します。

Could not open job overrides database at: /private/var/db/launchd.db/com.apple.launchd.peruser.501/overrides.plist: 1: Operation not permitted
launch_msg(): Socket is not connected
4

1 に答える 1

1

ジョブ plist を入れてみてください

/Users/<username>/Library/Containers/<my app identifier>/Data/Library/LaunchAgents/<my app identifier>.<somename>.plist

これは、サンドボックス化されたアプリのデータ コンテナーになります。

私の Mac を見ると、FaceTime には 2 つのスケジュールされたジョブ plist があり、おそらく例として使用できることがわかります。

于 2013-05-29T20:44:49.680 に答える