我的 copy-frameworks 运行 脚本应该如何看待嵌套的 Carthage 框架?
How should my copy-frameworks Run Script look with nested Carthage frameworks?
我有一个 Carthage 框架 A
,它依赖于我的另一个 Carthage 框架 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
并且:
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/A.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/B.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/C.framework
这对我来说很好,但是当我提交到 App Store 时,我得到 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
。
我是否需要在我的 运行 脚本中指定每个子框架(或者在我的例子中是 sub 子框架)的路径?
我试过 $(SRCROOT)/Carthage/Build/iOS/C.framework/Frameworks/B.framework/Frameworks/C.frameworks
,但它无法编译,因为它在那个路径找不到文件(尽管当我 cd 到那个路径时它存在)。
PS:
B.framework 也有 C.framework 的 运行 脚本,其格式与主应用程序相同
我的项目和嵌套框架有很多问题。我会在这里列出它们:
只有提交到 App Store 的主应用程序应该有一个 Run Script
copy-frameworks
阶段,它应该只复制顶级框架。
只有测试目标应该有一个 Copy Files
阶段(我的框架目标中有一个 Copy Files
阶段)
不要嵌入任何框架(除非它们是静态的,但目前尚未正式支持这些框架)。
框架本身不应进行代码签名(应由主应用程序进行代码签名)
我有一个 Carthage 框架 A
,它依赖于我的另一个 Carthage 框架 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
并且:
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/A.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/B.framework
$(BUILT_PRODUCTS_DIR)/$(FRAMEWORKS_FOLDER_PATH)/C.framework
这对我来说很好,但是当我提交到 App Store 时,我得到 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
。
我是否需要在我的 运行 脚本中指定每个子框架(或者在我的例子中是 sub 子框架)的路径?
我试过 $(SRCROOT)/Carthage/Build/iOS/C.framework/Frameworks/B.framework/Frameworks/C.frameworks
,但它无法编译,因为它在那个路径找不到文件(尽管当我 cd 到那个路径时它存在)。
PS:
B.framework 也有 C.framework 的 运行 脚本,其格式与主应用程序相同
我的项目和嵌套框架有很多问题。我会在这里列出它们:
只有提交到 App Store 的主应用程序应该有一个
Run Script
copy-frameworks
阶段,它应该只复制顶级框架。只有测试目标应该有一个
Copy Files
阶段(我的框架目标中有一个Copy Files
阶段)不要嵌入任何框架(除非它们是静态的,但目前尚未正式支持这些框架)。
框架本身不应进行代码签名(应由主应用程序进行代码签名)