Подтвердить что ты не робот

Динамическая структура iOS 8: библиотека не загружена

Я работаю над приложением iOS 8, которое включает расширение Share. Цели приложения и расширения используют новую динамическую структуру iOS 8-стиля. В попытке вчера получить чертову вещь в TestFlight Beta App Review (см. здесь и здесь), Я внес изменения в конфигурацию сборки. Магазин в конечном итоге принял приложение для обзора, но сегодня, когда я пытаюсь запустить на своем устройстве, я получаю следующую ошибку:

dyld: Library not loaded: /Users/aaron/Library/Developer/Xcode/DerivedData/VideoGrabber-gpyzpfvbijsnuyglzzvynckkuwee/Build/Products/Debug-iphoneos/MyAppKitiOS.framework/MyAppKitiOS Referenced from: /private/var/mobile/Containers/Bundle/Application/4C6CFF22-0595-4222-A515-D0D5A1696DBF/MyApp.app/MyApp Reason: image not found

В поисках другой помощи я столкнулся с рядом предлагаемых решений:

  • Добавьте фреймворк в раздел "Встроенные двоичные файлы приложения" вкладки "Общие". Готово.

  • Введите "@executable_path/Frameworks" в раздел "Пути поиска пути" в разделе "Настройки сборки" в приложении "Цель". Готово.

  • Убедитесь, что на этапе сборки "Копировать файлы" есть запись. Шаг первый на самом деле делает это для вас, поэтому... Готово.

Следуя рекомендациям в в этом отличном отрезке и глядя на решения, предлагаемые в Dev Forums с той же проблемой, я полностью смущен. Что-нибудь еще я могу попробовать?

4b9b3361

Ответ 1

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

  • В базовую базу имен имен динамической библиотеки Framework используйте "@rpath"
  • В имени установки динамической библиотеки Target Target используйте "$ (DYLIB_INSTALL_NAME_BASE: standardizepath)/$(EXECUTABLE_PATH)" - это автоматически разрешает имя вашей структуры.
  • В путях поиска пути траектории приложения используйте "@executable_path/Frameworks".
  • Убедитесь, что для параметра "Всегда искать пользовательские пути" установлено значение "Нет". Пути поиска по базе данных также могут быть пустыми.
  • Если это после обеда, налейте себе три пальца скотча. Вы заработали это.

С утра до сих пор я утешаю себя нежным плачем.