运行iOS应用会导致框架“代码签名无效”的运行时错误


32

每次我尝试运行此应用程序时,它都会生成OK,然后安装,但是一旦运行,该应用程序就会中断并打印此错误消息。XCode 11和iOS 13。

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论坛上都看到过许多类似的帖子,但都没有一个解释或有效的解决方法。我试过了

  • 清洁和建筑
  • 重新启动XCode
  • 重新启动Mac
  • 完全重置钥匙串
  • 验证所有钥匙串证书信任设置都在“使用系统默认值”上
  • 恢复出厂设置我的Mac

更新1: 我的iOS设备似乎有问题。该应用程序可以在模拟器上启动,但是该模拟器不能满足我的开发目的,因此我需要在设备上进行这项工作。我最近将iPhone XR更新为iOS 13.3.1。

更新2: 发现另一个小组似乎也有相同的问题https://github.com/flutter/flutter/issues/49504


StandardCyborgFusion.framework来自哪里?联系其开发人员...
user3441734

1
您是否尝试过链接或嵌入框架?
行人

1
所有应用程序都会发生此错误。不是特定于框架的。
艾丹·罗斯伍德

添加了更新。它似乎是特定于设备的,因为它可以在模拟器上运行,并且我的一个朋友能够在其设备上编译相同的框架。
艾丹·罗斯伍德

1
您的StandardCyborgFusion.framework没有经过代码签名,或者未针对arm64体系结构进行编译。您仍然没有告诉我们如何获得框架。另外,如果有人告诉您重新启动Xcode来解决编译/链接问题,请对它们进行投票。
克劳斯·约根森

Answers:


25

我正在使用CocoaPods,对我来说,这可以修复错误(有关github问题的Wasa22解答):

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

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


该解决方案实际上有效!
RapsIn4

由于我刚借了一个朋友的开发者帐户,所以没有时间来验证这是否可行,但是我会将此标记为正确。如果其他人可以确认这也适用于他们,我将不胜感激。
艾丹·罗斯伍德

如果我没有podfile,该怎么办?
abdou31

1
注释掉use_frameworks并运行pod update命令就足够了
Lahiru Prasanna

26

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

您可以:

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

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


我从iOS 13.3.1降级到13.3。不能只等苹果解决这个问题。
Starsky

呵呵...似乎在安装iOS 13.3.1时无法备份数据,然后在iOS 13.3上还原它。遗憾的是(((必须在相同的iOS版本下执行还原。因此,这也不是解决方案……
Starsky

我希望早日找到这个答案。。。我花了3个小时来尝试配置构建设置,二进制文件和构建阶段。。。预先获得付费帐户即可解决
Marcus Kim

经典苹果,产生一个促使您购买东西的错误。
达里乌斯·布海

非常感谢您提供正确正确的答案+1。
mAc

3

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


1
苹果在3月24日发布了iOS 13.4。此更新包括代码签名问题的修复程序!有关更多信息,请参考iOS 13.4 beta 3。
罗孚

2

我看到两种解决方法。

  1. 降级到iOS 13.3。除非您拥有付费的开发者帐户,否则iOS 13.3.1会破坏第三方签名。如果可能(购买专用于开发的廉价iPhone)

  2. 将Mac OS,Xcode和iOS更新到最新的Beta版本(仅更新其中的任何一个都行不通,因为iOS beta需要最新的Xcode beta,而Xcode需要最新的Mac OS Catalina)


0

如果从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),并将让所有人知道是否听到了声音。有关github的更多详细信息


0

尝试构建到实际的iOS设备时遇到了此问题(但在模拟器中工作正常)。我花了至少10个小时来修复此错误。尝试了所有论坛中的所有内容,但没有任何效果。但是,这终于对我有用!

  • 从iOS 13.3.1升级到iOS 13.4.1

我无法想象,但确实如此,除非您拥有付费的开发者帐户,否则iOS 13.3.1会破坏第三方签名!


您只需要将iOS设备升级到13.4.x。升级后,我可以运行一些示例项目,而无需进行任何其他调整。
corban
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.