美文网首页Mac 开发
iOS OC和Swift混编与管理多个Target

iOS OC和Swift混编与管理多个Target

作者: jsone | 来源:发表于2020-05-13 10:37 被阅读0次
OC和Swift混编

一、简介

Swift作为一门新语言已经以高效和简洁俘获众多开发者的心,然而她还处于发展阶段,许多第三方库并不是都有Swift版,而且许多旧的项目用的都是OC,所以用OCSwift混编是许多项目正在使用的方法。TargetXcode功能强大的体现,如果我们需要使用同一套代码实现不同配置,例如不同的bundleIDapp名称、appicon等,发布到不同平台iPhoneiPad,就可以通过新建target来实现同一套代码不同配置的管理。

二、OCSwift混编

1、OC工程中混编Swift语言,新建swift文件

新建HomeController.swift文件

2、点击Create按钮,Xcode会弹窗提示是否创建Objective-C桥接头文件

创建Objective-C桥接头文件

点击Create Bridging Header按钮创建,即在swift文件相同目录创建了Objective-C桥接头文件

创建完成

Swift中调用OC:将Swift中需要用到的头文件添加到Objective-C桥接头文件中
OC中调用Swift:将头文件"工程名称-Swift.h"导入需要调用到的文件中

3、需要在target中配置的参数

设置可定义模块
桥接文件的设置信息

三、添加Target

1、选中targetCommand+D复制target或者右击菜单选中Duplicate

右击选中Duplicate
复制出一份target

2、双击target重命名

修改target名称

3、修改scheme名称

打开管理scheme

选中scheme,然后在点击一次(不是双击)

选中scheme
进入编辑状态
进入编辑状态
修改完成
查看scheme

当我们新建target的时候会自动生成一个与target同名的scheme,我们可以根据需要修改scheme的名称,如果只有一个对应scheme最好改为和target同名

添加完target我们会发现,swift的桥接头文件名称跟着target的名称变化

swift的桥接头文件

原来swift桥接文件与target绑定的

swift桥接文件与target绑定

这时编译新建的PrivatePodTest报错

编译新建的PrivatePodTest报错

提示不存在PrivatePodDemo-Swift.h文件

我们可以通过新建一个头文件Swift.h使用条件编译来包含swift桥接头文件
新建头文件Swift.h,注意两个target都要勾选

新建头文件Swift.h

在新建的目标PrivatePodTest添加TEST预编译标识符,Debug模式和Release模式都要加

添加预编译标识符

Swift.h文件中添加条件编译代码如下

#ifdef TEST
#import "PrivatePodTest-Swift.h"
#else
#import "PrivatePodDemo-Swift.h"
#endif

OC需要调用Swift的文件中换成导入Swift.h头文件,这时两个target都编译成功了

四、Podfile修改

platform :ios,'8.0'

target 'PrivatePodDemo' do
   pod 'MJExtension'
   pod 'YYKit'
end

target 'PrivatePodTest' do
   pod 'MJExtension'
end

参考文章:
Swift 中预编译(Active Compilation Conditions)

相关文章

  • iOS OC和Swift混编与管理多个Target

    一、简介 Swift作为一门新语言已经以高效和简洁俘获众多开发者的心,然而她还处于发展阶段,许多第三方库并不是都有...

  • 自制Framework:swift与OC混编,自定义module

    为何要swift与oc混编 在ios开发中,swift与oc的混编,几乎是不可避免的。2014年,Apple在开发...

  • Swift与OC混编过程中的配置

    级别: ★★☆☆☆标签:「iOS」「Swift 」「Swift与OC混编」作者: dac_1033审校: QiSh...

  • iOS开发中 OC与Swift混编

    人工SEO 关键词 : iOS 开发 ,iOS 混编 ,OC调用swift ,swift调用OC ? 前言 :Sw...

  • oc Swift 混编

    oc Swift 混编 oc 项目 混编Swift1.1 oc 调用 Swift 的类 和 方法步骤: ...

  • Swift

    混编 15、OC与Swift的混编_海森堡_lichangan的博客-CSDN博客_oc swift 混编[htt...

  • Swift-Basic Learning

    1. Siwft与OC混编 OC调用SWIfFT SWIfFT调用OC 2. Swift用cocoapods管理...

  • iOS 多Target若干问题处理

    OC混编Swift项目中的头文件引入问题 问题背景 在OC中导入-Swift.h文件,切换Target时报错 个人...

  • OC和Swift混编一

    OC工程下混编 Swift工程下混编请查看OC和Swift混编二 1.建一个OC工程命名为OCTestSwift ...

  • swift与OC混编

    swift与OC混编的总结 现在的swift开发多数会用到混编。swift和oc是通过桥接文件来实现的。无论是在o...

网友评论

    本文标题:iOS OC和Swift混编与管理多个Target

    本文链接:https://www.haomeiwen.com/subject/hxaxnhtx.html