41

我的应用程序在午餐时崩溃并出现此错误:

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构建它,但没有成功。

更新二:

  • 我使用的唯一 pod 是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.对于项目中的所有 pod)
4

12 回答 12

34

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

更新 04/2020:升级到 iOS 13.4 和 XCode 11.4 目前可以解决此问题。

于 2020-02-06T19:08:58.857 回答
8

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

我的完整 Podfile 如下所示:

target 'HeatingClient' do
  # use_frameworks!

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

end
于 2020-02-13T08:39:04.517 回答
6

如上所述:

Apple 通过 13.3.1 升级阻止在免费帐户上使用外部框架。

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

Cocoapods 的解决方案- 使用use_modular_headers!

于 2020-02-13T15:47:46.000 回答
5

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

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

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

  2. 在项目、终端中再次初始化 pod: 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. 在终端中再次安装 Pod: pod install

  5. 通过文件 .xcworkspace 打开项目并执行Product > Clean Build Folder ( Command++ Shift)K

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

于 2020-02-25T12:36:18.593 回答
3

我使用的是苹果免费账户,切换到苹果付费账户,它在 iOS 13.3.1 中运行

于 2020-02-21T15:12:40.477 回答
2

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

于 2020-02-13T16:38:08.523 回答
2

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

使用_modular_headers!

代替

使用_frameworks!

在项目 Podfile

于 2020-02-28T11:07:16.937 回答
1

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

于 2020-02-13T11:33:05.050 回答
0

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

于 2020-02-08T20:41:47.933 回答
0

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

打开 Xcode -> 产品 -> YourApp.app -> “在 Finder 中显示”

你看

“YourApp.app” -> 此文件“右键单击”并单击 -> “显示包内容”

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

于 2020-02-08T20:50:54.800 回答
0

我尝试注释掉#use_frameworks!在 pod 文件中,它工作

于 2020-02-09T14:22:02.493 回答
0

我遇到了同样的问题。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
于 2020-02-12T13:24:58.150 回答