cita-sdk-swift 0.24.1 和 web3swift 2.2.0 同时使用时无法成功打包

cita-sdk-swift 0.24.1 和 web3swift 2.2.0 同时使用时无法成功打包,无论使用Legacy Build System 或 New Build System

使用 Legacy Build System 会卡在 CITA | Setting mode of 1 of 1 files 无法结束;
使用 New Build System 会有secp256k1.swift 和 secp256k1.c 的依赖冲突。

希望大神们给个解决方案,谢谢

source ‘https://github.com/CocoaPods/Specs.git
platform :ios, ‘11.0’

target ‘Test’ do
use_frameworks!

pod ‘CITA’, git: “https://github.com/cryptape/cita-sdk-swift”, tag: “v0.24.1”
pod ‘web3swift’, git: “https://github.com/matter-labs/web3swift”, tag: “2.2.0”
pod ‘WebViewJavascriptBridge’
pod ‘Alamofire’

end

@LuFuPeng, 这个问题有解决办法吗?

@luqz812 请暂时切换到 rc/v0.8.0 分支进行测试,这个问题会在 v0.8.0 正式发布之后修复,目前在冻结分支中。

@luqz812
刚刚说错了…不好意思,我以为你在编译 Cyton

请按照如下方式导入 pod 库,然后再按照提示修改 web3swift 的引用即可。
现在最新的 web3swift 的仓库地址是 : https://github.com/matter-labs/web3swift
在这个仓库的 README 中有 引用方式

  pod 'CITA', git: "https://github.com/cryptape/cita-sdk-swift", tag: "v0.24.1"
  pod 'web3.swift.pod', '~> 2.2.0'

具体可以参考 Cyton 的 rc/v0.8.0 分支代码。

试了一下还是同样的问题。
也测试了Cyton rc/v0.8.0 版本,也有同样的问题。可以build成功,但无法Archive成功

Archive 有什么提示吗?

有报错还是一直卡在 web3swift 那里

使用 Legacy Build System 会卡在 : CITA | Setting mode of 1 of 1 files 无法结束;
使用 New Build System 一开始就报错:

Multiple commands produce ‘/Users/luqz/Library/Developer/Xcode/DerivedData/Cyton-chxfjhnxuhhgzjgsulftqmrrnevd/Build/Intermediates.noindex/ArchiveIntermediates/Cyton/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/secp256k1.framework’:

  1. Target ‘secp256k1.c’ has create directory command with output ‘/Users/luqz/Library/Developer/Xcode/DerivedData/Cyton-chxfjhnxuhhgzjgsulftqmrrnevd/Build/Intermediates.noindex/ArchiveIntermediates/Cyton/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/secp256k1.framework’

  2. Target ‘secp256k1.swift’ has create directory command with output ‘/Users/luqz/Library/Developer/Xcode/DerivedData/Cyton-chxfjhnxuhhgzjgsulftqmrrnevd/Build/Intermediates.noindex/ArchiveIntermediates/Cyton/IntermediateBuildFilesPath/UninstalledProducts/iphoneos/secp256k1.framework’

好的,目前看来是一个BUG,我们会尽快修复。

@luqz812 我知道了,刚刚找了一下原因,在 New Build System 报错是因为 CITA 和 web3swift 有个两个库生成的 framework 重名字了。
在 Legacy Build System 会卡在 CITA | Setting mode of 1 of 1 files 无法结束,这个本质不是 CITA 的问题,是 web3swift 的问题,有两种方式可以确定。

  1. 看编译情况,如图所示:

    可以看到除了 web3swift 以外的库都编译完成了,真正卡住的是 web3swift 这个库。
  2. 在一个项目中只引用 CITA ,不会出现这个问题。但是如果一个项目中只引用 web3swift 则会重现这个 “卡主” 的问题。

这个问题目前很多人遇到了,我当时是编译了2个小时,然后打包成功。具体的在 web3swift repo 的 issues 中有,详情看这里.

好的,谢谢!:grinning:我先试试让他多跑会儿。