Создание 64-разрядного и Универсального 32/64-bit FxPlugs
Весь существующий FxPlugs должен быть перекомпилирован для 64-разрядного, чтобы продолжать работать с Движением 5, Final Cut Pro X и FxPlug 2.0 SDK. Этот документ описывает, как создать 64-разрядный FxPlug, а также как создать универсальное 32/64-bit 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»
Сделать это:
Выберите цель
Щелкните по вкладке «Build Setting»
Нажмите «All» (Значение по умолчанию Xcode 4 является «Основным», который исключает настройки «Architectures».)
Установите «Архитектуру», раскрывающуюся в «64-разрядный Intel»


2) Ссылка против 64-разрядной версии FxPlug.framework и PluginManager.framework (если Ваш проект требует его),
Чтобы сделать это, сначала удалите 32-разрядное FxPlug.framework и PluginManager.framework из Вашего проекта. Когда запрошено, обязательно выберите опцию «Remove Reference Only».
Добавьте 64-разрядное FxPlug.framework и PluginManager.framework путем выполнения этих шагов:
Выберите цель
Щелкните по вкладке «Build Phases»
Под «Двоичным файлом Ссылки С Библиотеками», щелкают + знак
Нажмите «Add Other...»
Перейдите к
/Developer/Examples/FxPlug/Выбрать
FxPlug.frameworkиPluginManager.frameworkи нажмите «Open»


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


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» из меню.




2) Переименуйте исходную цель и ее связанный продукт <PLUG-IN_NAME> 32 бита.
Для изменения имени продукта выберите цель, щелкните по вкладке «Build Settings», ищите «Название продукта» в разделе «Packaging» и введите на имя, на которое Вы хотите изменить его. Вы заметите запись в группе «продуктов» в изменениях навигатора.


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


4) По умолчанию Xcode 4 автоматически создает схемы при создании каждой цели, поэтому переименуйте схемы непротиворечивости.
Чтобы сделать это, выберите «Manage Schemes...» из раскрывающейся «Схемы».




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


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


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


8) Добавьте «Выполненный Сценарий» фаза сборки к совокупной цели.
Чтобы сделать это, щелкните по кнопке «Add Build Phase» в нижней части и выберите «Add Run Script».


Введите следующее перечисление как текст сценария, заменив <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 |


9) Выберите соответствующую схему Совокупной цели из раскрывающейся «Схемы». Уберите и создайте Совокупную цель. Скопируйте получающийся FxPlug в папку Plug-Ins или сделайте символьную ссылку к созданному двоичному файлу, как Вы обычно были бы.
История версии документа
| Дата | Примечания |
|---|---|
| 12.07.2011 | Новый документ, обсуждающий, как создать 64-разрядный и универсальный 32/64-bit FxPlugs для Движения 5, Final Cut Pro X и FxPlug 2.0 SDK. |