Я пытаюсь запустить приложение Swift на своем iPhone 4s. Он отлично работает на симуляторе, и мой друг может успешно запустить его на своем iPhone 4s. У меня iOS 8 и официальный релиз Xcode 6.
я пытался
- Перезапуск Xcode, iPhone, компьютера
- Очистка и восстановление
- Отзыв и создание нового сертификата / профиля предоставления
- Пути поиска по пути
$(inherited) @executable_path/Frameworks
- Встроенный контент содержит код Swift «Да»
- Code Signing Identity является разработчиком
Ниже приведена ошибка в целом
dyld: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/AppName
Reason: no suitable image found. Did find:
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/AppName.app/Frameworks/libswiftCore.dylib: mmap() error 1 at
address=0x008A1000, size=0x001A4000 segment=__TEXT in Segment::map() mapping
/private/var/mobile/Containers/Bundle/Application/LONGSERIALNUMBER/APPLICATION_NAME/Frameworks/libswiftCore.dylib
Ответы:
Для меня ни одно из предыдущих решений не сработало. Мы обнаружили, что в настройках сборки есть флаг «Всегда встраивать Swift Стандартные библиотеки», который должен быть установлен в YES. Это было НЕТ по умолчанию!
Build Settings > Always Embed Swift Standard Libraries
После установки, очистите проект, прежде чем строить снова.
Для увлеченных читателей некоторые пояснения . Самая важная часть:
Флаг раньше назывался
Embedded Content Contains Swift Code
источник
Удивительно, но все, что я сделал, это «Очистил» мой проект (shift + cmd + K), и это сработало. Действительно, похоже, связано с сертификатом.
источник
Я начал получать эту ошибку, когда я удалил:
из
Runpath Search Paths
в моих настройках сборки. Замена его исправила все снова (слава богу за контроль над источниками!)Я не знаю, как он туда попал, но, похоже, он нужен бинарному файлу, чтобы найти встроенную среду выполнения Swift.
источник
@loader_path/../Frameworks
для модульных тестов macOS и@loader_path/Frameworks
для модульных тестов iOS, которые нужно было добавить.Для устройства также необходимо добавить динамический каркас в
Embedded binaries
раздел наGeneral
вкладке проекта.источник
В Xcode 8 опция для
Embedded Content Contains Swift Code
опции больше не доступна.Он был переименован в
"Always Embed Swift Standard Libraries = YES"
источник
Я думаю, что это ошибка, когда сертификаты генерируются непосредственно из XCode. Чтобы решить (по крайней мере, в Xcode 6.1 / 6A1052d):
источник
Хорошо, поделитесь здесь еще одной причиной этой ошибки. Мне понадобилось несколько часов, чтобы разобраться с этим.
В моем случае политикой доверия моего сертификата в Keychain Access было Always Trust , и возвращение его к значениям по умолчанию решило проблему.
Чтобы открыть окно настроек сертификата, дважды щелкните сертификат в списке сертификатов Keychain Access.
источник
У меня была проблема с запуском моих тестов Swift (но не моего приложения). Оказывается, что тест должен иметь больше, чем
@executable_path/Frameworks
вRunpath Search Paths
настройке сборки для цели теста. Задание путей поиска пути к следующему сработало для меня:источник
carthage copy-frameworks
так как это была вторичная зависимость (та, которую добавил фреймворк, который я использовал )Эта проблема возникает снова в Xcode 10.2 . Вы должны загрузить и установить следующий пакет от Apple. Он обеспечивает Swift 5 Runtime Support для инструментов командной строки .
https://support.apple.com/kb/DL1998?locale=en_US
источник
msvcrt.dll
Вы должны установить
Runpath Search Paths
значение,@executable_path/Frameworks
как показано на следующем снимке экрана Настройки сборки:Если у вас есть какие-либо встроенные фреймворки, сделанные в Swift, тогда вы можете установить
YES
параметры сборкиEmbedded Content Contains Swift Code
.источник
otool -L
потому что эти дилибы сказали мне, что они уже используют@rpath/...
для своего собственного пути. Теперь, установив путь поиска Runpath на путь к этой папке, я могу запустить свой инструмент, и он найдет дилибы, которые хранятся в папке рядом с ним.@rpath/libswiftAppKit.dylib
. Вопрос веди меня , чтобы узнать , что я должен был добавить SearchPath: на@executable_path/../Frameworks/
основе этих инструкций . Относится ли это только к структуре моего проекта, я не могу сказать. Следует отметить, что мне не нужно было очищать DerivedData, чтобы этот параметр вступил в силу!Я думаю, что Apple уже подвела итог под сбоями приложений Swift при попытке обратиться к библиотеке Swift libswiftCore.dylib
Цитируется по техническим вопросам QA1886 :
Как AirSign ребята утверждают , проблемные корни из недостающего OU атрибута в предметной области сертификата In-House .
Тема: UID = 269J2W3P2L, CN = iPhone Распространение: Название компании, OU = 269J2W3P2L , O = Название компании, C = FR
У меня есть сертификат развития предприятия, создание нового решило проблему.
источник
Давайте проект P импортирует пользовательскую библиотеку L, тогда вы должны добавить L в
P -> Build Phases -> Embed Frameworks -> +
, Это подходит для меня.источник
Самый простой и легкий способ игнорировать: очистить и восстановить.
Это решило проблему после того, как попробовал ответы выше и не сработало.
источник
У меня возникла та же проблема после перехода на новый Mac, и после нескольких часов, пробуя все предложенные ответы на вопросы, у меня ничего не получалось.
Решением для меня была установка этого недостающего сертификата. http://developer.apple.com/certificationauthority/AppleWWDRCA.cer
Нашел ответ здесь. https://stackoverflow.com/a/14495100/976628
источник
Измените ресурсы для копирования модулей для цели с:
чтобы:
источник
Я решил удалить производные данные, и на этот раз он работал правильно. Пробовал с Xcode 7.3.1GM
источник
Это сообщение об ошибке также может быть вызвано при обновлении Xcode (и впоследствии до новой версии Swift), и ваш проект использует платформу, созданную / скомпилированную с более старой / предыдущей версией Swift.
В этом случае перестройка фреймворка и его повторное добавление решит проблему.
источник
Испытав все, я наконец-то обнаружил, что сборка, кажется, не всегда включает в себя каждую деталь снова и снова. Может быть, для ускорения процесса ... Чтобы убедиться, что перед упаковкой на устройстве должна быть ВЕСЬ упаковка, сначала выполните Clean: Shift-Cmd-K. Затем создайте с помощью: Cmd-B. После этого запустите его на своем устройстве. Легко. С наилучшими пожеланиями всем вам, ребята в этом месте!
источник
В моем случае это было просто название моей цели:
Я переименовал это так: MyApp.something и та же проблема появилась. Но я увидел в окне «Настройки сборки», имя моего продукта было изменено, как это MyApp-что-то . Итак, я удалил точку в моем имени цели ( MyAppSomething ), и проблема исчезла.
источник
Для меня, попробовав все безуспешно, я работал над тем, чтобы удалить
@executable_path/Frameworks
изPackaging section
(во-первых, не знаю, как это произошло)источник
Ни одно из решений не сработало для меня. Перезагрузка телефона исправила это. Странно, но это сработало.
источник
ни одно из этих решений не сработало, но когда я изменил разрешение всемирного сертификата разработчика на
Use System defaults
оно сработало. Я включил шаги и скриншоты в ссылку нижеЯ бы посоветовал вам зарегистрировать тикет в отчете об ошибках Apple, как упомянуто здесь, поскольку Apple действительно должна решить эту серьезную ошибку: https://stackoverflow.com/a/41401354/559760
источник
Xcode 7.2, iOS 9.2 на одном устройстве, 9.0 на другом. У обоих была ошибка. Понятия не имею, что изменилось, что вызвало это, но решения выше для WWDR были правильными для меня. Установите этот сертификат и проблема решена.
https://forums.developer.apple.com/message/43547 https://forums.developer.apple.com/message/84846
источник
Там есть много ответов, но, возможно, мой ответ кому-нибудь поможет.
У меня та же проблема, мое приложение работает нормально на симуляторе, но на устройстве произошел сбой, когда я запускаю приложение и выдает ошибку, как указано выше. Я перепробовал все ответы и решения. В моем случае, у моего проекта несколько целей. Я создал дубликат цели B из цели A. Цель B работает нормально, в то время как цель A потерпела крах. Я использую различные активы изображения для каждой цели. После поиска и поиска в Google я нашел кое-что, что может кому-то помочь.
Приложение перестает падать, когда я меняю имя Активов запуска изображений для обоих приложений. например, Target A LaunchImage Image имя актива LaunchImage A. Цель B Имя объекта Lunch Image LaunchImage B и назначается правильно на вкладке «Общие» каждой цели. Мои приложения работают нормально.
источник
Для меня создание приложения Swift для MacOS из командной строки, которое зависело от сторонних библиотек Swift (например, SQLite), похоже, ни одно из вышеперечисленных решений не сработало. Что работало, так это непосредственное добавление следующего пути к моим путям поиска Runpath в настройках сборки:
/Applications/Xcode.app/Contents//Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/macosx/
При этом во время выполнения выдается предупреждение о том, что Xcode обнаружил 2 версии libswiftCore, что имеет смысл. За исключением того, что исключение этой строки привело к тому, что Xcode не обнаружил никаких версий libswiftCore.
В любом случае, для меня это подойдет, даже если это не так - мое приложение - это просто утилита, которую я не собираюсь распространять, и, по крайней мере, оно работает сейчас!
источник
У меня установлено несколько версий Xcode одновременно. Фреймворк был построен с более новой версией Xcode. Приложение, которое я пытался скомпилировать, было с более старой версией Xcode. Когда я очистил и скомпилировал фреймворк и приложение с одной и той же версией Xcode, все заработало.
источник
Я начал получать подобную ошибку при тестировании добавления файла S3 с помощью сервисов AWS. Ниже была ошибка. dyld: библиотека не загружена: @ rpath / AWSAutoScaling.framework / AWSAutoScaling
Я искал много и выше решения также не помогают мне. Ниже ссылка помогла мне решить эту проблему.
https://forums.developer.apple.com/thread/21292
Что говорит, чтобы исправить эту проблему, повторно загрузив WWDR (Apple Worldwide Certification Authority) .
источник
Я на Xcode 8.3.2. Для меня проблема заключалась в том, что сертификат AppleWWDRCA находился в цепочке ключей системы и входа в систему. Удалены оба, а затем добавлены просто брелок для входа, теперь он снова работает нормально. 2 дня потеряно 😭
источник
Я использую Xcode 8.3.3 и Xcode 9.2. Решением для меня было переключить мой Xcode по умолчанию с 8 на 9, используя Xcode Select:
$ xcode-select --print-path
$ sudo xcode-select -switch /Applications/Xcode-9.2.app
Изменить: На самом деле, что, казалось, здесь помогло то, что Xcode 9.2 использовал производные данные из Xcode 8.3.3. Не решение, но, по крайней мере, оно позволяет мне двигаться вперед с моей работой.
источник
Если вы получаете сообщение об ошибке, подобное этому:
и используйте CocoaPods в своей структуре, затем попытайтесь отредактировать
Podfile
и удалитьinherit! :search_paths
изTest
цели, и запуститьpod install
снова.Для получения дополнительной информации см. Https://github.com/CocoaPods/CocoaPods/issues/8868 .
источник