库未加载:@rpath/FBLPromises.framework/FBLPromises iOS 13.3.1

Library not loaded: @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 构建它但没有成功。

更新二:

您可能正在使用免费的开发者帐户。 Apple 通过 13.3.1 升级阻止在免费帐户上使用外部框架。如果仍然可行,请尝试降级到 13.3 或购买 Apple Developer License。

更新 04/2020:升级到 iOS 13.4 和 XCode 11.4 目前解决了这个问题。

可能是 Xcode 或框架本身的问题,我在 Xcode 11.4 beta 和 iOS 13.4 beta 1 上遇到了同样的错误。使用 Xcode 11.3.1 for 运行 在真实设备上,直到发布 Xcode 的下一个测试版。

打开文件扩展名并确保它在库中。

Open Xcode -> Products -> YourApp.app -> "Show in Finder"

你看

"YourApp.app" -> This file "right click" and click -> "Show package contents"

如果此处缺少库,您需要检查它们的框架连接。

我试着注释掉 #use_frameworks 行!在 pod 文件中并且有效

我遇到了同样的问题。 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

将 iPhone 更新到 iOS 13.3.1 后,我遇到了同样的问题。 对我有用的修复: 在 Podfile 中删除 use_frameworks! 并在每个 pod 后添加 ,:modular_headers => true。 关闭 xcode、更新 pods 并重建。

我的完整 Podfile 如下所示:

target 'HeatingClient' do
  # use_frameworks!

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

end

看起来在免费帐户上避免错误的唯一方法是使用 ios 13.3,因为即使在 iOS 13.4 beta 苹果也没有修复它。 使用 use_modular_headers! 不适用于 Firebase。

如上所述:

Apple blocked utilizing external frameworks on free accounts with 13.3.1 upgrade.

因此请使用具有有效订阅的开发者帐户或使用静态库。

- 使用use_modular_headers!

您是否使用非开发人员 Apple ID 在 phone 上安装应用程序?看起来 iOS 13.3.1 已经损坏了使用免费 Apple ID 安装的应用程序,但前提是它们包含嵌入式框架。如果可以 link 所有依赖项作为静态库而不是框架(例如,如果您使用的是 Cocoapods,您可以从 Podfile 中删除 use_frameworks!),那么现在应该可以解决问题。

我使用的是 Apple 免费帐户,切换到 Apple 付费帐户并且它在 iOS 13.3.1

中有效

此问题特定于 iOS 13.3.1 具有免费开发帐户的设备,我苦苦挣扎了 4 天并找到了解决方案。

  1. 从项目文件夹中卸载 Pods,使用终端:

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

  2. 在项目中再次初始化pods,终端: 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 (命令+Shift+K)

  6. 运行 并在您的 iOS 13.3.1 设备上使用免费开发者帐户构建。

问题出在 iOS 13.3.1 和免费开发者帐户上。该问题已在最新的 iOS 13.4 beta 上修复,我确认了。 现在你可以使用

use_modular_headers!

而不是

use_frameworks!

在项目 Podfile 中