Xcode更新, 各种插件适配问题

每次Xcode 更新都要对每个插件进行添加UUID的操作,实在太麻烦了,就写了个小程序,只需要运行一下本程序,再重启一下Xcode,之前安装的各种插件就都能工作了,非常方便~


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//
//  main.m
//  xcplugin
//
//  Created by Macro on 10/23/15.
//  Copyright © 2015 Macro. All rights reserved.
//
 
#import <Foundation/Foundation.h>
 
#define XCODE_PATH @"/Applications/Xcode.app/Contents/Info.plist"
 
int  main( int  argc,  const  char  * argv[]) {
     @autoreleasepool  {
         // insert code here...
         
         NSString  *username =  NSUserName ();
         NSString  *pluginPath = [ NSString  stringWithFormat:@ "/Users/%@/Library/Application Support/Developer/Shared/Xcode/Plug-ins" , username];
         
         NSDictionary  *dictionary = [[ NSDictionary  alloc] initWithContentsOfFile:XCODE_PATH];
         NSString  *xcodeUUID = dictionary[@ "DVTPlugInCompatibilityUUID" ];
 
         NSFileManager  *fm = [ NSFileManager  defaultManager];
         NSError  *error;
         NSArray  *pathArray = [fm contentsOfDirectoryAtPath:pluginPath error:&error];
         if  (error) {
             NSLog (@ "路径错误" );
             return  0;
         }
         for  ( NSString  *name  in pathArray) {
             if  ([name hasSuffix:@ ".xcplugin" ]) {
                 NSString  *pluginPlistPath = [ NSString  stringWithFormat:@ "%@/%@/Contents/Info.plist" , pluginPath, name];
                 NSDictionary  *dictionary = [[ NSDictionary  alloc] initWithContentsOfFile:pluginPlistPath];
                 NSMutableArray  *arr = [ NSMutableArray  arrayWithArray:dictionary[@ "DVTPlugInCompatibilityUUIDs" ]];
                 
                 if  (![arr containsObject:xcodeUUID]) {
                     [arr addObject:xcodeUUID];
                     [dictionary setValue:arr forKey:@ "DVTPlugInCompatibilityUUIDs" ];
                     [dictionary writeToFile:pluginPlistPath atomically: YES ];
                 }
             }
         }
     }
     NSLog (@ "XCode适配已成功,所有插件都可以正常使用了~" );
     return  0;
}

你可能感兴趣的:(Xcode更新, 各种插件适配问题)