Приложение OSX аварийно завершает работу при загрузке, когда платформа ParseOSX с ошибкой Dyld

У меня есть приложение OSX, и я добавил SDK ParseOSX. Я выполнил все инструкции на странице быстрого запуска (https://www.parse.com/apps/quickstart#parse_data/desktop/osx/existing)

Приложение работает нормально в Xcode (версия 5.1.1 (5B1008)), но когда я архивирую, создаю пакет и устанавливаю его. Я получаю следующую ошибку Dyld;

Сообщение об ошибке Dyld: Библиотека не загружена: @executable_path /../ Frameworks / ParseOSX.framework / ParseOSX Ссылка на: /Applications/MyApp.app/Contents/MacOS/MyApp Причина: изображение не найдено

Он продолжается и перечисляет загруженные двоичные изображения.

Поискав в Интернете, я нашел ссылку на добавление фазы создания копий файлов и добавление к ней структуры синтаксического анализа с местом назначения, установленным в каталог «Продукты».

Похоже, что динамическая библиотека где-то не установлена.

ОБНОВИТЬ:

Я только что очистил папку сборки, и теперь приложение даже не запускается под Xcode. Я получил:

dyld: библиотека не загружена: @executable_path /../ Frameworks / ParseOSX.framework / ParseOSX Ссылка на: /Users/Ants/Library/Developer/Xcode/DerivedData/MyApp-hjrbgyhzpwnxhiaskxpojqyqxnvh/Build/Products/Produnts/Products / MacOS / MyApp Причина: изображение не найдено

ОБНОВЛЕНИЕ 2:

Оказывается, когда ты на странице быстрого старта. Если вы выбрали вариант нового приложения, вы получите проект Xcode. Это компилируется. Просматривая его, я вижу, что есть этап копирования файлов, который копирует ParseOSX.framework в место назначения Frameworks. Пробовал это мое приложение, и теперь я получаю ошибку подписи

/Users/Ants/Library/Developer/Xcode/DerivedData/MyApp-hjrbgyhzpwnxhiaskxpojqyqxnvh/Build/Products/Debug/MyApp.app: code object is not signed at all In subcomponent: /Users/Ants/Library/Developer/Xcode/DerivedData/MyApp-hjrbgyhzpwnxhiaskxpojqyqxnvh/Build/Products/Debug/MyApp.app/Contents/Frameworks/ParseOSX.framework


person Ants    schedule 17.06.2014    source источник
comment
На шаге 2 при перетаскивании фреймворка Parse вы установили флажок для копирования файла?   -  person Fosco    schedule 18.06.2014
comment
Привет, @Fosco, спасибо за идею, я только что добавил ее, и фреймворк находится в каталоге приложения рядом с файлом xcodeprojt, так что да, похоже, он скопирован.   -  person Ants    schedule 18.06.2014
comment
Я просто создаю тестовое приложение только со строкой [Parse setApplicationId:@"rterter" clientKey:@"ertert"]; в делегате. Получите точно такую ​​же ошибку. dropbox.com/s/h2xea315dldwqjc/ParseTestApp.zip   -  person Ants    schedule 18.06.2014
comment
Итак, если я загружу новый проект Xcode, я смогу запустить его. Пройдемся по настройкам сборки и посмотрим, что изменилось.   -  person Ants    schedule 18.06.2014


Ответы (3)


Я столкнулся с той же проблемой с xcode 6.1. Исправлено добавлением ParseOSX.framework в «Встроенные двоичные файлы» на вкладке «Общие» страницы «Цели».

person mark.ed    schedule 02.11.2014
comment
Мне нужно было добавить оба ParseOX.framework и Bolts.framework в качестве встроенных двоичных файлов. Только тогда он будет работать без ошибок. ПРИМЕЧАНИЕ. Я различал переделанный проект Parse Xcode и мой собственный проект Parse, и встроенные двоичные файлы, казалось, были единственной разницей, которую я мог видеть сколько-нибудь важной. (Отказ от ответственности: я не рассматривал каждую разницу подробно, и я не экспортирую файлы проекта Xcode, поэтому YMMV). Но встроенные двоичные файлы, похоже, работают. - person Joel; 20.01.2015
comment
У меня тоже исправлено, что-то сломалось после обновления с parse 1.7.5 до 1.9. Как всегда, в этой библиотеке нет обновлений, которые бы проходили гладко - person Cristi Băluță; 18.10.2015

Две вещи исправили это для меня.

Сначала мне нужно было добавить раздел копий файлов на этапы сборки и скопировать ParseOSX.framework в место назначения Frameworks.

И во-вторых, мне нужно было добавить --deep в «Другие флаги подписи кода» в разделе «Подписывание кода» в настройках сборки. Теперь он, кажется, подписывает копируемые фреймворки.

person Ants    schedule 18.06.2014
comment
Обратите внимание, что опция подписи глубокого кода должна иметь два дефиса, поэтому вместо этого добавьте --deep. - person Bojan Dimovski; 08.10.2014
comment
@boj и спасибо за это, я действительно добавил --deep. - person Ants; 09.10.2014

Я обновлял существующий проект синтаксического анализа до новейшего SDK (1.12.0) с помощью Xcode 7.2 и столкнулся с той же проблемой.

Решением для меня было установить Runpath Search Paths на @executable_path/../Frameworks.

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

Я нашел это, сравнив проект Starter из Parse с моим проектом.

person Benedicte Raae    schedule 27.01.2016
comment
Это исправило это для меня в Xcode 7.3.1 и Parse 1.12.0. Спасибо за совет. - person Baza207; 26.05.2016