Как создавать шаблоны проектов в Xcode 4

Это действительно трудно найти учебник, чтобы сделать это, так как большая часть информации относится к Xcode 3. Ответ ниже может помочь некоторым людям.

Я получил большую часть своей информации для ответа ниже со следующих сайтов:

4 ответа

Решение

Я часами искал в Интернете информацию о том, как это сделать. На самом деле не так сложно настроить шаблоны проектов для Xcode4.5, но трудно найти информацию в Интернете, которая объединяет все это! Надеемся, что приведенные ниже шаги помогут вам создать свой собственный.

Настройка

  1. Давайте начнем с получения копии существующего шаблона проекта Xcode для использования в качестве основы. Откройте искатель, перейдите в Приложения и щелкните правой кнопкой мыши на Xcode, чтобы показать содержимое пакета. Перейдите к Содержанию / Разработчику / Платформы /iPhoneOS.platform/ Разработчик / Библиотека /Xcode/ Шаблоны / Шаблоны проектов / Приложение /

[РЕДАКТИРОВАТЬ] В Xcode 5 ПУТЬ выглядит следующим образом: ~/ Библиотека / Разработчик /Xcode/ Шаблоны / Приложение / Шаблоны проектов. Если Шаблоны / Приложения / Шаблоны проектов не существуют, вы должны создать их тоже. Благодарим seufagner в комментариях ниже для обновления, хотя я сам не пробовал. [/РЕДАКТИРОВАТЬ]

  1. Скопируйте (не вырезайте / вставьте!) Один из перечисленных шаблонов.
  2. Откройте другое окно поиска и перейдите в следующий каталог (чтобы отобразить папку "Библиотека", введите этот cmd в терминале: chflags nohidden ~ / Library / или выберите, нажимая клавишу alt / option при нажатии на Finder / Go) / Library / Developer /Xcode/ Шаблоны (вам может понадобиться создать эту папку, если она еще не существует) / Шаблоны проектов /
  3. Создайте папку здесь. Называйте это как хотите, предложение - это название вашей компании. Это имя появляется в левом меню нового диалога проекта в XCode. например, на прикрепленном изображении я назвал мой Appscore, там есть еще один для cocoas2d.
  4. Вставьте сюда шаблон проекта и измените имя его папки на любое другое, например MySuperProjectTemplate.xctemplate. Мы еще не закончили, так как нам нужно изменить идентификатор шаблона. В противном случае он не появится в диалоговом окне нового проекта XCode.
  5. Откройте файл Template Info.plist в TextEdit. Найдите ключ идентификатора. Вы должны увидеть строковое значение, похожее на "com.apple.dt.unit.XXXXXX". Замените это на то, что вы хотите, пока его уникальным. Я снова предлагаю добавить название вашей компании и название, которое описывает шаблон.
  6. Если вы сейчас откроете Xcode, вы должны увидеть шаблон проекта, появляющийся под названием вашей компании в новом диалоге проекта.

Пользовательская настройка

На данный момент у вас есть копия существующего шаблона проекта, которая не очень полезна. Я полагаю, у вас есть несколько классов, которые можно использовать почти во всех ваших проектах? Как насчет того, чтобы включить их в этот шаблон?

  1. Скопируйте нужные файлы и вставьте их в новый шаблон проекта, т.е. перейдите в / Library / Developer /Xcode/ Templates / Project Templates // MySuperProjectTemplate.xctemplate /
  2. Снова откройте файл Template Info.plist в TextEdit. Первое, что нам нужно сделать, - указать шаблону проекта включить новые файлы, чтобы найти ключ с именем "Узлы", который имеет массив значений. Добавьте две следующие строки:

    _VARIABLE_classPrefix: identifier_.h_VARIABLE_classPrefix: identifier_.m

Например, если ваш контроллер называется BaseViewController, строки будут выглядеть так:

___VARIABLE_classPrefix: идентификатор ___BaseViewController.h ___VARIABLE_classPrefix: идентификатор ___BaseViewController.m

Шаг 2

  1. Затем найдите ключ Definitions, и вы должны увидеть словарь в качестве его значения. Здесь мы должны добавить ссылку на включенные файлы. Создайте новый ключ и назовите его ___VARIABLE_classPrefix: идентификатор ___BaseViewController.h (снова взяв в качестве примера BaseViewController).

Шаг 3

  1. Значение этого ключа снова словарь. Он содержит ключ с именем Path и строковое значение, которое является именем файла, например BaseViewController.h
  2. Я приложил следующие изображения, чтобы показать, что я имею в виду, так как я думаю, что мое описание не соответствует действительности. Вы можете заметить, что там есть ключ под названием "Группа", который, как вы можете догадаться, позволяет вам создавать группы и входные файлы напрямую: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>

значение в пользовательском шаблоне, чтобы у нас был полностью пустой шаблон, в котором мы можем делать любые пользовательские вещи.

Другие вопросы по тегам