Библиотека не загружена: @rpath/FBLPromises.framework/FBLPromises iOS 13.3.1

Мое приложение вылетает во время обеда и появляется такая ошибка:

dyld: Library not loaded: @rpath/FBLPromises.framework/FBLPromises
  Referenced from: /private/var/containers/Bundle/Application/11X3EC15-5A16-4E27-AC4A-FB0503E6F1E2/Zeta.app/Zeta
  Reason: no suitable image found.  Did find:
    /private/var/containers/Bundle/Application/11X3EC15-5A16-4E27-AC4A-FB0503E6F1E2/Zeta.app/Frameworks/FBLPromises.framework/FBLPromises: code signature invalid for '/private/var/containers/Bundle/Application/11X3EC15-5A16-4E27-AC4A-FB0503E6F1E2/Zeta.app/Frameworks/FBLPromises.framework/FBLPromises'

    /private/var/containers/Bundle/Application/11X3EC15-5A16-4E27-AC4A-FB0503E6F1E2/Zeta.app/Frameworks/FBLPromises.framework/FBLPromises: stat() failed with errno=25
    /private/var/containers/Bundle/Application/11X3EC15-5A16-4E27-AC4A-FB0503E6F1E2/Zeta.app/Frameworks/FBLPromises.framework/FBLPromises: code signature invalid for '/private/var/containers/Bundle/Application/11X3EC15-5A16-4E27-AC4A-FB0503E6F1E2/Zeta.app/Frameworks/FBLPromises.framework/FBLPromises'

    /private/var/containers/Bundle/Application/11X3EC15-5A16-4E27-AC4A-FB0503E6F1E2/Zeta.app/Frameworks/FBLPromises.framework/FBLPromises: stat() failed with errno=1
    /private/var/containers/Bundle/Application/11X3EC15-5A16-4E27-AC4A-FB0503E6F1E2/Zeta.app/Frameworks/FBLPromises.framework/FBLPromises: code signature invalid for '/private/var/containers/Bundle/Application/11X3EC15-5A16-4E27-AC4A-FB0503E6F1E2/Zeta.app/Frameworks/FBLPromises.framework/FBLPromises'

    /private/var/containers/Bundle/Application/11X3EC15-5A16-4E27-AC4A-FB0503E6F1E2/Zeta.app/Frameworks/FBLPromises.framework/FBLPromises: stat() failed with errno=1
(lldb)

Я использовал его на своем устройстве (iPhone 11 pro) iOS 13.3.1. Он работал отлично, прежде чем я обновил свое устройство до iOS 13.3.1 . Мое приложение также отлично работает на симуляторе (iPhone 11 - iOS 13.3). Использование Xcode 11.3.1.

Удаление профиля с моего устройства и повторное доверие не помогли.

ОБНОВЛЕНИЕ: Пытался собрать его с помощью Xcode Beta 11.4 и не работал.

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

  • Единственные контейнеры, которые я использую, это Firebase/Auth, Firebase/Core, Firebase/Firestore.
  • Комментирование use_frameworks! и используя use_modular_headers! дал мне эти ошибки: Showing Recent Issues The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 4.3, but the range of supported deployment target versions is 8.0 to 13.2.99. (Для всех модулей в проекте)

12 ответов

Решение

Вероятно, вы используете бесплатную учетную запись разработчика. Apple заблокировала использование внешних фреймворков на бесплатных учетных записях с обновлением 13.3.1. Попробуйте перейти на версию 13.3, если это еще возможно, или купите лицензию разработчика Apple.

ОБНОВЛЕНИЕ 04/2020: Обновление до iOS 13.4 и XCode 11.4 в настоящее время решает эту проблему.

У меня была такая же проблема после обновления моего iPhone до iOS 13.3.1. Исправление, которое сработало для меня: в подфиле удалитьuse_frameworks! и добавить ,:modular_headers => trueпосле каждой капсулы. Закройте xcode, обновите поды и перестройте.

Мой полный подфайл выглядит так:

target 'HeatingClient' do
  # use_frameworks!

  pod 'RxSwift',:modular_headers => true
  pod 'RxCocoa',:modular_headers => true

end

Эта проблема характерна для устройств iOS 13.3.1 с бесплатной учетной записью разработчика, я боролся с ней 4 дня и получил решение.

  1. Удалите Pods из папки проекта, используя терминал:

    sudo gem install cocoapods-deintegrate cocoapods-clean pod deintegrate pod clean rm Podfile

  2. Снова инициализируйте модули в проекте, терминале:pod init

  3. В Podfile измените эту строку:

    target 'exampleproject' do
      # Comment the next line if you don't want to use dynamic frameworks
        use_frameworks!
    

    к этим строкам:

    target 'exampleproject' do
      # Comment the next line if you don't want to use dynamic frameworks
      # use_frameworks!
      use_modular_headers!
    
  4. Снова установите Pods в терминал:pod install

  5. Откройте проект файлом.xcworkspace и выполните Product > Clean Build Folder(Command+Shift+K)

  6. Запускайте и создавайте с помощью бесплатной учетной записи разработчика на своем устройстве iOS 13.3.1.

Как уже упоминалось выше:

Apple заблокировала использование внешних фреймворков на бесплатных учетных записях с обновлением 13.3.1.

Так что используйте учетную запись разработчика с активной подпиской или используйте статические библиотеки.

Решение для Cocoapods - использованиеuse_modular_headers!

Я использовал бесплатную учетную запись Apple, перешел на платную учетную запись Apple, и она работала в iOS 13.3.1

Вы используете Apple ID, не являющийся разработчиком, для установки приложения на свой телефон? Похоже, что в iOS 13.3.1 установлены неработающие приложения с бесплатными идентификаторами Apple ID, но только если они содержат встроенные фреймворки. Если возможно связать все ваши зависимости как статические библиотеки, а не фреймворки (например, если вы используете Cocoapods, вы можете удалить use_frameworks! Из своего Podfile), это должно решить проблему на данный момент.

Проблема связана с iOS 13.3.1 и бесплатными учетными записями разработчиков. проблема исправлена ​​в последней бета-версии iOS 13.4. Подтверждаю. пока вы можете использовать

use_modular_headers!

вместо того

use_frameworks!

в проекте Podfile

Похоже, единственный способ избежать ошибки в бесплатной учетной записи - использовать ios 13.3, потому что даже в бета-версии iOS 13.4 Apple не исправила это. С помощьюuse_modular_headers! не работает для Firebase.

Вероятно, проблема в Xcode или самом фреймворке, у меня была такая же ошибка в Xcode 11.4 beta и iOS 13.4 beta 1. Используйте Xcode 11.3.1 для работы на реальных устройствах, пока не будет выпущена следующая бета-версия Xcode.

Я столкнулся с той же проблемой. силаuse_modular_headers! чтобы избежать сбоя, и код ниже работает для меня.

# Uncomment the next line to define a global platform for your project
#platform :ios, '10.0'

target 'YourApp' do

   use_modular_headers!
  # Pods for YourApp

   pod 'Kingfisher', '~> 5.0'
   pod 'GoogleMaps'
   pod 'GooglePlaces'
   pod 'Firebase/Analytics'

end

Я пробовал закомментировать строку # use_frameworks! в файле pod, и это сработало

Откройте расширение файла и убедитесь, что оно есть в библиотеке.

Откройте Xcode -> Продукты -> YourApp.app -> "Показать в Finder"

И ты видишь

"YourApp.app" -> Этот файл "щелкните правой кнопкой мыши" и выберите -> "Показать содержимое пакета"

Если библиотеки здесь отсутствуют, вам необходимо проверить их соединения с фреймворком.

Другие вопросы по тегам