6

メインアプリとヘルパーで構成される 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 で具体的に動作しない理由がわかりましたか?

ありがとう !

4

0 に答える 0