代码之家  ›  专栏  ›  技术社区  ›  Josh

应用程序安装失败。找不到代码签名

  •  19
  • Josh  · 技术社区  · 6 年前

    我最近升级到xcode10并开始更新我们的应用程序到switch4.2。经过一天左右的重建第三方框架和添加各种问题的解决方法,我能够在新的模拟器上运行我们的应用程序。

    我知道有一个 lot 属于 already answered questions 关于这个话题;然而,在互联网上,我无法让任何这些工作。

    它已经挡住我一天了&所以我想知道是否有人能洞察到如何减轻这种情况。

    1. 删除并重新下载我的计算机上的所有配置文件
    2. 正在清理生成目录(cmd+k&命令行(cmd+shft+k)
    3. 重新启动Xcode(版本10.0(10A254a)[GM])
    4. 重新启动我的设备(运行iOS 12.0 GM的iPhone X)
    5. 正在为上的应用程序重新生成配置文件developer.apple.com (我们使用手动签名)
    6. 正在删除和重新创建上应用程序的配置文件developer.apple.com
    7. 为蒂姆·库克牺牲了一只山羊
    8. 确保签名证书与设置配置文件匹配
    9. 从我的计算机中删除旧版本的Xcode&确保命令行工具在xcode10.0gm版本上
    10. 确保所有复制的框架 code sign on copy
    11. Ensured code signing required is set to YES in the SDKSettings.plist
    12. 删除了我计算机上所有旧的签名证书
    13. 删除(&A);将我的设备重新添加到developer.apple.com
    14. 将代码签名从手动更改为自动
    15. Developer 而不是 Distribution

    任何帮助都将不胜感激:)

    :我尝试重新下载并在新机器上从头开始重建,但出现了相同的问题。有趣的是,我可以很好地存档和验证应用程序。

    更新2 Skipping a profile because of error 0xe8008012 与此有关:

    https://gist.github.com/joshuawright11/6889ce1a0872262df77f97d63830baa5

    更新3 :因此,我能够通过在构建阶段注释掉carthage copy frameworks脚本(并在这样做之后清理/nuking派生数据)来安装它。当然,这意味着它在启动时崩溃,因为它缺少这些框架,但这确实意味着问题要么是与迦太基或链接的迦太基框架之一。不是我们的签名证书、配置文件或代码库。我将尝试一个接一个地删除这些框架,我将在这里更新。

    最终更新 终于弄明白了。这个解决方案被证明是相当利基(见下文),但希望这个问题作为一个在互联网上与这个问题有关的每一个解决方案的汇编哈哈。

    5 回复  |  直到 6 年前
        1
  •  8
  •   Josh    6 年前

    我想出来了:

    我在迦太基遇到了这个问题: https://github.com/Carthage/Carthage/issues/2472 当我把东西转移到xcode10时,使用了他们建议的解决方案,即设置扩展的代码符号标识。

    显然,这一行是导致迦太基在复制框架时伤害自己的原因,从而导致了错误。我下载了最新版本的迦太基来解决这个问题,然后删除了 EXPANDED_CODE_SIGN_IDENTITY=''

        2
  •  5
  •   mihai1990    6 年前

    不确定这是否也是您的情况,但我最近在尝试在iPhone上运行React本机应用程序时也遇到了此错误。在我整合之后就开始了 Lottie library for React Native

    此问题是由在生成阶段添加的此运行脚本引起的: http://ikennd.ac/blog/2015/02/stripping-unwanted-architectures-from-dynamic-libraries-in-xcode/ . 脚本未能从中提取架构Lottie.framework 给予 "input file (.../Lottie.framework/Lottie) must be a fat file when the -extract option is specified

    为了解决这个问题,我在脚本中添加了一个验证来跳过非fat文件:

    # ...
    echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
    
    if lipo -info "$FRAMEWORK_EXECUTABLE_PATH" | grep -iq "Non-fat file"
    then
    echo "This is a non-fat file, skipping"
    continue
    fi
    
    EXTRACTED_ARCHS=()
    # ...
    
        3
  •  4
  •   Ahmadreza    4 年前

    对我来说,这是我的迦太基密码标志。 我把它们设置成这样:

    enter image description here

        4
  •  3
  •   Mangu Dan Cornilescu    6 年前

    我在xcode 10.0(10A255)上也遇到了同样的问题。

    Xcode9.4.1(9F2000)总是能够毫无问题地提交应用程序。

    我可以解决删除所有支持文件(txt、json、rtf、html、ttf等)然后再次添加的问题。

        5
  •  1
  •   wcribbs    6 年前

    在我的情况下,我有一个无效的iPhoneXS规定和捆绑标识冲突。我的项目是在Xcode升级后尝试的,并说新手机已连接。完成上述步骤后(完全重新创建密钥链和配置文件,删除持久文件夹等)。

    1. 设置包标识符com.proj.app 其他的,例如:com.proj.app2
    2. 将产品名称从Product更改为Product123

    我很确定只有包标识符冲突阻止了我的设备正常自动进入配置的设备。

    1. 将标识符改回正常(如果需要)
        6
  •  1
  •   Branislav Bilý    5 年前

    我试过这条线的所有东西,但都没用。所以我重新安装了Xcode,突然一切又恢复正常了。

        7
  •  0
  •   Viker    6 年前

    在项目目标的构建阶段/Carthage中,按如下方式放置Carthage命令:

    扩展\u代码\u符号\u标识=''迦太基复制框架

    这只是解决get-environments var问题时的临时解决方案。

        8
  •  0
  •   Chiron    4 年前

    问题解决了,只要等一个晚上,什么也不做。

    细节:

    App Installation failed. No code signature found 昨天折磨了我一下午,

    “生成设置、框架设置、缓存目录、签名设置、清除、重新初始化、重新git克隆、协同操作清除等。”

    结果他们完全 无效/不工作。

    所以,我下班回家了。睡了一个好觉,早上一切正常。

    猜测 ,我的问题与开发包标识符注册的异常延迟有关。

    我在另一个项目中又遇到了这个问题。

    通过将所有导入的框架都作为当前项目的目标,而不是将外部框架作为子项目导入,可以快速修复此问题