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

Xcode 15.3公证过程中应用程序存档和直接分发失败:二进制文件的签名在根目录中无效/未密封

  •  0
  • Ian  · 技术社区  · 2 年前
    • 我有一个macOS swift应用程序,我通过存档/直接分发/导出应用程序发货(使用开发者身份证签名)->不要使用DMG canvas中的任何工具。
    • 该应用程序依赖于一个包含XCFramework的swift包,我用它构建 gomobile bind .
    • notarytool返回: The signature of the binary is invalid
    • 代码签名验证命令返回: unsealed contents present in the root directory of an embedded framework
    • 在Xcode 15.3之前,此过程按预期运行。内部XCFramework没有阻止Gatekeeper使用未密封的内容停止该应用程序。除了从15.2升级到Xcode 15.3之外,我没有对此管道进行任何更改

    核心问题:添加到macOS应用程序的代码签名XCFramework是如何产生错误的,该应用程序也是代码签名的并准备分发: 二进制文件的签名无效

    0 回复  |  直到 2 年前
        1
  •  0
  •   Ian    2 年前

    问题 : Framework目录有一个无关的 Info.plist 包含在其目录中的文件。 苹果文档 mention :

    框架根目录必须仅包含Versions目录和符号链接。不要在那里放置任何其他内容。这样做会导致代码签名问题。

    解决方案 : 删除 信息.plist 在macOS Framework根目录中(这与 信息.plist 其驻留在XCFramework根中;保留那个)。一旦删除,Xcode代码设计就不再抛出错误。

    结论 : 按照苹果关于XCFramework生成的说明进行操作。

    我的工作流程的上下文 here ,以防有人好奇

    推荐文章