Mac App не будет работать за пределами Xcode, отсутствует библиотека? Использование библиотеки ORSSerial

Мое приложение создается без ошибок и предупреждений и прекрасно работает в Xcode 7.2.1. Но когда я архивирую его и пытаюсь открыть за пределами XCode, значок кратковременно мигает, и я получаю эту ошибку:

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
  Library not loaded: @rpath/ORSSerial.framework/Versions/A/ORSSerial
  Referenced from: /Users/USER/Desktop/*/Ascel AE20125 Controller.app/Contents/MacOS/Ascel AE20125 Controller
  Reason: image not found

Binary Images:
    0x7fff626f2000 -     0x7fff62729007  dyld (360.19) <9D05FDF4-65CE-3B53-86D4-ABE1A5BF35F3> /usr/lib/dyld
    0x7fff962e5000 -     0x7fff962e5fff  com.apple.Cocoa (6.11 - 22) <0A634D46-B468-3CBC-B2A0-16C381C11BF2> /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa
    0x7fff9c462000 -     0x7fff9c7b6ff7  com.apple.Foundation (6.9 - 1256.1) <66106CC9-9D97-3846-88D8-4BF6BB508296> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation

Как я могу скомпилировать свое приложение, чтобы оно работало вне Xcode? Эта проблема возникает, когда я пытаюсь открыть свой скомпилированный.app без среды XCODE.

Приложение сделано с использованием Swift.

2 ответа

Решение

Чтобы немного расширить ответ @NickolayOlshevsky, необходимо убедиться, что ORSSerial.framework копируется во внутреннюю папку Frameworks вашего приложения. На этапах сборки вашего проекта вы должны убедиться, что есть фаза (например, Embed Frameworks), которая копирует ORSSerial.framework в целевую папку Frameworks:

Вставить Фреймворк этап сборки

Другой способ настроить это - добавить платформу в раздел "Встроенные двоичные файлы" на вкладке "Общие" целевых параметров:

введите описание изображения здесь

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

Скорее всего, вы копируете библиотеку в выходной пакет только для конфигурации отладки и пропускаете ее для выпуска. Проверьте настройки проекта / цели.

Другие вопросы по тегам