2014-11-27 5 views
10

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

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» в раздел «Пути поиска пути» в разделе «Настройки сборки» в приложении «Цель». Готово.

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

Последовав совет в this otherwise-excellent piece и глядя на решениях, предлагаемых в Dev Forums с точно таким же вопросом, я совершенно смущенным. Что-нибудь еще я могу попробовать?

ответ

8

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

  1. В динамической библиотеке Framework цели на установке Имя базы, используйте "@rpath"
  2. В динамической библиотеке Framework цели на Установить имя, используйте "$ (DYLIB_INSTALL_NAME_BASE: standardizepath)/$ (EXECUTABLE_PATH)" - это автоматически разрешает имя вашего фреймворка.
  3. В путях поиска пути запуска приложения используйте «@ executable_path/Frameworks».
  4. Убедитесь, что для параметра «Всегда искать пользовательские пути» установлено значение №. Ракурсы поиска по базе данных также могут быть пустыми.
  5. Если это после обеда, налейте себе три пальца скотча. Ты заслужил это.

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

+1

Вы должны использовать фазу сборки «Копировать рамки» вместо фазы сборки «Копировать файлы». – fluidsonic

+0

@fluidsonic, который работал на меня. Добавляем новую фазу сборки файлов копий и устанавливаем пункт назначения в Framework, а затем добавляем структуру в список. Мне не пришлось менять какие-либо пути. – Kyle

+0

Я не могу сказать, насколько я люблю тебя сейчас. Я искал, как это решить в течение 2 часов. – rcrmn

Смежные вопросы