iOS 【多target项目配置】

iOS 【多target项目配置】,第1张

右键->Duplicate ->Duplicate only

生成对的 Target 文件:TestA-coply,TestA-coply.plist

选择 Manager Schemes ->TestA-coply ->TestB

target列表->TestA-coply ->TestB

plist文件 TestA-coply.plist ->TestB.plist

一般是plist,可以调整名字,然后 修改 对应关联target 路径

若有xxx.entitlements文件也可以, 修改 对应target 路径

类似图片资源集合、三方配置文件等

Build settings ->搜索 plist ->修改 info.plist File 路径为:$(SRCROOT)/TestA/TargetB/TestB.plist

测试验证是否成功,修改TextB.plist中项目名,看target中TestB项目名是否改变

同理->搜索 entitlements ->修改 Code Signing Entitlements 路径

右键 New File ->选择 Asset Catalog ->创建是选择关联对应Target

关联单独target的资源不起作用,会使用关联多个Target资源的,

比如 TestAAssets 图片资源关联两个Target(TestA,TestB)

则 TestBAssets 图片资源关联TestB的就不生效了,

这是运行 TestB 项目,用到图片资源也是 TestAAssets

同理其他资源文件也可以设置不同Target,如类、LaunchScreen等

选择Target中项目 TestA ->Build Settings ->搜索 Macros

Preprocessor Macros 中,默认是 DEBUG=1 ,双击添加 APP_TYPE=1

(APP_TYPE可以自己定义,值也可以自己设置定义,这里用1,2,3,标识不同Target),

需要 Preprocessor Macros 中Debug\Release模式里都对应设置

同理Target的 TestB 也对应设置, APP_TYPE=2

切换对应项目调试

Swift项目中桥接OC文件相对来说比较简单,一般在第一次创建OC文件的时候Xcode会d出创建桥接头文件的提示

直接点击Create Bridging Header系统就自动为我们创建好了桥接头文件,并且自动将头文件路径配置好了,所以这种方式非常便捷

但是,有时候我们并不是第一次在Swift项目中创建OC文件时,Xcode并不会再为我们自动创建桥接文件,需要我们自己创建,然后配置路径。

我们自己新建一个.h文件。命名为xxx-Bridging-Header.h就行了,也可以随意命名,创建好以后,在Build Settings中找到上图中的Objecttive-C Bridging Header选项,然后将创建好的head文件拖到这个路径配置中,就可以了

然后在创建的这个head文件中#import需要使用到的OC文件。就可以在Swift中索引出OC文件的类了。

一般在OC项目中桥接Swift文件,只需要引入头文件#import "xxx-Swift.h"就可以在OC中调用Swift相关的类了。xxx为项目的Project Name

但是,在实际桥接中,常常会遇到报错'xxx-Swift.h' file not found,头文件找不到的情况。

因为项目配置中桥接头文件的名称有可能和我们项目名称不一致,所以会导致桥接头找不到。

这个时候我们需要检查Build Setting中的Objecttive-C Generated Interface Header Name选项是否和我们import的名称一样,需要改成一样的就可以解决报错问题了。

如图,如果这个选项中的名称为test-Swift.h,那么我们在OC中桥接的时候就应该为#import "test-Swift.h",才能不报错。

如果遇到项目中有多个TARGETS的情况,我们在创建相应的OC/Swift文件的时候需要选中所有需要桥接的TARGETS选项,才能在对应的TARGETS的Build Setting中看到对应桥接路径配置的选项,然后每个TARGETS的Head都需要配置一样

不然在切换到不同的TARGETS下以后,也有可能因为不同TARGETS下配置的Head不一致,导致在不同的TARGETS下再次出现'xxx-Swift.h' file not found的错误。

<article class="_2rhmJa">

本篇文章主要引自 Simple_Dev

写的 IOS开发日记1-项目中配置多个target及podfile文件配置

</article>

53人点赞

iOS踩过的坑系列


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11698132.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存