每次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更新后插件需要手动添加UUID的问题,本文介绍了一个实用的小程序。该程序能自动为所有插件添加最新的UUID,确保Xcode更新后插件仍能正常工作。
1913

被折叠的 条评论
为什么被折叠?



