Ответ 1
Попробуйте добавить следующую строку в Пути поиска пути вашей цели.
@executable_path/Frameworks
your_target → Настройки сборки → Связывание → Пути поиска пути поиска
Я запускаю свое приложение с xcode на мое устройство iOS, и я получаю этот и черный экран на устройстве iOS.
Консольный текст:
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /private/var/mobile/Containers/Bundle/Application/10DB2FE8-EF09-4857-B4AC-0DB2E4419D6F/App-Name.app/App-Name
Reason: image not found
(lldb)
Попробуйте добавить следующую строку в Пути поиска пути вашей цели.
@executable_path/Frameworks
your_target → Настройки сборки → Связывание → Пути поиска пути поиска
У меня была такая же проблема. В результате я добавил структуру в следующих местах:
General > Embedded Binaries
General > Linked Frameworks and Libraries
Build Phases > Link Binaries with Libraries
Введенные двоичные файлы, казалось, были для меня ключом.
Мне помогает добавить @executable_path/Frameworks
в проект Пути поиска пути, а не целевые.
your_project → Настройки сборки → Связывание → Пути поиска пути
Ни один из других решений не помог мне, но все было исправлено, удалив каталог Xcode Derived Datastrong > .
Мне пришлось переключить "Встроенное содержимое со сводным кодом" на "Да", чтобы заставить мое приложение Obj-C работать после обновления встроенной среды Obj-C с помощью объекта Swift.
О да. Я столкнулся с этой проблемой, тратя часы на решение. Вы можете попытаться установить "Всегда встраивать строгие стандартные библиотеки" в "Да" в разделе "Настройки сборки"> "Параметры сборки"
(не забудьте сменить + cmd + K ваш проект после)
В целевой среде Framework (не в приложении) перейдите в "Настройки сборки"> "Параметры сборки"> "Всегда встраивать стандартные библиотеки быстрого доступа в YES".
Это решило проблему для меня!
Я столкнулся с той же проблемой, установив правильный идентификатор значка кода, решив проблему (параметры сборки → Идентификация подписи кода).
В соответствии с Apple техническими вопросами "Все сертификаты разработчика Enterprise и стандартного iOS, созданные после выхода iOS 8, имеют новое поле Team ID в нужном месте для запуска языковых приложений Swift"
~/Library/Developer/Xcode/DerivedData
Всем удачи!
В моем случае эта проблема входит в проект Objective-c, в котором я использую среду Swift (AirWatch SDK).
Решения. Я решил эту проблему с помощью Xcode 9.3 и 11.0.1 iOS, как указано ниже:
Установите Always Embed Swift Standard Libraries на Yes в настройках сборки.
Установите Subpath и выберите назначение как Framework для вашей добавленной структуры в Build Phases> Вставьте фреймворки, как показано на скриншоте.
Надеюсь, это поможет кому-то.
У меня была эта ошибка в проекте командной строки (Xcode 10.2 и macOS 10.14.3)
Решение было обновить до macOS 10.14.4
Проекты командной строки Swift не будут работать в macOS 10.14.3 и более ранних версиях, если только вы не установите пакет поддержки командной строки Swift 5 Runtime. Без этого пакета проекты командной строки Swift аварийно завершают работу при запуске с ошибками "dyld: Library notloaded". (46824656)
У меня было такое же сообщение об ошибке, вот как я его решил:
Проблема исходила из сертификатов, созданных автоматически Xcode. Мне пришлось отозвать эти сертификаты, чтобы их вернуть с сайта developer.apple.com
Решение тогда: - Перейти на developer.apple.com/сертификаты → Отменить сертификаты ИЛИ идите в Xcode > предпочтения > учетные записи > Подробнее > выберите Sigining identity > clic setting whell > revoke - Получите developmentper.apple.com и следуйте инструкциям по созданию новых сертификатов - В Xcode в моем проекте: перейдите в Code Signing Identity и подпишите обе строки отладки сгенерированным сертификатом - Обе строки выпуска установлены в "iOS Developer" - Тогда проект > чистый - Создание и запуск на устройстве
@Сайкиран ответил, что работал.
Мои сертификаты были созданы до выхода iOS 8. Я отозвал все свои сертификаты и обновил все профили подготовки, и он немедленно решил мои проблемы.
У меня недостаточно репутации, чтобы проголосовать за @Сайкиран, но это определенно помогло решить проблему.
Я уже правильно установил пути поиска Runpath, но он все еще не работает. @Justin Domnitz ответ положил меня на правильный путь: настройка "Always Embed Swift Standard Libraries" на "Да" в настройках моей целевой сборки сделала для меня трюк.
Для меня работала установка опции
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
в YES в проекте → Настройки сборки → Параметры сборки
(Намириальный каркас через Cocoapods)
Это сообщение об ошибке также может возникать при использовании сборки фреймворка в другой версии Swift, а затем той, которая используется в настоящее время, например. если вы обновите Xcode.
Ни одно из вышеперечисленных решений не помогло мне. Я изменил настройки доверия сертификата разработчика iPhone в связке ключей. Это должно быть всегда доверие. Измените его на " Использовать системные настройки по умолчанию". Дважды щелкните сертификат в связке ключей, чтобы открыть экран параметров Обнаружено, что из этого блога
У меня было такое же сообщение об ошибке, вот как я его решил: Это происходит потому, что я изменил идентификатор пакета, поэтому я просто положил старый идентификатор пакета и снова начал работать
Кажется, эта проблема была вызвана включением файла Swift в пользовательскую структуру objective-c. Также не уверен, что связанный, но мой целевой объект был построен в objective-c. Также построим симулятор в отладке. Еще не подтвержден релиз или архив.
Кроме того, для параметров проекта Runpath Search для целевого объекта проекта были установлены "@executable_path/Frameworks", в целевых настройках для среды, для которой они были установлены: "@executable_path/Frameworks" и "@loader_path/Frameworks".
После того, как вы попытались перестроить пользовательскую структуру и снова подключиться к цели приложения, очистить папку с производными данными и пару других предложений, то, что в конечном итоге сработало для меня, было изменение настройки сборки в целевом проекте для проекта пользовательской инфраструктуры (не для приложения): "Всегда вставляйте Swift Standard Libraries" в "YES". Похоже, что не имеет значения, для чего была настроена настройка для приложения. Я проверил это, сбросив симулятор и восстановив его. Это похоже на ответ Даниэле Чеглиа, но я не смог добавить комментарий и хотел бы дать больше ясности.
Для меня Очистка проекта решает проблему!
У меня тоже такая проблема Все остальные способы не могли мне помочь, поэтому я сделал это глупо создал новый проект и установил pod с нуля и после подтверждения, что он работает правильно, я скопировал все файлы классов и файлы раскадровки, наконец-то! Я думаю, что это последний способ для него, возможно, может помочь вам.
У меня была похожая проблема в проекте Objective-C, где я начал включать файлы Swift.
В моем случае я создал две цели в основном проекте и добавил пустой файл Swift, который создает файл заголовка моста и некоторые конфигурации, но я пометил его только как член одной цели. Первая цель работает правильно, а вторая - нет, и я заметил, что различия в настройках сборки были следующие:
Пути поиска пути выполнения →
$(inherited)
и@executable_path/Frameworks
И мне также нужно было сослаться на заголовок моста Objective-C на файл, который был создан ранее:
Заголовок моста Objective C →
pathTo/Target-Bridging-Header.h
После добавления этих двух настроек вторая цель начала работать должным образом.
Попробуйте очистить папку сборки, у меня возникла та же проблема, и я решил ее следующим образом: Product → Clean Build Folder
Для запуска симулятора перезагрузки эта проблема решена.
Я попробовал кучу описанных выше случаев, и это, похоже, не решило мою проблему. Я использую git и cocoapods для проекта, и ошибка исчезла, как только я сделал новую фиксацию.
У меня была эта проблема раньше в iPod touch iOS 9.3. И я использовал все методы, упомянутые в этом сообщении , но никто из них не работал.
Я проверил настройки своего проекта. И в другом флагом ссылки я обнаружил, что добавил -Wl,-sectcreate,__RESTRICT,__restrict,/dev/null
.
Этот флаг предотвращает добавление dyld в телефон с джейлбрейком. Когда я удалю этот флаг, приложение можно запустить снова. Я не уверен, почему это сработало. Потому что в iPhone se iOS 10 мне не нужно удалять эту строку. Но он действительно работал в iPod touch iOS 9.3. Поэтому проверьте это, если у вас такая же ситуация, как и я.
Пожалуйста, проверьте *.framework, если есть каталог структуры подписи _CodeSignature. Если папка _CodeSignature отсутствует, перейдите к этапам сборки, нажмите +, чтобы добавить этап создания нового файла копирования, чтобы создать файлы копирования. после этого сделайте ссылку на *.framework и выберите Code Sign On Copy.