缺少库的必需代码签名

28

我正在使用Xcode 8中的Swift 3.0,并在运行我的应用程序时遇到此错误。我已经使用第三方库SlideMenuController

当我运行我的应用程序时,我一次又一次地遇到这个错误,但没有找到任何解决方案。

删除派生数据有时有效,但并不总是如此。

/Users/amsyt014/Library/Developer/CoreSimulator/Devices/8615687B-36F4-4367-9289-C265F3DABDD5/data/Containers/Bundle/Application/4794E2EF-863E-4836-A8E7-5A0F0ABA52E0/Shopaves.app/Frameworks/SlideMenuControllerSwift.framework/SlideMenuControllerSwift: 对 '/Users/amsyt014/Library/Developer/CoreSimulator/Devices/8615687B-36F4-4367-9289-C265F3DABDD5/data/Containers/Bundle/Application/4794E2EF-863E-4836-A8E7-5A0F0ABA52E0/Shopaves.app/Frameworks/SlideMenuControllerSwift.framework/SlideMenuControllerSwift' 所需的代码签名丢失

10个回答

25

以下的Podfile命令对我很有帮助:

post_install do |installer|
    installer.pods_project.build_configurations.each do |config|
        config.build_settings.delete('CODE_SIGNING_ALLOWED')
        config.build_settings.delete('CODE_SIGNING_REQUIRED')
    end
end

2
如果清理派生数据无效,这是一个绝妙的解决方案! - Adrian
清除派生数据没有帮助。这个方法有效!感谢分享。 - Nitin Alabur
这个完美地运行。删除派生数据和清理项目并没有起作用。 - Oleh Veheria

24

方法 1

将以下代码添加到您的 Podfile 文件中:

post_install do |installer|
    installer.pods_project.build_configurations.each do |config|
        config.build_settings.delete('CODE_SIGNING_ALLOWED')
        config.build_settings.delete('CODE_SIGNING_REQUIRED')
    end
end

方法2

按照以下步骤操作:

  1. 从您遇到此问题的移动设备或模拟器中删除应用程序。
  2. 在项目导航器中选择slideMenuController.framework,右键单击它,然后单击“在Finder中显示”。打开_CodeSignature文件夹并删除除CodeResources以外的所有文件。

  3. 关闭Xcode,打开终端并输入以下命令:

  4. rm -rf ~/Library/Developer/Xcode/DerivedData
    

    这将从XCode中删除所有派生数据。

  5. 打开XCode,清理并运行应用程序。希望问题能够解决。


方法2中的脚本在内部执行了什么操作?我猜只是禁用了代码签名,对吗? - Awais Fayyaz

12

我曾经在我的Mac10.12.5和Xcode 9上遇到同样的问题。看起来存储在导出数据位置的现有数据存在问题,所以最好只是通过以下方式删除您的导出数据:

XCode>Prefrences>Locations>click on arrow at Derived Data location & delete it.

或者通过在终端上输入以下命令来执行:确保你的xcode在应用程序中或者你要提到你的xcode位置:

rm -rf ~/Library/Developer/Xcode/DerivedData

现在打开XCode,运行应用程序。希望问题能得到解决。 祝你好运...


它对我起作用了。我遇到了代码签名要求:RoundedSwitch.framework的问题。 我做了同样的事情,但请记得在删除DerivedData文件夹之前关闭模拟器和Xcode。 - AbaEesa

6

我正在使用同一个库。以下是我解决问题的方法。

在xCode中找到你的项目文件夹/pods文件夹中的SlideMenuControllerSwift.framework。前往finder中的该位置。

在框架内部,你会找到_CodeSignature文件夹。我在那个_CodeSignature文件夹中有大约5个文件。删除除Code Resources文件之外的所有文件。

清理项目并运行。


1
谢谢,这对我有用。顺便说一下,之前我删除了SlideMenuControllerSwift的POD文件才能正常工作。我遵循的步骤是:
  1. 注释掉SlideMenuControllerSwift的POD名称并重新安装POD。
  2. 清理构建。
  3. 再次取消注释SlideMenuControllerSwift的POD名称并重新安装POD。希望这对你有用。
- Tushar J.

3
我已经通过将“ENABLE_BITCODE”设置为0来解决了我的问题。

1
嗨,谢谢你分享这个,这也解决了我的问题。 - jedt

3

我也遇到了相同的问题,使用Xcode 8.0版本并开启了“自动管理签名”功能。

其他解决方案是:

请参考此问题:https://github.com/Carthage/Carthage/issues/1401

第二个解决方案可能适用于您。

注意:请从这里删除派生数据 ~/Library/Developer/Xcode/DerivedData


Xcode 8.0 中的问题似乎无法解决,即使我已经尝试过了,但没有用 :( - Niranjan Singh Patel

1

只需删除派生数据和设备上的应用程序即可解决问题。如果这不起作用,请尝试切换自动签名开关。


1
我通过在 Build Setting --> Code Signing Identity 下设置档案来解决了这个问题。我的嵌入式框架(自己框架中的另一个框架)被添加到 Build Phase 的 Copy Files 部分。
祝好运!

0

只需在Xcode首选项/位置中更改您当前正在运行的正确Xcode版本即可。

Please refer this image for your reference


0

在创建自己的框架并通过 Pods 更新时,我遇到了这个错误。

关闭了 自动管理签名,现在它运行良好。

希望能对你有所帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接