web-dev-qa-db-ja.com

Xcodeの新しいバージョンに更新した後、AlcatrazでインストールしたXcodeプラグイン(clang形式など)が動作しなくなったのはなぜですか?

今日、Xcode 6.3.2にアップデートしましたが、Clangコードのフォーマットを実行できません。インストールされていないようです。 Xcodeを更新するたびに、Alcatrazとほとんどのパッケージを再インストールして(なぜですか?)Xcodeの新しいバージョンで動作するようにしなければなりません。

今回は、すべてのパッケージ(VVDocumenter、カラーピッカーなど)を再インストールしましたが、ClangFormatは機能しません。「編集」メニューにも表示されません。理由は何ですか?

ところで。私はXcodeとMac自体を再起動しようとしました:)

編集(ソリューション):

Xcode 6.3.xのソリューション(これが機能しない場合は、以下の一般的なソリューションを使用してください。)

ターミナルで、次を入力します。

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add 9F75337B-21B4-4ADC-B558-F9CADF7073A7

一般的な解決策

ターミナルを介して新しいUUIDを取得します。

defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID

プラグインのDVTPlugInCompatibilityUUIDsキーに新しいUUIDを追加します(xcpluginファイル->パッケージの内容を表示-> Contents/Info.plist

45
Pavel Smejkal

多くの場合、以下が役立ちます。 Alcatrazを再インストール 、Xcodeを再起動し、プラグインを削除して再インストールします。 Xcodeを再起動すると役立つ場合があります。これは私のために働いた。

それでもプラグインが表示されない場合、問題はおそらく、新しいXcodeの互換性キーがプラグインの互換性キーのリストにまだ含まれていないことです。

可能な解決策:

  • Xcodeの新しいUUIDを含むプラグインの更新を待ちます
  • 待機したくない場合(たとえば、Xcodeのベータ版をインストールし、プラグインの更新に時間がかかりすぎる場合)、Xcodeの新しいUUIDをプラグインに手動で追加できます(実行方法の詳細以下を参照してください)。もちろん、プラグインが動作するという保証はありません。 Xcodeが変更されて互換性がなくなった場合、もちろん動作しません。ただし、しばしば機能します。

新しいUUIDをプラグインに追加するには:

Xcode 6.3.2を使用する場合、ターミナルで次を入力します。

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add E969541F-E6F9-4D25-8158-72DC3545A6C6

Xcodeの他のバージョンについては、ターミナルを介してXcodeのUUIDを取得します:defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUIDそして、それを使用して上記のfindコマンドのUUIDを更新します。

[上記のfindコマンドを使用する代わりに、プラグインパッケージ(DVTPlugInCompatibilityUUIDsファイル->パッケージの内容を表示]のxcpluginキーに新しいUUIDを手動で追加することもできます。 -> Contents/Info.plist)]

ソース: GitHub および「 ianmasters 」による投稿

44
vomako

Xcode 6.4をインストールした後、「Skip Bundles」を選択しましたが、Alcatrazが見つかりません。

最初にUUIDの追加を試みますが、アルカトラズも機能しません。

それからこれを試してください:

defaults read com.Apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.4 

以下のiTermショーで:

allowed =     {
};
skipped =     {
    "com.mneorr.Alcatraz" =         {
        version = 1;
    };
};

ただし、このファイルは編集できないため、削除します。

defaults delete com.Apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.4

次に、Alcatrazを再インストールし、Xcodeが「Load Bundles」を再び表示します。今回は間違っていないので、「Load Bundles」を選択します。

29
wenghengcong

このスクリプトを使用して、更新後にXcodeのプラグインを更新できます(Xcode 7.3で正常に動作します)。

#!/bin/bash
xcodeUUID=`defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`
echo $xcodeUUID
find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add $xcodeUUID

または私の要点からコピー https://Gist.github.com/MaciejGad/86302b6b8bdb1ee25115

19
bazyl87

Xcodeには、有効にしたバンドルのホワイトリスト/ブラックリストがあります。以下を実行することで、ターミナルから確認できます。

$ defaults read com.Apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.3.2
{
allowed =     {
};
skipped =     {
    "com.mneorr.Alcatraz" =         {
        version = 1;
    };
    "com.onevcat.VVDocumenter-Xcode" =         {
        version = 1;
    };
    "com.travisjeffery.ClangFormat" =         {
        version = 1;
    };
};}

悪いニュースは、アルカトラズを再インストールしても、バンドルをロードするプロンプトが再び表示されないことです。修正は簡単ですが、次を実行してホワイトリスト/ブラックリストを削除するだけです:

defaults delete com.Apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-6.3.2

xcodeを再度開き、プロンプトが再度表示されるようにします(今回は、必ず[Load Bundles]をクリックしてください)。

元の投稿: Xcode 6.3.2以降でAlcatrazを再度有効にする

17
Elviin Goomez

ターミナルでXcodeの「すべてのバージョン」の一般的なコードを使用し、Xcodeを再起動すると、すべてが正しくなります。

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add defaults read /Applications/Xcode.app/Contents/Info.plist DVTPlugInCompatibilityUUID

コードが他の回答のコードと組み合わされていることに注意してください。

Xcodeのバージョンが6.3.2の場合、上記のコードは

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add E969541F-E6F9-4D25-8158-72DC3545A6C6

Xcodeが6.3または6.3.1の場合、次と等しい:

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add 9F75337B-21B4-4ADC-B558-F9CADF7073A7

違いは最後のコードであり、Xcodeのuuidであることがわかります。Xcodeの新しいuuidを取得するには、これを使用します。

 defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID

そのコードの最後で変更します。

それでも動作しない場合は、 Alcatraz のアラートで「ロードバンドル」を選択していない可能性があります。 enter image description here

「スキップバンドル」を選択した場合、これを行うことができます

  1. アルカトラズをリロード
  2. Alcatraz のアラートが再び表示され、ロードバンドルを選択します
  3. 熱で上記のコードを使用します
  4. xcodeをリロードする
  5. 成功した???? !!

EDIT:私は試しましたが、もう一度ターミナルで一般的なコードを使用するだけで、アラートが再び表示され、それを選択して、大丈夫です。

5
ElonChan

Xcode 6.3.2以降、これはうまくいきました。

http://pablin.org/2015/05/27/re-enable-alcatraz-on-xcode-6-dot-3-2-or-newer/

3
Zappel

プラグイン互換性キーが6.3.2/6.4.b2で機能しませんでした

このスレッドを見てみましょう: https://github.com/omz/Dash-Plugin-for-Xcode/issues/37 -問題と解決策があります。

一般的な概要:XCodeはプラグインのロード方法を変更しました(カスタムプラグインが最初にロードされます)ので、コードを変更する必要があります。

2
deksden

Curlコマンドを使用してインストールするのではなく、ソースからビルドしてみてください!何らかの理由で、UUIDの変更を含め、curlコマンドで何もしませんでした。そのため、プラグインフォルダーからすべてを削除し、マスターをダウンロードしてビルドを行いました。 xCodeを再起動し、ダイアログを受け入れます。たぶんこれはあなたを助けるでしょう。

0
smileBot

このスクリプトは、プラグインのUDIDを更新し、バンドルをロードするようプロンプトが表示されるようにします。

#!/bin/bash
xcodeUUID=`defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilityUUID`
echo $xcodeUUID
xcodeVersion=`defaults read /Applications/Xcode.app/Contents/Info.plist CFBundleShortVersionString`
echo $xcodeVersion

find ~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins -name Info.plist -maxdepth 3 | xargs -I{} defaults write {} DVTPlugInCompatibilityUUIDs -array-add $xcodeUUID

defaults delete com.Apple.dt.Xcode DVTPlugInManagerNonApplePlugIns-Xcode-$xcodeVersion
0
arsenius