問題タブ [xcode-extension]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
868 参照

macos - Xcode 拡張機能 + ヘルパー Mac アプリ + 起動引数?

注: 同様の質問がここにあるようです:サンドボックスで起動引数を使用してヘルパー アプリケーションを起動しますが、以下のソース コードでより完全な例を提供しています。

短い序文:

Xcode ソース エディター拡張機能 (Xcode 8 の新機能) を作成したいと思います。これは、トリガーされると、作成中のコンパニオン Mac アプリケーションを起動し、拡張機能をトリガーしたときにユーザーが表示していたソース ファイルの行を Mac アプリケーションに渡します。 .

ヘルパー Mac アプリケーションは、その編集機能を実行するためのインターフェイスをユーザーに提供します。ユーザーが変更を完了したら、何らかの「保存」または「コミット」ボタンを押すと、変更が Xcode 拡張機能に反映され、元のソース ファイル自体に反映されます。

私がこれまでに持っているもの:

ヘルパー Mac アプリ用の必要最小限の Mac アプリケーションを作成しました。現在実行しているのは、Application Delegate の applicationDidFinishLaunching(...) 実装で、渡された起動引数の文字列を作成し、その文字列をアラートのメッセージ本文として表示しようとすることだけです。以下を参照してください(ProcessInfo.processInfo.argumentsとCommandLine.argumentsの両方を使用してみました):

perform(with ...) 関数を介して呼び出されると、コンパニオン Mac ヘルパー アプリを起動する、かなり定型的な Xcode 拡張機能を作成しました。次のようないくつかの方法でヘルパー アプリを起動しようとしました。

NSWorkSpace の launchApplication(at: options: configuration:) を使用:

カスタム Process インスタンスを使用して bash コマンドを実行し、「open」と「fork」の両方を試します。

問題

ヘルパー Mac アプリをアーカイブ/エクスポートし、Applications フォルダーに配置しました。Xcode 拡張機能をビルドして実行し、テストすると、ヘルパー Mac アプリは正常に起動しますが、applicationDidFinishLaunching(...) でカスタム起動引数を取得しません。

ここにあるNSWorkSpace の構成オプションの定数キーのドキュメントを含む、いくつかの場所で読みました:

ターミナルから同じ bash を実行すると:

ヘルパー アプリは、渡された --args を正常に読み取り、アラートに表示します。アプリのサンドボックス化が原因でこれが不可能ではないかと心配していますが、私が見逃している別の解決策があることを願っています. 可能であれば、他の代替アプローチも機能します。

  1. ヘルパー Mac アプリケーションの代わりに、Xcode 拡張機能自体にインターフェイスを持たせることができれば、問題はすぐに解決します。しかし、これが可能だとは思いません。

  2. ヘルパー Mac アプリを起動し、起動後に通信することもできますが、やはりサンドボックスの問題が発生する可能性があると思います。

なんといっても、私は主に iOS 開発者です。

助けてくれてありがとう、

  • アダム・アイスフェルド
0 投票する
0 に答える
65 参照

xcode-extension - Xcode Code Extension が動作していたがグレーになった

これは非常にイライラします。最終的に、Xcode ソース コード拡張機能を Xcode (デバッガーではなく) で動作させることができました。

1週間幸せでした。

いくつかのバグを見つけました。最初のものを修正し、すべてが引き続き機能しました。2 番目のバグを修正したとき、Xcode は拡張機能をグレー表示にしました。

再起動しても治りませんでした。Xcode-select では修正されませんでした。ああ、Apple の「コメントの選択」も同様にグレー表示になりました。

これが機能することを保証するための良い解決策はありますか?

0 投票する
1 に答える
136 参照

swift - XCSourceEditorCommandInvocation の迅速な拡張により、「認識されないセレクターがインスタンスに送信されました」という例外が発生する

(Xcode 拡張機能を追加するためのフレームワーク) のクラスに迅速な拡張機能を追加しようとするとXcodeKit、コンパイラはエラーなしで喜んでビルドしますが、コードを実行すると、次の例外が発生します。

以下は、例外を再現できるサンプル コードです。

過去に問題なく ObjC クラスを迅速に拡張したので、ここで少し立ち往生しています。

私はもう試した:

  • @objcメソッド宣言の前に追加します。
  • public拡張機能とメソッドに追加します。
  • 私はクラス クラスタを拡張していないので、この質問ではない可能性があります。
  • 私はプロトコルを拡張していないので、おそらくこの質問ではありません。
0 投票する
1 に答える
151 参照

xcode - 一度に複数のソース ファイルに Xcode 拡張機能を適用することはできますか? もしそうなら、どのように?

ソース コードをスキャンして特定のコード フラグメントを検出する Xcode 拡張機能を作成したいと考えています。ただし、このような拡張子はファイルごとにしか機能しないようです。たとえば、ここでボタンを押すと、現在のソース ファイルのみが変更されることがわかります。一度に複数のソース ファイルをスキャンする方法はありますか?