Xcode file templates aren't created correctly - xcode

I'm having an issue with custom file templates in Xcode 4.
For example, with the cocos2d templates, when I try to make a new CCLayer file called GameLayer at my project root, it generates the files at .xctemplate/CCLayer/Gamelayer.h and .xctemplate/CCLayer/Gamelayer.m
The files seem to be correct but they're in the wrong place and they weren't added to the project.
I've tried this with the Cocos2d file templates as well as the Kiwi template from this post. Also any templates I try to create myself seem to have the same problem.

Turns out the issue was being caused by the fact that my ~/Libary/Developer/ was a symlink to a different drive to save space on my SSD. Whatever Xcode does when creating files from templates has problems with symlinks.

Related

How to support Xcode Templates for SwiftPM?

I have Xcode Template that generate a bunch of files (not project) with some predefined repetitive code (for example classes for MVVM pattern). When I try to create these files in Xcode Project all works fine (I can find and create my templates in New File… menu), but when I try to do the same thing in SwiftPM I can't find my templates in the New File… menu.
All my templates are leaving in ~/Library/Developer/Xcode/Templates/**/*.xctemplate.
What should I do to show templates for SwiftPM as well?
After some research of /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/ folder I found that some default templates have the property SupportsSwiftPackage that set to YES. I added it to my templates and it finally works.

Importing Another Cocos2d Project's Classes, Code, and SRC

The project I was toying around with for some reason was a dated version of cocos2d, and the classes and methods I was trying to introduce were too recent. So, I have successfully installed the new cocos2d, and have created a cocos2d template in Xcode. My issue is that this project is brand new, and I want to bring all my other project's code into this.
I have searched this across other stackoverflow threads, and just dragged the files/folder into the new project. When the files wouldn't transfer, I adjusted their path, and then dragged them in, or in one unique case, when dealing with the class main.m, I just changed its internal code so that it would sync up with the rest of the code.
However, because this is a template file, there are some extra baggage classes that I am not sure how to handle. These classes are the classes that come standard in the 'Classes' folder when the cocos2d template is first created:
GameConfig.h
HelloWorldLayer.h
HelloWorldLayer.m
RootViewController.h
RootViewController.m
MyGameAppDelegate.h
MyGameAppDelegate.m
And then in the 'Other Sources' folder:
MyGame_Prefix.pch
These classes or their likeness does not appear to be used in the original project from which I copied the other classes, is there any special use for them that would be dangerously stupid for me to delete them?
You can delete HelloWorldLayer. It's just the example scene/layer.
You would do well to leave the other files in. Any modifications you may have made to your old project's app delegate (such as which scene is passed to CCDirector's runWithScene method) should be re-done in the MyGameAppDelegate rather than replacing that with your old project's app delegate.
The reason is that the startup sequence for cocos2d has changed to support Retina devices, autorotation, changes in the iOS SDK, etc. The RootViewController handles autorotation, should you need that. Whether autorotation is enabled or not can be changed via GameConfig.h.

Xcode3 to Xcode4 code templates

can someone tell me how to convert code templates from xcode3 to xcode4?
I am reading article at http://iphonedevelopment.blogspot.com/2009/04/opengl-es-from-ground-up-part-2-look-at.html and author offers his OpenGLES code template, but I can't get it working in new xcode4, seems it have different format. Any suggestions?
Thanks in advance :)
I had the same problem, here is a list of the changes you need to do to make your xcode 3 templates works with xcode 4 :
First you have to move your templates to a new directory :
/YourUserDirectory/Library/Developer/Xcode/Templates/File Templates
(previously it was /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/File Templates)
Then you need to :
rename your templates from "*.pbfiletemplate" to ".xctemplate"
rename class.h into ___FILEBASENAME___.h (the class.m can stay unchanged)
inside all of your files change «FILEBASENAMEASIDENTIFIER» into ___FILEBASENAMEASIDENTIFIER___
Additonaly all the key words like «FILENAME», «PROJECTNAME», need to be replaced by ___FILENAME___, ___PROJECTNAME___, etc
«OPTIONALHEADERIMPORTLINE» needs to be replaced by #import "___FILEBASENAME___.h"
Hope this helps,
Vincent
Until XCode 4 is finalised, there's probably not much point in this. However, you can side by side install XCode 3 and 4 and the XCode project format is compatible between them. Hence, I'd just install the template in XCode 3, create your new project(s), then open the results in XCode 4.

Create a template for iPhone projects in XCode?

How do I create another project template in XCode? I want to make another one which will include all of my libraries and have the correct headers and frameworks added.
Try this ars technica post. The general idea is that you set up a project the way you like, then copy it into Xcode's templates folder in ~/Library/Application Support/Developer/Shared/Xcode/.

Change templates in Xcode

How would I change the initial templates created by Xcode when creating a new Cocoa Class.
I am referring to the comments and class name created when using Xcode's new class wizard.
You wouldn't change the existing templates. In other words, don't modify anything under the /Developer hierarchy (or wherever you installed your developer tools).
Instead, clone the templates you want to have customized variants of. Then change their names and the information in them. Finally, put them in the appropriate location in your account's Library/Application Support folder, specifically:
File templates: ~/Library/Application Support/Developer/Shared/Xcode/File Templates/
Target templates: ~/Library/Application Support/Developer/Shared/Xcode/Target Templates/
Project templates: ~/Library/Application Support/Developer/Shared/Xcode/Project Templates/
That way they won't be overwritten when you install new developer tools, and you can tweak them to your heart's content.
Update
For newer versions of Xcode the updated path will be:
~/Library/Developer/Xcode/Templates/File Templates/Source
This may be useful for somebody:
As for XCode 6 to XCode 9 the file templates are in:
/Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/Source
Update:
As #carbo18 noted, it's proably better to create the directory ~/Library/Developer/Xcode/Templates/File Templates/Source and put your custom templates there. The best way may be to use as base one of the ones in /Applications/Xcode.app/Contents/Developer/Library/Xcode/Templates/File Templates/Source
Xcode uses template files for file and project templates and does variable expansion in both at creation time.
Xcode 3.0 templates can be found in [Dev Installation]/Library/Xcode/, likely /Developer/Library/Xcode. If you want to modify these templates or add your own, use the following directories to save your new/modified templates so that they are not wiped out by future Developer Tool upgrades:
File templates:
~/Library/Developer/Shared/Xcode/File
Templates/
Target templates:
~/Library/Developer/Shared/Xcode/Target
Templates/
Project templates:
~/Library/Developer/Shared/Xcode/Project
Templates/
I think that you can also use the /Library/Developer/Shared/Xcode/[File|Target|Project] Templates/ directory for templates shared by all users.
If you just want to change the MyCompanyName in the templates, the following command line will do the trick:
defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{ "ORGANIZATIONNAME" = "NewCompanyName";}'
A good tutorial on writing file templates is here [MacResearch.org].
In Xcode 4 and Xcode 5 the user file templates can be placed at:
~/Library/Developer/Xcode/Templates/[Category]
[Category] can be used to categorize your templates (choose a name of your choise)
If the folder doesn't exist already, create it!
As of Xcode 7
File templates: ~/Library/Developer/Xcode/Templates/File Templates
Project templates: ~/Library/Developer/Xcode/Templates/Project Templates
For example if I place a Empty Application.xctemplate in ~/Library/Developer/Xcode/Templates/Project Templates/Application
It will appear in the template dialog as
In xcode 5.0.1:
1.Go->Applications
2.right click "xcode" application
3.chose "Show Package Contents"
4.contents/Developer/Library/Xcode/Templates
If you are simply looking to change the Author Name and Organization see this answer.
It's much easier than modifying the templates.
For Xcode 4.4, none of the previously mentioned methods work. This gist provides a partial hacky solution. Please fork and enhance if you know a better way.
Right click on xCode and select Show Package contents, then go to contents/Developer/Library/Xcode/Templates. Here you can find the templates for all programming languages.
Here some visualization:
In XCode 4.5 right click on project, click Show File Inspector, then change Organization name in the file inspector's second tab (Project Document group)

Resources