iOS组件化&&二进制&&Cocoapods

iOS 问题 1: OC项目导入swift三方库不兼容问题

2021-06-01  本文已影响0人  Style_月月

背景

由于目前的项目是OC开发,且目前通过cocopods导入的三方库,是以.a静态库的形式导入

需求

目前需要导入一个swift开发的三方SDK,所以需要在OC项目中pod一个swift三方库

问题

对于swift三方库而言,一般都会要求 使用 use_frameworks! 通过.framework动态库的形式导入。而目前OC项目中pod是通过.a的形式导入,所以产生了以下问题:

解决办法

那么有没有办法,可以在不改变原来的三方库的导入形式,然后还可以集成swift三方库且不报错呢?答案是有的,即使用混编的方式,即swift三方库不采用 use_frameworks!

1、xcode配置

2、项目配置

需要注意以下几点:

  • 1)需要确保有桥接文件 项目名-Bridging-Header.h

  • 2)确保项目中至少有一个.swift文件

  • 3)target -> Build Settings中,确保 Product Module Name是有值的,如果没有,直接设置为 $(PRODUCT_NAME)

  • 4)target -> BuildSetting -> SWIFT_VERSION需要与pod中swift三方库的 BuildSetting -> SWIFT_VERSION 一致

3、swift三方库使用

@import swiftSDK;
#import "项目名-Swift.h"
#import "项目名-Bridging-Header.h"

到此,可以在OC项目中以.a的形式导入swift三方库了,且不改变原有的三方库导入形式

上一篇下一篇

猜你喜欢

热点阅读