用Xcode建立源文件時會自動在文件開始位置加入以下注釋:node
// // ISSImageCycleScrollView.m // SoftTravel // // Created by iss110302000283 on 16/2/26. // Copyright © 2016年 issuser. All rights reserved. //
這個實際上是經過Xcode的代碼模板(Template)生成的,Xcode的Template目錄在這個目錄:swift
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/Source
打開這個目錄,能夠看到各類文件對應的模板文件,例如:app
// // ___FILENAME___ // ___PROJECTNAME___ // // Created by ___FULLUSERNAME___ on ___DATE___. //___COPYRIGHT___ // #import <Foundation/Foundation.h> @protocol ___FILEBASENAMEASIDENTIFIER___ <NSObject> @end
___FULLUSERNAME___就是做者名,修改此模板後,在Xcode中建立相應文件時就會生效ui
這裏提供一個node.js的腳本,批量修改Xcode的模板,將 ___FULLUSERNAME___做者名修改爲咱們想要的:code
// 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