Xcode在cocoapods workspace项目中引入另一个project

背景:最近想在现有的项目中加入ReactNative,又不想按官方文档的方案那样把现有项目放到RN的项目目录中的ios/andriod文件夹下,感觉那样很别扭也很不灵活。所以想着把RN项目作为一个模块通过pod来导入到项目中。

本文章只尝试在现有项目中引入另外一个project

实验对象有两个项目:BBB和AAA

其中BBB使用workspace+pod来管理第三方,A为一个单纯的项目,这是最纯净的状态,更复杂的状况暂且不论。

项目B使用CocoaPods+workspace来管理项目,A是一个独立的project来管理,现在想把A引入到B中,这是昨晚做的实验,使用的是Swift

两个项目结构如下

截屏2022-01-18 下午3.49.44.png

打开B项目的workspace,在左侧工作区右键选择 Add Files to "BBBTest",如图所示:

截屏2022-01-18 下午3.58.49.png

选择A的project文件将A导入B中

截屏2022-01-18 下午3.59.14.png

在A中新建framwork的Target,并在 Build Phases下的Compil Sources中添加需要暴露出来的文件

截屏2022-01-18 下午3.57.23.png

此时注意一点:A中暴露出来的swift文件由于和B中的swift文件不在同一个模块下,所以需要加上public修饰符,否则无法在B中使用

操作完成之后项目目录结构如下,AAATest和BBBTest、Pods处于平行状态,如下图所示

截屏2022-01-18 下午3.59.28.png

最终我们就可以在B项目中使用A项目中暴露出来的AAAViewController了

截屏2022-01-18 下午4.10.25.png

运行效果如下:

simulator_screenshot_3223E805-4681-44E6-B7A1-FC914C6DB711.png

点击 Go A就能跳转到A项目页面了

simulator_screenshot_A07F757B-8090-43F4-81CF-4931CBD51BD8.png

大功告成,为后面现有项目中导入React-Native项目提供思路 也希望各位大神多提供下其他更好的思路,共同进步。

猜你喜欢

转载自juejin.im/post/7054464267134697486