Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

Настройка

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

[EDIT] В Xcode 5 PATH выглядит следующим образом: ~/Library/Developer/Xcode/Templates/Application/Project Templates. Если Templates/Application/Project Templates не существует, вы должны создать его. Благодарим seufagner в комментариях ниже для обновления, хотя я не пробовал это сам. [/EDIT]

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

Настройка

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

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

    < строка > _VARIABLE_classPrefix: идентификатор _.h </строка > < & строка GT; _VARIABLE_classPrefix: идентификатор _.m </строка >

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

< строка > ___ VARIABLE_classPrefix: идентификатор ___ BaseViewController.h </строка > < & строка GT; ___ VARIABLE_classPrefix: идентификатор ___ BaseViewController.m </строка >

Step 2

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

Step 3

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

Надеюсь, что это действительно полезно кому-то:) Любые вопросы, комментарии ниже, и я сделаю все возможное, чтобы ответить. Я сделал это несколько недель назад, поэтому моя память немного туманна.

Ответ 2

Вы также можете много узнать из проверки существующих шаблонов проектов, которые вы можете найти в:

/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 шаблоны, созданные Mattt Thompson. Просмотрите все примеры, в том числе созданные Apple, а затем вы можете начать создавать свои собственные.

Ответ 3

Хороший обзор всех переменных, используемых в файле plist, можно найти здесь: https://gist.github.com/shazron/943736

Ответ 4

@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>

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