如何 运行 导致框架 运行 时间错误的 iOS 应用程序 "code signature invalid"

How to run an iOS app that causes runtime error for frameworks "code signature invalid"

每次我尝试 运行 这个应用程序时,它都能正常构建并安装,但是一旦它 运行s,应用程序就会中断并打印此错误消息:

dyld: Library not loaded: @rpath/StandardCyborgFusion.framework/StandardCyborgFusion
  Referenced from: /private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/StandardCyborgExample
  Reason: no suitable image found.  Did find:
    /private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/Frameworks/StandardCyborgFusion.framework/StandardCyborgFusion: code signature invalid for '/private/var/containers/Bundle/Application/2292CCF2-800F-4E28-AF10-A1B98081DD0A/StandardCyborgExample.app/Frameworks/StandardCyborgFusion.framework/StandardCyborgFusion'

我在这里和 App Developer 论坛上看到了很多关于此问题的类似帖子,但没有人提供解释或有效修复。

我试过了:


我的 iOS 设备似乎有问题。该应用程序可以在模拟器上启动,但模拟器不适合我的开发目的,因此我需要在我的设备上运行它。我最近将 iPhone XR 更新为 iOS 13.3.1.


"Running new app on actual iOS (13.3.1) device crashes on startup: code signature invalid for "path/to/Flutter.framework/Flutter" #49504" 似乎是同一个问题。

我正在使用 XCode 11 和 iOS 13。

这是 iOS 13.3.1 的问题。当 运行 在个人配置 profile/developer 帐户上时,所有编译到最新版本 iOS 13.3.1 的动态框架都遇到此问题。下面是从 Github 复制自 jmagman 的解决方案。

您可以:

  1. 使用非个人团队配置文件(付费开发者帐户)。
  2. 运行 在 13.3.1 模拟器上。
  3. 在真实的 iOS 设备上测试 运行ning 13.3 或更低版本。
  4. 在您的测试设备上安装 beta 配置文件并安装 iOS 13.4 beta 3。(已修复)
  5. 等待 iOS 13.4 发布。

希望这个问题能尽快得到解决。

我正在使用 CocoaPods,对我来说这修复了错误(Wasa22 对 github 问题的回答):

  1. 打开播客文件
  2. 注释掉 use_frameworks!
  3. 添加use_modular_headers!
  4. 在终端中,执行 pod 更新 -> pod 安装
  5. 在 Xcode 中,清理 (Command-Shift-K) -> 构建并 运行。

来源: https://github.com/Alamofire/Alamofire/issues/3051

如果你从 Xcode 运行 你会看到这样的错误:

/private/var/containers/Bundle/Application/D0BD5694-A7D6-4820-A146- 
 A49DF0C0F0B1/Runner.app/Frameworks/Flutter.framework/Flutter: code signature 
invalid for '/private/var/containers/Bundle/Application/D0BD5694-A7D6-4820- 
A146-A49DF0C0F0B1/Runner.app/Frameworks/Flutter.framework/Flutter'

jmagman 在 Github

上提供的解决方案

jmagman 已升级到 Apple (FB7562472),如果他们听到任何消息,将会通知所有人。 more details on github

这似乎已在 iOS 13.4 beta 3 上修复。您可以安装 beta profile 或等待 iOS 13.4 的发布。

我看到了 2 种修复方法。

  1. 降级到 iOS 13.3。 iOS 13.3.1 会破坏第三方签名,除非您拥有付费开发者帐户。可能的话(弄个便宜的iphone专门开发)

  2. 将MacOS、Xcode和iOS更新到最新的Beta版本(单独更新其中任何一个都不起作用,因为iOS beta 需要最新的 Xcode beta,Xcode 需要最新的 Mac OS Catalina)

我在尝试构建到我的实际 iOS 设备时遇到了这个问题(但它在模拟器中运行良好)。我花了至少 10 个小时来修复这个错误。在所有论坛中尝试了所有方法,但没有任何效果。但这最终对我有用!

  • 正在从 iOS 13.3.1 升级到 iOS 13.4.1

我无法想象这一点,但是 iOS 13.3.1 破坏了第三方签名是真的,除非你有一个付费的开发者帐户!

这是 Apple 的问题。我通过将我的设备升级到 iOS 13.4.1 解决了这个问题 另外,如果你不想升级ios系统,而且你也使用Podfile,你可以做流程方式:

  • 注释掉use_frameworks!在播客文件中。
  • 添加use_modular_headers!
  • pod 分解 + pod 安装。
  • 清理 (Command-Shift-K) -> 构建并 运行。

我收到了与 GoogleUtilities.framework 相同的错误消息。我在 模拟器 上尝试 运行 时出现了问题。在设备上,它 运行 很好。问题是我的 MacBook 上的 CylancePROTECT 防病毒软件正在检测文件,这会导致应用程序崩溃。检查您的设备是否正在 运行ning CylancePROTECT 或其他阻止您需要的框架的防病毒软件。

我在使用本地框架时遇到了同样的问题。经过几个小时的调试,我只需要将默认的“不嵌入”更改为“嵌入并签名”,错误就消失了。值得一试! :)