问题
I'm trying to create a xcode 4 template. Everything works fine except for the fact that I can't create an empty group.
I would like to have this project structure: ProjectName -Models -Controllers -Views -Services
<key>Definitions</key>
<dict>
<key>Views/RootViewController.h</key>
<dict>
<key>Group</key>
<string>Controllers</string>
<key>Path</key>
<string>RootViewController.h</string>
<key>TargetIndices</key>
<array/>
</dict>
<key>Views/RootViewController.m</key>
<dict>
<key>Group</key>
<string>Controllers</string>
<key>Path</key>
<string>RootViewController.m</string>
</dict>
<key>en.lproj/RootViewController.xib</key>
<dict>
<key>Group</key>
<string>Views</string>
<key>Path</key>
<string>RootViewController.xib</string>
</dict>
<key>en.lproj/MainWindow.xib</key>
<dict>
<key>Group</key>
<string>Views</string>
<key>Path</key>
<string>MainWindow.xib</string>
</dict>
<key>Services</key>
<dict>
<key>Group</key>
<string>Services</string>
<key>Path</key>
<string>Services</string>
<key>TargetIndices</key>
<array/>
</dict>
</dict>
<key>Nodes</key>
<array>
<string>en.lproj/MainWindow.xib</string>
<string>Views/RootViewController.h</string>
<string>Views/RootViewController.m</string>
<string>en.lproj/RootViewController.xib</string>
<string>Services</string>
</array>
The Views group gets created, because files get added to this folder.
The Services group also gets created but there is a file called 'Services' in it (without an extension).
回答1:
I suppose I arrive a little bit late but I just got the answer testing it on my own. You have it almost correct, you only need to delete the group key for the folders. XCode will create the groups on its own. For example the code for only Services will be like this:
<key>Definitions</key>
<dict>
<key>Services</key>
<dict>
<key>Path</key>
<string>Services</string>
</dict>
</dict>
<key>Nodes</key>
<array>
<string>Services</string>
</array>
That's it, I hope it will help you or anybody else.
Just in case anybody wants to try the other option creating a sample project and then renaming all the file names and content, find attached below the bash script I was using:
#!/bin/bash -e
# Read the settings from the project
read -p "Project's name: " project_name
read -p "Class prefix: " class_prefix
# Set variables
date="$(date +%d-%m-%Y)"
year="$(date +%Y)"
username="PLACE_YOUR_NAME_HERE"
organization="PLACE_YOUR_ORGANIZATION_NAME_HERE"
# Copy the base project template to a new folder with the projects name
cp -r ___PACKAGENAME___/ $project_name
# Rename files and folders to match the project name
cd $project_name
# Match the project name
for file in $(find . -depth -name '*___PACKAGENAME___*')
do
dir="$(dirname "$file")"
old="$(basename "$file")"
new="$(echo "$old" | sed s/___PACKAGENAME___/"$project_name"/)"
if [ "$new" != "$old" ]; then
mv "$dir"/"$old" "$dir"/"$new"
fi
done
# Add the class prefix
for file in $(find . -depth -name '*___VARIABLE_classPrefix___*')
do
dir="$(dirname "$file")"
old="$(basename "$file")"
new="$(echo "$old" | sed s/___VARIABLE_classPrefix___/"$class_prefix"/)"
if [ "$new" != "$old" ]; then
mv "$dir"/"$old" "$dir"/"$new"
fi
done
# Modify the content of the files
for file in $(find . -depth -type f ! -name .DS_Store ! -path "*Externals/*" ! -name "*.png" ! -name "*.xcuserstate" )
do
filename="$(basename "$file")"
if [ "$filename" != '*.DS_Store*' ]; then
echo $filename
sed -e "s/___PROJECTNAME___/${project_name}/g" $file > temp
sed -e "s/___FULLUSERNAME___/${username}/g" temp > $file
sed -e "s/___DATE___/${date}/g" $file > temp
sed -e "s/___ORGANIZATIONNAME___/${organization}/g" temp > $file
sed -e "s/___YEAR___/${year}/g" $file > temp
sed -e "s/___PACKAGENAME___/${project_name}/g" temp > $file
sed -e "s/___VARIABLE_classPrefix___/${class_prefix}/g" $file > temp
mv temp $file
fi
done
In this case, I created first the sample project and I call it ___PACKAGENAME___
after that I just changed some other fields inside the files like the date in order to be able to change them with the script.
This code was created at April 2013 so it's been a while since the last time I used it and right now I don't have so much time to review and check if everything is ok. But if anybody else is interested in how this work I guess I will be able to find a gap to upload everything to Github.
来源:https://stackoverflow.com/questions/6535328/xcode-4-template-create-empty-group