开发者

Changing the default header comment license in Xcode

Whenever I create a new .cpp/.h file in Xcode a comment is added to the top of the file. For example:

/*
 *  <file>.cpp
 *  <Name of project>
 *
 *  Created by <My name> on <Date>.
 *  Copyright <Year and company>. All rights reserved.
 *
 */

I want to change the default comment 开发者_JS百科to be another license, like GPL/LGPL/ or something else. Is there somewhere I can change this behavior in Xcode?


With Xcode 9 there is a built-in option which you can find in the details below.

  1. Create a property list file named IDETemplateMacros.plist
  2. Add a FILEHEADER value to the Root and set its string value with your copyright text like Copyright © 2017 ...
  3. Copy the file to one of the following locations
    • For a single project and user <ProjectName>.xcodeproj/xcuserdata/[username].xcuserdatad/IDETemplateMacros.plist
    • For all team members in a single project <ProjectName>.xcodeproj/xcshareddata/IDETemplateMacros.plist
    • For all projects in a workspace for a single user <WorkspaceName>.xcworkspace/xcuserdata/[username].xcuserdatad/IDETemplateMacros.plist
    • For all projects in a workspace for all team members <WorkspaceName>.xcworkspace/xcshareddata/IDETemplateMacros.plist
    • For everything you work on, regardless of project ~/Library/Developer/Xcode/UserData/IDETemplateMacros.plist
  4. Create a new file - you should see the new copyright header

Sample IDETemplateMacros.plist for copy and paste:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>FILEHEADER</key>
    <string>
//  Created by Your Name on 29.12.17.
//  Copyright © 2017 Your Company. All rights reserved.
//  </string>
</dict>
</plist>


First try changing your Name and Organization your contact card in Address Book.

If that doesn't work, open System Preferences > Users & Groups > Right click on your user (System Preferences must already be unlocked) > Advanced Options... > Change the name in the Full Name text box.

To change the organization name in Xcode click on the project file so it is selected (left sidebar of Xcode in the Project navigator) > In the File Inspector (right sidebar of Xcode) change the Organization text box.

Changing the default header comment license in Xcode


This blog post has some good steps for modifying file templates in Xcode 4.3:

http://error-success.piku.org.uk/2012/04/27/how-to-make-xcode-4-3-2-templates/

The /Developer folder no longer exists, so you copy the templates from within the Xcode.app bundle located in /Applications:

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

And place your modified copy here, as before:

~/Library/Developer/Xcode/Templates/File\ Templates/

UPDATE: I decided to write a script that would extract the built in Xcode templates and replace the headers. Source and instructions can be found at the following url:

https://github.com/royclarkson/xcode-templates


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

any update of your SDK will wipe changes here so keep your template backed up somewhere else


Don't edit anything in /Developer as Apple can overwrite this at any time.

The following works for Xcode 4, 5 and 6 except later source differs and is under /Applications

Instead copy the templates that you want to change from /Applications/Xcode<version>.app/Contents/Developer/Library/Xcode/Templates to ~/Library/Developer/Xcode/Templates/File Templates and then edit the files keeping the same directory structure but edit the directory name that is the template to not show up a a duplicate in Xcode.

e.g for a new category of C/C+ files in Xcode 5 copy /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/C and C++ to ~/Library/Developer/Xcode/Templates/File Templates/GPL C and C++

this process is copied from Red Glasses's blog

For Xcode 4 the source path is or for Xcode 4 /Developer/Library/Xcode/Templates/File Templates


– Press ⌘ 1 to display the File Navigator.
– Click on the name of your project at the top of the File Navigator.
– Press ⌘⌥⇧ ⏎ (that's Command Option Shift Return) to view the Version Editor.
– Make sure that the Comparison View is shown(View > Version Editor > Show Comparison View).

This lets you see the raw text of your project's project.pbxproj file.

– Press ⌘ f to search the project.pbxproj file, paste in ORGANIZATIONNAME and press Return.

This is where the name of the organization that follows the copyright text is defined.


Or open Xcode's plist at

~/Library/Preferences/com.apple.dt.Xcode.plist

And change the organizationName key's value.


Or select the project from the Navigator pane and display the File Inspector with ⌘⌥ 1.

Look at the Organization value under Project Document. Change the value there.


In Xcode 12.4

Using Xcode, create a plist file named IDETemplateMacros.

Save it to the Desktop initially while you configure it.

If you cannot see the file in the Project Navigator then from the Xcode menu, select View > Navigators > Project

Right click on the filename and select Open as > Source Code

The following is a template that works nicely for me so chances are it will for you too.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>FILEHEADER</key>
        <string>
//
// ___FILENAME___
// ___PACKAGENAME___
//
// Created by ___FULLUSERNAME___ on ___DATE___
// Copyright © ___YEAR___ ___FULLUSERNAME___. All rights reserved.
//
        </string>
    </dict>
</plist>

Copy and paste the above overwriting the existing contents.

Save the file and close it.

In Finder navigate to the following folder:

~/Library/Developer/Xcode/UserdData/

Drag the file from your Desktop to this Folder and then test using Xcode to create a new project.


It's very simple:

  1. Open up terminal
  2. In one line, write the following:

    defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions -dict ORGANIZATIONNAME "Blah, Inc"
    

You don't have to worry about changing directories beforehand or anything else. It works instantly.


Change the details in your Address Book - add a company name. It will pick it up from there.


Try modifying this file:

/Developer/Library/Xcode/File\ Templates/C\ and\ C++/Header\ File.pbfiletemplate/header.h


Works with Xcode 14

Say you want to modify (or get rid of) the XCode Header comment.

  • First open XCode, Use File > New File... (⌘N) and choose Property List from the file templates.
  • Name it file IDETemplateMacros.plist
  • On the navigator, select the file as right-click Open as source code. Xcode will show us the property file as text. Property files are really just XML files.
  • Copy paste the following content:
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>FILEHEADER</key>
    <string>Created for ___PROJECTNAME___ in ___YEAR___
// Using Swift ___DEFAULTTOOLCHAINSWIFTVERSION___</string>
</dict>
</plist>

On the root dict we have added an entry with key FILEHEADER and a two-lines string as a value:

Created for ___PROJECTNAME___ in ___YEAR___
// Using Swift ___DEFAULTTOOLCHAINSWIFTVERSION___

Save the file IDETemplateMacros.plist on the folder:

~/Library/Developer/Xcode/UserData/

That's it, now when creating a new project called MyProject, the header will be:

//Created for MyProject in 2022
// Using Swift 5.0

Note1. There is a list of macros on https://help.apple.com/xcode/mac/9.0/index.html?localePath=en.lproj#/dev7fe737ce0

Note 2. As an example you can write:

 Created ___DATE___
// ___COPYRIGHT___

Note that there is a leading space but you do not include the // for the comment on the first line.

Note 3. For a more list of options see: https://useyourloaf.com/blog/changing-xcode-header-comment/


In Xcode 4.2, they're here:

/Developer/Library/Xcode/Templates/File Templates


I just changed the template of a SwiftUI file, you have to open Xcode's Contents and look for the template files you want to change. To change the SwiftUI template the path is this:

/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File\ Templates/MultiPlatform/User\ Interface/SwiftUI\ View.xctemplate

You nedd open with sudo


For AppCode users:

  1. Go to preferences (CMD + ,)
  2. Editor-File and Code Templates
  3. Change Scheme to Project
  4. Modify Files and/or Includes as you need.
  5. add to git .idea/fileTemplates if needed


You can override the text macros globally, or for an individual workspace or project. You can also decide to keep the macros for a single user or share it with all users.

The full list of locations that Xcode searches, in order of priority:

Project - single user

<ProjectName>.xcodeproj/xcuserdata/[username].xcuserdatad/

Project - shared by all users

<ProjectName>.xcodeproj/xcshareddata/

Workspace - single user

<WorkspaceName>.xcworkspace/xcuserdata/[username].xcuserdatad/

Workspace - shared by all users

<WorkspaceName>.xcworkspace/xcshareddata/

Globally for Xcode

~/Library/Developer/Xcode/UserData/

I don't remember what was the default template but you can make a template in any way you like using textMacros:

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

There are some other textMacros if you like more customization, but these are enough for making something like the default one.

You can create the file yourself if no files found at the path

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜