Как включить статическую зависимость библиотеки в шаблон Xcode?

Я могу включить такую ​​фреймворк в файл TemplateInfo.plist:

<key>Frameworks</key>
            <array>
                <string>QuartzCore</string>
                <string>OpenGLES</string>
                <string>OpenAL</string>
                <string>AudioToolbox</string>
                <string>AVFoundation</string>
                <string>UIKit</string>
                <string>Foundation</string>
                <string>CoreGraphics</string>
            </array>

Но я не могу найти, как сделать что-то подобное со статическими библиотеками. Это значительно улучшит мой шаблон. Существуют ли такие функции?

Ответы

Ответ 1

Я нашел решение.

В templateInfo.plist добавить ключ Цели → SharedSettings

<key>OTHER_LDFLAGS</key>
<string>ObjC -all_load -weak_library /usr/lib/libz.dylib ..</string>

Он добавляет ваш dylib для отладки и запуска настроек.. не работает с автозаполнением, так как xcode может работать с фреймворками, но все равно намного лучше, чем делать вручную

EDIT: expalin

<key>Targets</key>
<array>
    <dict>
        <key>Dependencies</key>
        <array><integer>0</integer></array>
        <key>Frameworks</key>
        <array>
            <string>CoreAudio</string>              
        </array>
        <key>SharedSettings</key>
        <dict>
            <key>OTHER_LDFLAGS</key>
            <string>-ObjC -all_load -weak_library /usr/lib/libz.dylib -weak_library /usr/lib/libstdc++.dylib </string>
        </dict>     
    </dict>

Ответ 2

Лучший способ, который я нашел для этого, - создать псевдоним в каталоге /usr/lib внутри вашей папки шаблонов. Оттуда вы можете получить доступ ко всем libs, которые находятся в /usr/lib, даже те, которые являются самими псевдонимами.

Сначала я создаю шаблоны, редактируя .plists в XCode, а не редактируя сами представления xml. Итак, как я объясню шаги, которые я предпринял для включения статических библиотек в мой шаблон.


1) У меня есть шаблон проекта: iPhoneOS.platform/Разработчик/Library/Xcode/Шаблоны/Шаблоны проектов/Приложение/C4 Application.xctemplate

(В Xcode 4.3 Шаблоны проектов/Приложение можно найти непосредственно в Xcode.app, щелкнув правой кнопкой мыши на пакете и выбрав "Показать содержимое пакета" )

image

Кишки этой папки выглядят следующим образом:

image

2) Как вы можете видеть на изображении выше, я создал псевдоним для папки lib (/usr/lib), который содержит статические библиотеки, и переместил псевдоним в мою папку .xctemplate.

image

3) В моем файле TemplateInfo.plist я указываю 2 вещи: словарь и Node. Я помещаю их в Определения и Узлы TemplateInfo.plist

image

Во-первых, в определениях node я указываю словарь: Libs/libalias.dylib

Внутри этой библиотеки у меня есть 2 строки Группа: Модераторы Путь: lib/libalias.dylib

node выглядит следующим образом:

image

Важно, чтобы синтаксис был именно таким, и самое главное, что имя самого Словаря указывает библиотеку, которую вы хотите импортировать. В этом случае я импортирую библиотеку libalias.dylib.

Также важно, чтобы Path был lib/libalias.dylib, потому что это укажет на псевдоним, который указывает на вашу папку /usr/lib.

Во-вторых, в массиве Nodes я указываю элемент как строку, которая называется Libs/libalias.dylib(обратите внимание: точное имя, указанное в словаре, указанном в Определениях)

image

Вот что должен выглядеть элемент node.

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

image

ПРИМЕЧАНИЕ: потому что я назвал свой словарь Libs/... и указал его Group as Libs, библиотека, которую я импортирую, появляется в подпапке под названием Libs в моем Навигаторе проектов.