Avatar
ところでnomuraさんにはXPC周りで伺いたいことがあるのですが、よろしいでしょうか。 Xcode Source Editor ExtensionからXPCに連携させたいのですが、どうしてもうまくいきません。 1. TARGETS で XPC Service を新規作成 2. Bridging Headerに XXXProtocol.h を追加 3. ソースに以下を記述 let connection = NSXPCConnection(serviceName: "XPCのBundle Identifier") connection.remoteObjectInterface = NSXPCInterface(with: XcodeHelperProtocol.self) connection.resume() let xcode = connection.remoteObjectProxy as! XcodeHelperProtocol let semaphore = DispatchSemaphore(value: 0) xcode.upperCaseString("aaaa") { (str) in print(str) semaphore.signal() } _ = semaphore.wait(timeout: .now() + 10) XPC側を Wait for executable to be launched でRunさせたところ、プロセスのAttachすらできていないようでした。 なお、Cocoa App 側で同じことをやったところ、正常に連携できました。 Extensionだとうまくいかない要因が何かあるのでしょうが、nomuraさんのSwiftLintForXcodeでは連携できているのですよね… Projectの設定やinfo.plistの内容などをSwiftLintForXcodeからコピーしていっても一向に解決せず、とても不思議です。 何かコツがあれば、ご教授いただけたら幸いです。