随笔 - 124  文章 - 0  评论 - 93  阅读 - 18万

node.js小工具--修改Xcode 'Create by'作者名称

简介

用Xcode创建源文件时会自动在文件开始位置加入如下注释:

//
//  ISSImageCycleScrollView.m
//  SoftTravel
//
//  Created by iss110302000283 on 16/2/26.
//  Copyright © 2016年 issuser. All rights reserved.
//

原理

这个其实是通过Xcode的代码模板(Template)生成的,Xcode的Template目录在这个目录:

/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/Source

打开这个目录,可以看到各种文件对应的模板文件,例如:

//
//  ___FILENAME___
//  ___PROJECTNAME___
//
//  Created by ___FULLUSERNAME___ on ___DATE___.
//___COPYRIGHT___
//

#import <Foundation/Foundation.h>

@protocol ___FILEBASENAMEASIDENTIFIER___ <NSObject>

@end

___FULLUSERNAME___就是作者名,修改此模板后,在Xcode中创建相应文件时就会生效

批量脚本

这里提供一个node.js的脚本,批量修改Xcode的模板,将 ___FULLUSERNAME___作者名修改成我们想要的:

// updateXcodeTemplate.js
const fs = require('fs');
const path = require('path');

// 需要修改的模板文件后缀名
const extArray = [".h", ".m", ".cpp", ".hpp", ".swift", ".c"]

function updateTemplateFile(filePath)
{
	var stat = fs.statSync(filePath);
	if(stat.isFile())
	{
		if(extArray.indexOf(path.extname(filePath)) != -1)
		{
			var str = fs.readFileSync(filePath).toString();
			// 替换作者名
			var newStr = str.replace(/___FULLUSERNAME___/g, '张学友(___FULLUSERNAME___)');
			if(str != newStr)
			{
				fs.writeFileSync(filePath, newStr);
				console.log("update file: " + filePath);
			}
		}
	}
	else if(stat.isDirectory())
	{
                // 如果是文件夹,则递归调用
		var fileList = fs.readdirSync(filePath);
		for(var i = 0; i < fileList.length; i++)
		{
			updateTemplateFile(path.join(filePath, fileList[i]));
		}
	}
}

updateTemplateFile("/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File\ Templates/Source");

执行脚本:

// 注意需要用超级用户权限修改,否则会提示没有权限。
$ sudo node updateXcodeTemplate.js
posted on   TroyZ  阅读(587)  评论(0编辑  收藏  举报
编辑推荐:
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
阅读排行:
· 2025成都.NET开发者Connect圆满结束
· 后端思维之高并发处理方案
· 千万级大表的优化技巧
· 在 VS Code 中,一键安装 MCP Server!
· 10年+ .NET Coder 心语 ── 继承的思维:从思维模式到架构设计的深度解析

点击右上角即可分享
微信分享提示