Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/96.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Xcode 10中为企业分发代码时,代码签名框架失败_Ios_Xcode - Fatal编程技术网

Ios 在Xcode 10中为企业分发代码时,代码签名框架失败

Ios 在Xcode 10中为企业分发代码时,代码签名框架失败,ios,xcode,Ios,Xcode,我正在尝试为Enterprise分发应用程序,并不断收到此错误(在选择配置文件后): 挖掘日志可以发现: 2018-09-21 04:14:07 +0000 /var/folders/xj/stm8l48s1nq9320sfh3ytw140000gn/T/XcodeDistPipeline.IsE/Root/Payload/Fleet UAT.app/Frameworks/AppAuth.framework: replacing existing signature 2018-09-21 0

我正在尝试为Enterprise分发应用程序,并不断收到此错误(在选择配置文件后):

挖掘日志可以发现:

2018-09-21 04:14:07 +0000  /var/folders/xj/stm8l48s1nq9320sfh3ytw140000gn/T/XcodeDistPipeline.IsE/Root/Payload/Fleet UAT.app/Frameworks/AppAuth.framework: replacing existing signature
2018-09-21 04:14:07 +0000  /var/folders/xj/stm8l48s1nq9320sfh3ytw140000gn/T/XcodeDistPipeline.IsE/Root/Payload/Fleet UAT.app/Frameworks/AppAuth.framework: code object is not signed at all
2018-09-21 04:14:07 +0000  /usr/bin/codesign exited with 1
类似的问题也发生在项目使用的所有框架上。这些框架是使用迦太基添加的


这是在我升级到Xcode 10和Carthage 0.30.1(我以前使用的是0.16.x)之后开始的。

几天前我遇到了这样的问题。问题与您的框架有关,它可能已损坏。您可以下载或生成一个新的框架。这解决了我的问题。

当您使用迦太基添加框架时,您需要遵循一些步骤以使其正常工作。以下是一个教程:

在您的情况下,请确保:

  • 您将框架添加为
    链接的
    (不是
    嵌入的

  • 在构建阶段,您有
    运行脚本
    阶段:
    

  • 您为所有迦太基框架添加了路径(输入文件)


  • 我可以通过将目标的构建设置“仅构建活动体系结构”更改为“是”,然后从“有效体系结构”更改为“i386”来解决此问题。我在这里找到了我的解决方案:

    从“将二进制文件链接到库”部分删除迦太基框架修复我的项目中的相同问题

    如何将
    AppAuth.framework
    添加到您的项目中?豆荚,迦太基,手动?@lobstah它是使用迦太基添加的。这发生在我所有的框架上,不仅仅是AppAuth;很快将发布答案确保您的迦太基框架是链接的,而不是嵌入的,并且您有
    /usr/local/bin/carthage copy frameworks
    脚本以及使用迦太基添加的框架列表。将添加一个答案可能不一样;我所有的框架都会发生这种情况还有一件事:运行脚本阶段必须是最后一个阶段(在嵌入框架之后);我猜嵌入框架阶段会复制框架,并且
    carthage copy Frameworks
    会剥离模拟器切片,因此它们需要是正确的顺序,而不是
    carthage copy Frameworks
    ,您必须指定输入/输出文件,您还可以使用
    strip frameworks.sh
    ,从中自动扫描frameworks文件夹,并帮助我了解到底发生了什么事情,这对我来说根本不起作用。如果我不将它们放在嵌入的二进制文件部分,我总是会收到这个错误
    dyld:Library not loaded:@rpath/Alamofire.framework/Alamofire
    (当应用程序运行时),这就是为什么你需要第2步:运行脚本:
    /usr/local/bin/carthage copy frameworks
    并在下面添加所有的carthage框架(作为输入文件)