メインアプリとヘルパーで構成される Mac OS アプリに取り組んでいます:
Backup.app/
└── Contents
├── Library
│ └── LoginItems
│ └── BackupHelper.app
├── MacOS
│ └── Backup
Backup.app : パスを選択し、アプリ スコープのセキュリティ ブックマークを保存するようにユーザーに依頼します。 BackupHelper.app : このパスをバックアップします。
Backup.app と BackupHelper.app の両方がサンドボックス化されています。
SMLoginItemSetEnabled を使用してログイン時に開始するように backupHelper アプリが登録されます。
BackupHelper.app が Backup.app によって保存されたブックマークにアクセスする必要がある場合、
Backup.app (いくつかのパラメーターを使用) を呼び出して、最終的な NSURL (applesecurityscope パラメーターを使用したもの) を取得する必要があります。
NSTask を使用して Backup.app を起動しようとすると、NSTaskTerminationReasonUncaughtSignal で終了し、次のスタックトレースを取得しました。
Process: Backup [18095]
Path: /Applications/Backup.app/Contents/MacOS/Backup
Identifier: Backup
Version: 1.0 (1)
Code Type: X86-64 (Native)
Parent Process: BackupHelper [18093]
Responsible: BackupHelper [18093]
User ID: 501
Date/Time: 2013-11-04 10:23:06.016 +0100
OS Version: Mac OS X 10.9 (13A603)
Report Version: 11
Anonymous UUID: 84A150C3-31C4-BE29-AAC9-338910633B1C
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_INSTRUCTION (SIGILL)
Exception Codes: 0x0000000000000001, 0x0000000000000000
Application Specific Information:
Could not set sandbox profile data: Operation not permitted (1)
Application Specific Signatures:
SYSCALL_SET_PROFILE
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libxpc.dylib 0x00007fff9079c5a1 _xpc_runtime_init_once + 2482
1 libdispatch.dylib 0x00007fff8e59c2ad _dispatch_client_callout + 8
2 libdispatch.dylib 0x00007fff8e59c21c dispatch_once_f + 79
Backup.app を直接起動しようとすると正常に動作し、同じ NSTask で別のアプリを起動しようとすると同様に動作します。Backup.app で具体的に動作しない理由がわかりましたか?
ありがとう !