求教, Swift 引入 .a 库, 类型缺失?

2022-03-09 10:44:31 +08:00
 liuidetmks

最近想试试 swift ,干写没什么意思,想把以前写的小工具重写一下。
这不,遇到问题了,请各位巨佬稍微喵一眼,稍微点拨下,我就受用无穷了。

项目结构,如图:

有主要有 3 个文件, 这里出问题的是 ecc.swift
这里原 oc 项目会调用一个 libsecp256k1 。a 的静态库,
搜索了下,说是 swift 必须把。a 封装成 。framework ,

好的,于是,我在工程下面添加一个 target , 编译成 framework
然后在 ecc.swift 中 import secp256k1 ,import 也没报错 ,但是也不能双击进入详情,
bridging header 也对应的设置了

但是使用头文件里面的类型时候,报错,Cannot find type 'secp256k1_context' in scope

1214 次点击
所在节点    程序员
6 条回复
DCELL
2022-03-09 11:19:25 +08:00
1. 这个 framework 编译出来就有问题 建议查看下产物对不对
2. 可能是 secp256k1_context 这个头文件,没有暴露出来,在 secp256k1.h 文件中 import 下
xtinput
2022-03-09 15:41:39 +08:00
你没把.a 文件相关的头文件弄进去呀
xtinput
2022-03-09 15:44:52 +08:00
看看你的 framework 结构呗
xtinput
2022-03-09 15:50:09 +08:00
我把极光的推送封装成 framework 之后的结构,是利用 cocoapods 来封装的
<img src="http://img.tcoding.cn/2022/03/09/a7fb316ab492e.png" alt="a7fb316ab492e"/>
liuidetmks
2022-03-09 17:42:24 +08:00
xtinput
2022-03-09 20:58:38 +08:00
https://github.com/darvintang/WeChatOpenSDK 参考这个

.a 文件替换 WeChatOpenSDK ,名字也改成和 framework 同名的
重点在 Modules 的 module.modulemap 文件里面,将 module.modulemap 也编辑好
头文件放到 Headers 里面
然后再把弄好的 framework 拖到项目去

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/839053

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX