Файл .app не работает в другой системе MAC

Я создал приложение MAC с библиотеками libmysqlclient.a и libmysqlclient.18.dylib с языком Objective-C в Xcode 6.3.1 в OSX Yosemite 10.10.3. Он отлично работает при работе через Xcode. И я также заархивировал файл .app, чтобы установить приложение на свой MAC, он тоже работает нормально. Но когда я попытался установить его на другой Mac, приложение вылетело и показало сообщение

«dyld: библиотека не загружена: libmysqlclient.18.dylib Ссылка на: /Users/developer/Documents/UntitledFolder/UserName/SampleApp.app/Contents/MacOS/SampleApp Причина: изображение не найдено».

Из этого сообщения я понимаю, что конкретный MAC не имеет «libmysqlclient.18.dylib». Итак, вот мой вопрос: «Обязательно ли, чтобы на каждом MAC была библиотека для установки и запуска приложения?». Может ли кто-нибудь дать мне решение для этого с подробным форматом создания файла .app и его установки в других системах MAC.

Заранее спасибо.


person shlok    schedule 24.07.2015    source источник


Ответы (1)


Вы включили в свое приложение как статическую (.a), так и динамическую (.dylib) библиотеки. которые делают то же самое. Статическая библиотека компилируется в вашу программу, делая ее больше. Вместе с вашим приложением поставляется динамическая библиотека. или уже установлен в вашей целевой системе. Если вы отправляете его вместе со своим приложением, он должен находиться в папке Frameworks вашего приложения. (вы создаете эту папку в Build Phases, Copy File). Используйте install_name_tool -id, чтобы установить имя установки библиотеки на @executable_path \ .. \ Frameworks, а также в настройках сборки установите для Runpath Search Paths то же самое.

person Bruce    schedule 19.10.2015