Лучшие практики для кросс-компиляции библиотеки MacOS / iPhone - PullRequest
2 голосов
/ 22 марта 2010

Я собрал статическую библиотеку, которая прекрасно работает в среде Cocoa Touch. Теперь я хотел бы скомпилировать его и для Какао. Могу ли я иметь один проект XCode с разными целями SDK? Есть ли какой-нибудь ресурс, способный дать подсказки о лучших практиках в этом (и другом) смысле?

Ответы [ 2 ]

1 голос
/ 22 марта 2010

Последние два месяца я работал именно над этой задачей (кросс-компиляция статической библиотеки для iPhone / Android / Mac OS / Linux / Windows ...

Это, конечно, возможно, хороший способ,добавление внешнего проекта xcode в качестве цели в ваш первый проект xcode. Таким образом, вы создаете новую «Активную конфигурацию» для Mac OS X, iPhone и других платформ, которые вы хотите поддерживать.

Здесь , вы можете найти хороший учебник о том, как использовать вторичный проект Xcode в качестве цели вашего основного проекта для создания статической библиотеки. Это крутой способ, потому что если вы отлаживаете, например, у вас все еще есть все символы библиотеки, и т. д..

1 голос
/ 22 марта 2010

Это можно сделать, но это требует ручной настройки сборки.

Начните с Руководство по системе сборки Xcode.

В качестве неофициального способа для этого вы можете создать два отдельных проекта и добавить ссылки на точно такой же набор исходных файлов библиотеки для каждого проекта. Установите один проект для компиляции для Cocoa-Touch, а другой для Cocoa. Если оба проекта ссылаются на одни и те же файлы, изменения, сделанные в одном проекте, будут автоматически отражены в другом. (Если у вас открыты оба проекта, Xcode будет жаловаться, что файл был изменен другим приложением, но в противном случае он не заметит.)

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

...