2016-02-08 4 views
0

В моем коде используется внешняя библиотека с использованием dlsym (по причинам, не зависящим от моего контроля). неБиблиотека iOS не загружается при использовании IPA

В порядке Xcode, чтобы найти свою библиотеку, я должен был сделать 2 вещи:

  • -force_load "$(SRCROOT)/pathTo/myLibrary.a"
  • Dead-Code СТРИППИНГ NO

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

Однако, если я создаю файл AdHoc IPA и установил его на свое устройство, эта же библиотека больше не будет найдена.

В чем может быть разница?

+1

Вы уверены, что ipa имеет файл 'myLibrary.a' внутри? App Store не позволит этого сделать. Просто попробуйте связать библиотеку с проектами через библиотеки Build Phases -> Link и попытаться добавить флаг «-ObjC» в «Другие связанные флагов», возможно, это сработает для вас. Удалите свою библиотеку из Ресурсов копирования Bundle, если она есть. –

+0

Да, если я открою IPA с помощью браузера архива, я вижу файл .a. Но почему я не хочу этого? Как еще устройство может получить эту библиотеку? –

+1

Вы можете добавить только один исполняемый файл в .app, имя которого является значением для ключа «CFBundleExecutable» из Info.plist. Ваша библиотека будет скомпилирована, когда вы запустите команду «build» в Xcode. –

ответ

0

Это то, что решается вопрос:

В Строительства Настройки → Развертывание → Strip сшитый продукт выберите NO.