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

我的复制框架应该如何运行嵌套的迦太基框架的脚本?

  •  1
  • SirRupertIII  · 技术社区  · 5 年前

    我有一个迦太基框架 A 这取决于我的另一个迦太基框架 B . 该框架 依赖于框架 C . 我的cartfile没有 C 列出,但如文档所述,它下载在 carthage update . 在我的运行脚本中,我有:

    $(SRCROOT)/Carthage/Build/iOS/A.framework
    $(SRCROOT)/Carthage/Build/iOS/B.framework
    $(SRCROOT)/Carthage/Build/iOS/C.framework
    

    还有:

    $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/A.framework
    $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/B.framework
    $(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/C.framework
    

    这对我来说很好,但是当我提交到应用商店时,我会 Code signing "A.framework" failed

    在我看到的日志里 Running /usr/bin/codesign 对于

    /var/folders/1y/hdyf678f66897f_fafjdkdk89f8d/T/XcodeDistPipeline.7bM/Root/Payload/MyApp.app/Frameworks/A.framework/Frameworks/B.framework/Frameworks/C.framework

    在同一个字符串后面的下一行 C.framework replacing existing signature 然后 code object is not signed at all 在那之后上线。

    我需要在我的运行脚本中指定每个子框架(或者在我的情况下是子框架)的路径吗?

    我试过了 $(SRCROOT)/Carthage/Build/iOS/C.framework/Frameworks/B.framework/Frameworks/C.frameworks 但它不会编译,因为它在那个路径上找不到文件(尽管当我cd到那个路径时,它就存在了)。

    PS:

    b.framework还具有与主应用程序格式相同的c.framework运行脚本。

    1 回复  |  直到 5 年前
        1
  •  1
  •   SirRupertIII    5 年前

    我的项目和嵌套框架有很多问题。我将在这里列出它们:

    • 只有将提交到应用商店的主应用程序才应具有 Run Script copy-frameworks 阶段,它应该只复制顶层框架。

    • 只有测试目标应具有 Copy Files 阶段(我有一个 拷贝文件 我的框架目标阶段)

    • 不要嵌入任何框架(除非它们是静态的,但目前还没有正式支持)。

    • 框架本身不应该是代码签名的(它应该是由主应用程序签名的代码)