Worksapce管理多个project,并共用cocopods

2018-12-04  本文已影响0人  FreshAlpha

之前有同事写好一个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栏目中即可。

暂时已经没有报错了。

上一篇 下一篇

猜你喜欢

热点阅读