Worksapce管理多个project,并共用cocopods遇到问题记录

之前有同事写好一个A项目,由于没有集成SDK,并且还在版本迭代中,我的B项目需要使用。A项目中有很多pods使用的第三方,B项目也要使用。

最终决定的方案是把A项目集成framework,B项目使用A.framework,TargetA,TargetB共用podfile.

第一步:创建workspace,A.framework,项目B,A和B都放在workspace中。

第二步:创建podfile。

遇到报错Unable to find a target named `A`等。

最终解决方案:podfile的结构如下

1.加上workspace '[name].xcworkspace'

2.target 之后要注明project

target'A'do

    project'A/A.xcodeproj'

   end

    target'B'do

    project'B/B.xcodeproj'

   end

3.共用的第三方可以 def 一下,再使用。

第三步:由于A.framework的代码是swift和OC混编。直接把桥接文件放进来,会报错"using bridging headers with framework targets is unsupported"。A.framework中不支持桥接文件,所以要放在A.h中。

遇到的报错“Include of non-modular header inside framework module 'A'

 对于A中的OC的头文件的引用,会报此错。解决方案是:

找到要导入的OC的.h,show inspectors,将Target MemberShip改成public。

或者Target->Build Phases->Headers在Projects中找到要导入的.h,拖到Public中即可。

而对于A中要引用pods中的.framework或者.a的头文件时,也会报此错。解决方案是:

Target->Build Phases->Headers 按+按钮,“Add Other”找到Pods中要导入的.framework或者.a的头文件,不要勾选copy,放到public栏目中即可。

暂时已经没有报错了。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 项目组件化、平台化是技术公司的共同目标,越来越多的技术公司推崇使用pod管理第三方库以及私有组件,一方面使项目架构...
    swu_luo阅读 22,777评论 0 39
  • Ruby 安装 要安装cocospods 首先需要安装ruby,可以先安装xcode,再安装macport ,最后...
    山天大畜阅读 6,156评论 0 1
  • 起因 理论功底 动态库和静态库 介绍 静态库和动态库的区别 举个例子, iOS 项目中使用 Embeded Fra...
    leverkusen188阅读 4,650评论 0 3
  • 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别...
    吃瓜群众呀阅读 14,173评论 3 42
  • 一周新闻 1otcbtc交易所开张,10月26日正式上线,可以绑定国内银行卡,也不用翻墙,用起来很方便,这说明国人...
    蒙面加菲猫阅读 1,472评论 0 0

友情链接更多精彩内容