Как создавать шаблоны проектов в Xcode 4
Это действительно трудно найти учебник, чтобы сделать это, так как большая часть информации относится к Xcode 3. Ответ ниже может помочь некоторым людям.
Я получил большую часть своей информации для ответа ниже со следующих сайтов:
4 ответа
Я часами искал в Интернете информацию о том, как это сделать. На самом деле не так сложно настроить шаблоны проектов для Xcode4.5, но трудно найти информацию в Интернете, которая объединяет все это! Надеемся, что приведенные ниже шаги помогут вам создать свой собственный.
Настройка
- Давайте начнем с получения копии существующего шаблона проекта Xcode для использования в качестве основы. Откройте искатель, перейдите в Приложения и щелкните правой кнопкой мыши на Xcode, чтобы показать содержимое пакета. Перейдите к Содержанию / Разработчику / Платформы /iPhoneOS.platform/ Разработчик / Библиотека /Xcode/ Шаблоны / Шаблоны проектов / Приложение /
[РЕДАКТИРОВАТЬ] В Xcode 5 ПУТЬ выглядит следующим образом: ~/ Библиотека / Разработчик /Xcode/ Шаблоны / Приложение / Шаблоны проектов. Если Шаблоны / Приложения / Шаблоны проектов не существуют, вы должны создать их тоже. Благодарим seufagner в комментариях ниже для обновления, хотя я сам не пробовал. [/РЕДАКТИРОВАТЬ]
- Скопируйте (не вырезайте / вставьте!) Один из перечисленных шаблонов.
- Откройте другое окно поиска и перейдите в следующий каталог (чтобы отобразить папку "Библиотека", введите этот cmd в терминале: chflags nohidden ~ / Library / или выберите, нажимая клавишу alt / option при нажатии на Finder / Go) / Library / Developer /Xcode/ Шаблоны (вам может понадобиться создать эту папку, если она еще не существует) / Шаблоны проектов /
- Создайте папку здесь. Называйте это как хотите, предложение - это название вашей компании. Это имя появляется в левом меню нового диалога проекта в XCode. например, на прикрепленном изображении я назвал мой Appscore, там есть еще один для cocoas2d.
- Вставьте сюда шаблон проекта и измените имя его папки на любое другое, например MySuperProjectTemplate.xctemplate. Мы еще не закончили, так как нам нужно изменить идентификатор шаблона. В противном случае он не появится в диалоговом окне нового проекта XCode.
- Откройте файл Template Info.plist в TextEdit. Найдите ключ идентификатора. Вы должны увидеть строковое значение, похожее на "com.apple.dt.unit.XXXXXX". Замените это на то, что вы хотите, пока его уникальным. Я снова предлагаю добавить название вашей компании и название, которое описывает шаблон.
- Если вы сейчас откроете Xcode, вы должны увидеть шаблон проекта, появляющийся под названием вашей компании в новом диалоге проекта.
Пользовательская настройка
На данный момент у вас есть копия существующего шаблона проекта, которая не очень полезна. Я полагаю, у вас есть несколько классов, которые можно использовать почти во всех ваших проектах? Как насчет того, чтобы включить их в этот шаблон?
- Скопируйте нужные файлы и вставьте их в новый шаблон проекта, т.е. перейдите в / Library / Developer /Xcode/ Templates / Project Templates // MySuperProjectTemplate.xctemplate /
Снова откройте файл Template Info.plist в TextEdit. Первое, что нам нужно сделать, - указать шаблону проекта включить новые файлы, чтобы найти ключ с именем "Узлы", который имеет массив значений. Добавьте две следующие строки:
_VARIABLE_classPrefix: identifier_.h string> _VARIABLE_classPrefix: identifier_.m string>
Например, если ваш контроллер называется BaseViewController, строки будут выглядеть так:
___VARIABLE_classPrefix: идентификатор ___BaseViewController.h string> ___VARIABLE_classPrefix: идентификатор ___BaseViewController.m string>
- Затем найдите ключ Definitions, и вы должны увидеть словарь в качестве его значения. Здесь мы должны добавить ссылку на включенные файлы. Создайте новый ключ и назовите его ___VARIABLE_classPrefix: идентификатор ___BaseViewController.h (снова взяв в качестве примера BaseViewController).
- Значение этого ключа снова словарь. Он содержит ключ с именем Path и строковое значение, которое является именем файла, например BaseViewController.h
- Я приложил следующие изображения, чтобы показать, что я имею в виду, так как я думаю, что мое описание не соответствует действительности. Вы можете заметить, что там есть ключ под названием "Группа", который, как вы можете догадаться, позволяет вам создавать группы и входные файлы напрямую:D
Надеюсь, что это действительно полезно для кого-то:) Любые вопросы комментируйте ниже, и я сделаю все возможное, чтобы ответить. Я сделал это несколько недель назад, поэтому моя память немного туманна.
Вы также можете многому научиться, изучив существующие шаблоны проектов, которые вы можете найти в:
/Xcode.app/Contents/Developer/Library/Xcode/Templates/Project Templates/
для Mac и
/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Templates/Project Templates/
для iOS.
На GitHub также есть несколько примеров шаблонов от Reid Main и еще один от Acani. Существуют также шаблоны AFNetworking, созданные Мэттом Томпсоном. Посмотрите все примеры, в том числе созданные Apple, и вы сможете начать создавать свои собственные.
Хороший обзор всех переменных, используемых в файле plist, можно найти здесь: https://gist.github.com/shazron/943736
@bennythemink Ваш ответ действительно очень полезен, но я хочу добавить еще несколько вещей в ваш ответ. Когда мы копируем предопределенный шаблон xcode, чем этот ключ содержит
<key>Ancestors</key>
<array>
<string>com.apple.dt.unit.storyboardApplication</string>
</array>
это значение. Когда мы используем это значение ключа в пользовательском шаблоне xcode, он по умолчанию создает класс AppDelegate. Который мы не можем переместить в папку, только мы можем переместить его в группу. Поэтому я предлагаю добавить это:
<key>Ancestors</key>
<array>
<string>com.apple.dt.unit.objectiveCApplication</string>
<string>com.apple.dt.unit.iPhoneBase</string>
<string>com.apple.dt.unit.prefixable</string>
</array>
значение в пользовательском шаблоне, чтобы у нас был полностью пустой шаблон, в котором мы можем делать любые пользовательские вещи.