Техническое примечание TN2284

Создание 64-разрядного и Универсального 32/64-bit FxPlugs

Весь существующий FxPlugs должен быть перекомпилирован для 64-разрядного, чтобы продолжать работать с Движением 5, Final Cut Pro X и FxPlug 2.0 SDK. Этот документ описывает, как создать 64-разрядный FxPlug, а также как создать универсальное 32/64-bit FxPlug.

Введение
Создание 64-разрядного FxPlug
Создание Universal FxPlug
История версии документа

Введение

Движение 5 и Final Cut Pro X является 64-разрядным только. FxPlug 2.0 SDK создает 64-разрядные плагины только. Это означает, что весь существующий FxPlugs должен быть перекомпилирован для 64-разрядного. В следующем мы описываем, как обновить существующий 32-разрядный FxPlug к 64-разрядному. Это также возможно (еще более сложный) для создания единственного универсального плагина, работающего и в 32 и в 64-разрядный. Списки документов шаги для достижения этого также.

Создание 64-разрядного FxPlug

В большинстве случаев создание 64-разрядного FxPlug является простым процессом, как описано ниже, если Вы не используете технологии, не существующие в 64-разрядном, таком как QuickTime или Углерод UI. Если Вы будете, однако, то необходимо будет переписать те части плагина, чтобы быть 64-разрядные совместимый.

Вот шаги для обновления существующего 32-разрядного FxPlug к 64-разрядному:

1) Установите свою архитектуру в «64-разрядный Intel»

Сделать это:

Рисунок 1  , Устанавливающий архитектуру

2) Ссылка против 64-разрядной версии FxPlug.framework и PluginManager.framework (если Ваш проект требует его),

Чтобы сделать это, сначала удалите 32-разрядное FxPlug.framework и PluginManager.framework из Вашего проекта. Когда запрошено, обязательно выберите опцию «Remove Reference Only».

Добавьте 64-разрядное FxPlug.framework и PluginManager.framework путем выполнения этих шагов:

  Платформы Добавления рисунка 2

3) Установите свою активную исполнимую программу для Движений 5

Чтобы сделать это, выберите «Edit Scheme» из раскрывающейся «Схемы» и выберите Motion 5 в качестве продукта, который Вы хотите запустить.

Рисунок 3  , Устанавливающий активную исполнимую программу

4) Обновите сигнатуры методов и свойства.

Найдите в своем коде все параметры метода UInt32 введите и измените их на NSUInteger. Пример такого метода -getOutputWidth:height:withInput:withInfo:. Также необходимо обновить плагин -properties метод для удаления kFxPropertyKey_EquivalentSMPTEWipeCode ключ и его соответствующее значение, поскольку этот ключ больше не используется хост-приложениями.

В этой точке необходимо быть в состоянии создать 64-разрядный плагин, загружающийся Движением 5, если Вы не используете APIs или библиотек, которые не являются 64-разрядные совместимый. Если Вы будете, то необходимо будет обновить код и/или библиотеки, чтобы быть 64-разрядные совместимый.

Создание Universal FxPlug

Можно также принять решение создать единственный универсальный плагин, работающий и в 32 и в 64-разрядный, но это обычно - намного более утомительный процесс. Посмотрите ниже для шагов для создания универсального 32/64-bit FxPlug от существующего 32-разрядного FxPlug. Для удобства мы отсылаем имя Вашего плагина <PLUG-IN_NAME>.

1) Создайте копию своей существующей цели

Чтобы сделать это, выберите 32-разрядную цель, право или управление щелкают по ней и выбирают «Duplicate» из меню.

  Duplicate Выбора рисунка 4 от
щелчка управления menuFigure 5
  получающаяся целевая копия

2) Переименуйте исходную цель и ее связанный продукт <PLUG-IN_NAME> 32 бита.

Для изменения имени продукта выберите цель, щелкните по вкладке «Build Settings», ищите «Название продукта» в разделе «Packaging» и введите на имя, на которое Вы хотите изменить его. Вы заметите запись в группе «продуктов» в изменениях навигатора.

Рисунок 6  , Переименовывающий исходную цель и продукт

3) Точно так же переименуйте недавно создаваемую цель к чему-то надлежащему, такому как <PLUG-IN_NAME> 64 бита. Переименуйте его связанный продукт, чтобы быть точно <PLUG-IN_NAME>, поскольку мы сделаем этот продукт универсальным.

Рисунок 7  , Переименовывающий новую цель и продукт

4) По умолчанию Xcode 4 автоматически создает схемы при создании каждой цели, поэтому переименуйте схемы непротиворечивости.

Чтобы сделать это, выберите «Manage Schemes...» из раскрывающейся «Схемы».

  Выбор рисунка 8 Управляет Схемами...
Рисунок 9  , Переименовывающий существующие схемы

5) Сделайте эту новую цель 64-разрядной путем выполнения процедур, обрисованных в общих чертах выше в разделе: Создание 64-разрядного FxPlug. Снова, если Вы будете использовать какой-либо APIs или библиотеки, которые не являются 64-разрядные совместимый, то необходимо будет обновить код и/или библиотеки, чтобы быть 64-разрядные совместимый.

6) Создайте новую Совокупную цель стиля.

Чтобы сделать это, щелкните по кнопке «Add Target» в нижней части и выберите шаблон «Aggregate» под «Другой» категорией.

Рисунок 10  , Создающий Совокупную цель стиля

Войдите <PLUG-IN_NAME> в «Product Name» окружают следующую страницу и нажимают «Finish».

Рисунок 11  , Вводящий Ваше сменное имя

7) Переключитесь на эту Совокупную цель. Щелкните по вкладке «Build Phases». Заставьте 32-разрядные и 64-разрядные цели быть зависимостями Совокупной цели.

  Зависимости от Добавления рисунка 12

8) Добавьте «Выполненный Сценарий» фаза сборки к совокупной цели.

Чтобы сделать это, щелкните по кнопке «Add Build Phase» в нижней части и выберите «Add Run Script».

Рисунок 13  , Добавляющий фазу сборки

Введите следующее перечисление как текст сценария, заменив <PLUG-IN_NAME> подлинным именем Вашего плагина.

Перечисление 1  Рабочий сценарий при создании совокупной цели

# Remove the 32-bit variant if it exists or the next lipo call will fail
lipo ${BUILD_DIR}/${CONFIGURATION}/<PLUG-IN_NAME>.fxplug/Contents/MacOS/<PLUG-IN_NAME> -output ${BUILD_DIR}/${CONFIGURATION}/<PLUG-IN_NAME>.fxplug/Contents/MacOS/<PLUG-IN_NAME> -thin x86_64

# Add in the newly build 32-bit variant to the 64-bit variant
lipo ${BUILD_DIR}/${CONFIGURATION}/<PLUG-IN_NAME>.fxplug/Contents/MacOS/<PLUG-IN_NAME> ${BUILD_DIR}/${CONFIGURATION}/<PLUG-IN_NAME>32bit.fxplug/Contents/MacOS/<PLUG-IN_NAME>32bit -output ${BUILD_DIR}/${CONFIGURATION}/<PLUG-IN_NAME>.fxplug/Contents/MacOS/<PLUG-IN_NAME> -create
Рисунок 14  , Вводящий содержание сценария

9) Выберите соответствующую схему Совокупной цели из раскрывающейся «Схемы». Уберите и создайте Совокупную цель. Скопируйте получающийся FxPlug в папку Plug-Ins или сделайте символьную ссылку к созданному двоичному файлу, как Вы обычно были бы.



История версии документа


ДатаПримечания
12.07.2011

Новый документ, обсуждающий, как создать 64-разрядный и универсальный 32/64-bit FxPlugs для Движения 5, Final Cut Pro X и FxPlug 2.0 SDK.