Статические библиотеки на устройстве iPhone - PullRequest
4 голосов
/ 06 января 2009

У меня есть два проекта, приложение Cocoa iPhone и статическая библиотека, которую оно использует.

Я успешно протестировал его на симуляторе iPhone, но при попытке развернуть его на устройстве iPhone я получаю (символ не найден) ошибки ссылки.

Если я уберу зависимость от библиотеки, проект будет работать / работает нормально.

Я убедился, что все настройки сборки установлены на iPhoneOS, а не на симуляторе.

Я уверен, что это что-то простое, но кто-нибудь сталкивался с подобными проблемами при переходе с симулятора iPhone на устройство?

- РЕДАКТИРОВАТЬ: мне удалось создать новые проекты (один для приложения и один для статической библиотеки) и успешно запустить их на iPhone или симуляторе. Но у меня есть очень странная проблема ... для каждого конкретного проекта я не могу заставить его работать как на устройство, так и на симулятор ... Я дважды проверил настройки сборки, убедившись, что библиотеки, на которые ссылаются, предназначены для соответствующей сборки настройки (я считаю), но я не могу устранить эти ошибки связывания.

Я думаю, что, должно быть, я делаю что-то очень неправильное ... во всей документации Apple написано «это очень просто - один клик», но это доставляет мне много проблем.

Вероятно, это как-то связано с настройками сборки xCode, но я не могу понять, почему выбор разных платформ сборки и перестройка библиотек не работает.

Ответы [ 3 ]

7 голосов
/ 06 января 2009

Проверьте мой ответ на похожий вопрос для ссылки на статью, которая может помочь. Есть ссылка на интересную статью.

1 голос
/ 03 мая 2010

Я создал полный учебник о том, как создавать и использовать статические библиотеки, этот учебник охватывает метод, который также рекомендует Apple, может быть, люди найдут его полезным:

http://www.sodeso.nl/?p=822

Преимущества этого метода в том, что он автоматически перекомпилирует библиотеку в соответствии с настройками вашего проекта (так что никаких проблем со сборками устройства / симулятора)

1 голос
/ 13 января 2009

В конце концов я понял, в чем проблема.

Я изменил цель своего устройства с симулятора на устройство iPhone, затем удалил старую (симулятор) статическую библиотеку и подключил новую (устройство) библиотеку.

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

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

Это простая и глупая проблема, но та, которая принесла мне немного горя и времени. Я до сих пор не уверен, как правильно установить целевые зависимые настройки сборки, но, по крайней мере, если у кого-то возникают подобные проблемы, его стоит посмотреть.

...