每次Xcode 更新都要对每个插件进行添加UUID的操作,实在太麻烦了,就写了个小程序,只需要运行一下本程序,再重启一下Xcode,之前安装的各种插件就都能工作了,非常方便~ //// main.m// xcplugin//// Created by Macro on ...
每次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;}
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:Xcode更新, 各种插件适配问题
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。