V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
liuidetmks
V2EX  ›  程序员

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

  •  
  •   liuidetmks · Mar 9, 2022 · 1538 views
    This topic created in 1515 days ago, the information mentioned may be changed or developed.

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

    项目结构,如图: img

    有主要有 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

    DCELL
        1
    DCELL  
       Mar 9, 2022   ❤️ 1
    1. 这个 framework 编译出来就有问题 建议查看下产物对不对
    2. 可能是 secp256k1_context 这个头文件,没有暴露出来,在 secp256k1.h 文件中 import 下
    xtinput
        2
    xtinput  
       Mar 9, 2022
    你没把.a 文件相关的头文件弄进去呀
    xtinput
        3
    xtinput  
       Mar 9, 2022
    看看你的 framework 结构呗
    xtinput
        4
    xtinput  
       Mar 9, 2022
    我把极光的推送封装成 framework 之后的结构,是利用 cocoapods 来封装的
    <img src="http://img.tcoding.cn/2022/03/09/a7fb316ab492e.png" alt="a7fb316ab492e"/>
    xtinput
        6
    xtinput  
       Mar 9, 2022
    https://github.com/darvintang/WeChatOpenSDK 参考这个

    .a 文件替换 WeChatOpenSDK ,名字也改成和 framework 同名的
    重点在 Modules 的 module.modulemap 文件里面,将 module.modulemap 也编辑好
    头文件放到 Headers 里面
    然后再把弄好的 framework 拖到项目去
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2528 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 06:27 · PVG 14:27 · LAX 23:27 · JFK 02:27
    ♥ Do have faith in what you're doing.