创建 Framework(使用了 CococaPods 管理第三方)时遇到了若干问题

2019-09-25 17:57:27 +08:00
 junho
前提:
需要提供一个 Swift 写的 Dynamic Framework, 该 Framework 是依赖了好几个本地的 devPod (都是 Swift 写的)。其实该 Framework 就等于一个壳,对外暴露了一些接口,然后内部是调用那几个私有 devPod 实现。
然后把这个 Framework 打包出来,放到 DemoApp 上编译时,遇到了好几个问题:
1.Framework 暴露的接口明明写了 Public,但是 DemoApp 没找到
2.编译 DemoApp 时,直接抛出错误
"Cannot load underlying module for 'XXX'"(XXX 是私有的 DevPod)

请问该怎么解决? 特别是这种使用 Pod 来进行组件化然后打包 Framework 的。。。
6952 次点击
所在节点    iDev
6 条回复
XDDD
2019-09-25 18:07:11 +08:00
都是 Swift 干嘛不上 SPM
junho
2019-09-25 20:05:36 +08:00
刚才试了下
新建了一个动态 Framework 的工程,使用 pod 安装 Snapkit,然后 build 出 framework 后放到空白工程里编译,也是报一样的错误,,,
lizhuoli
2019-09-25 20:09:31 +08:00
Dynamic 需要 Link Dynamic,你不把对应其他的二进制 bundle 进去,你让 dyld 怎么加载?
不然就傻瓜点,Dynamic 直接 link static library,直接符号打进去,就你自己的代码一样,缺点是 Swift 得 module 解析可能有问题
junho
2019-09-25 20:16:40 +08:00
@lizhuoli 我就是直接 link static library,然后 swift 的 module 解析好像真的有问题
gunavy
2019-10-22 09:54:07 +08:00
@junho XCFramework,SPM,换 OC,何必难为自己 https://www.v2ex.com/t/569163#reply16
junho
2019-10-22 11:11:15 +08:00
@gunavy
刚才看了下 XCFramework 的资料,没懂和 Static Framework 有什么区别?看上去就是 XCFramework 里面有不同架构的 framework。
SPM 是指 Swift Package Manager 吗? 这个是如何解决主贴上的问题?
PS: 主贴里的问题,通过 cocoapods 的 static framework plugin,把 pod 的 target product 变成 static framework,然后就顺利 Build 目标 framework(动态)

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

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

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

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

© 2021 V2EX