你的位置:首页 > 操作系统

[操作系统]Xcode更新, 各种插件适配问题


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

 

 

//// 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;}