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

Ios 我的复制框架应该如何使用嵌套的迦太基框架运行脚本?,ios,frameworks,app-store,codesign,carthage,Ios,Frameworks,App Store,Codesign,Carthage,我有一个迦太基框架a,它依赖于我的另一个迦太基框架B。该框架B依赖于框架C。我的Cartfile没有列出C,但如文档所述,它是在carthage update上下载的。在我的跑步脚本中,我有: $(SRCROOT)/Carthage/Build/iOS/A.framework $(SRCROOT)/Carthage/Build/iOS/B.framework $(SRCROOT)/Carthage/Build/iOS/C.framework 以及: 这对我来说很好,但是当我提交到应用商店时,我

我有一个迦太基框架
a
,它依赖于我的另一个迦太基框架
B
。该框架
B
依赖于框架
C
。我的Cartfile没有列出
C
,但如文档所述,它是在
carthage update
上下载的。在我的跑步脚本中,我有:

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

这对我来说很好,但是当我提交到应用商店时,我得到了
代码签名“A.framework”失败

在日志中,我看到
正在运行/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
替换现有的签名
,那么
代码对象在该行之后根本没有签名

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

我试过
$(SRCROOT)/Carthage/Build/iOS/C.framework/Frameworks/B.framework/Frameworks/C.Frameworks
,但它无法编译,因为它在该路径上找不到文件(尽管当我cd到该路径时它已经存在)

附言:


B.framework还有一个C.framework的运行脚本,其格式与主应用程序相同

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

  • 只有将提交到应用商店的主应用程序才应具有
    运行脚本
    复制框架
    阶段,并且只应复制顶级框架

  • 只有测试目标应该有一个
    复制文件
    阶段(我的框架目标中有一个
    复制文件
    阶段)

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

  • 框架本身不应该进行代码签名(应该由主应用程序进行代码签名)


我也很难设置类似的东西。我记不起细节了,但如果有帮助的话,我在GitHub上有概念验证项目:(将URL中的“A”替换为“B”,对于其他两个回购协议,替换为“C”)。
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/A.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/B.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/C.framework