3

Xcode からターゲットを起動すると、XPC 通信は正常に機能します。しかし、アイコンをダブルクリックしてサービスとクライアント アプリを手動で起動すると、接続無効化メッセージが表示されます。 .

4

1 に答える 1

1

を使用して同じ問題に遭遇したすべての人々にとってxpc_connection_create_mach_service:XPCは多くのlaunchdのものを処理します。xCode でアプリをデバッグする場合、アプリと launchd 接続を仲介しますが、xCode がなければ自分で行う必要があります。

これを有効にするには、launch plist ファイルを使用して launchd から起動する必要があります。ここにそのような plist の例がありますが、それだけでは十分ではありません。トリックはMachServices鍵であり、次のようになります。

<key>MachServices</key>
<dict>
<key>com.server.bundle-id</key>
<true/>
</dict>

これが mach サービスを作成する方法なので、XPC 接続の下にいくつかの mach ポートがあると思います。

于 2019-11-28T16:15:40.323 に答える