每次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;
}