ios oc 开发静态类库中使用了pod install安装其他类库问题

helloWorld1209 2016-12-23 09:55:38
1. 环境:ios oc
2. 项目:开发一个静态类库供其他项目使用。
3. 此静态类库需要好多其他的pod install安装的类库,比如Masonry,AFNetwrok等等知名的类库。

问题:如果不pod instal安装其他类库,没有问题。但是只要一pod install安装后就报错了?

请问大神们,怎么搞? 难道要去git hub上下载其他类库的源码扔进项目中吗?

谢谢
...全文
511 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
不担心 2016-12-30
  • 打赏
  • 举报
回复
 @virtualxmars 学习了,我还没有用到多个项目集成pod,谢谢!
virtualxmars 2016-12-29
  • 打赏
  • 举报
回复
引用 2 楼 jimmy_xiao0010 的回复:
你好,你说的我明白。我要做的这个类库不开源。会打包成一个.a文件,供其他人使用。(公司的产品)。

但是我这个类库会用到一些开源的项目,比如说masonry,afnetwroking等知名的类库,使用pod install安装的。

我想做成类库工程LibB和主工程AppA在一个workspace下存在,这样xcode在一个workspace下打开就能显示2个工程,方便调试和以后的修改。

但是libB项目一安装pod install的类库后整个大workspace编译就报错了。如果不pod install就没问题。


按照你的描述,你可以将两个项目按照这样的文件夹形式来进行组织:

然后,在根文件夹处,添加一个多目标的Podfile,内容如下:

workspace 'Wrapper'
abstract_target 'DummyTarget' do
pod 'AFNetworking'

target 'MainProj' do
project 'MainProj/MainProj.xcodeproj'
pod 'Masonry'
end

target 'SDKProj' do
project 'SDKProj/SDKProj.xcodeproj'
pod 'AFNetworking'
pod 'Masonry'
end
end


然后执行:

pod install


!abstract_target的目的是为了让MainProj和SDKProj公用AFNetworking库

然后打开Wrapper.xcworkspace


这样,你就可以同时维护两个项目了
helloWorld1209 2016-12-26
  • 打赏
  • 举报
回复
引用 1 楼 virtualxmars 的回复:
用pod来管理所有的第三方库依赖是最好的。具体不知道你们怎么用,正常来说在pod文件里声明所有需要使用的库就可以了,例如

target 'myapp' do
    pod 'AFNetworking'
    pod 'Masonry'
end
然后pod install一下即可 如果你自己开发的就是一个库(源文件库或者静态库),则可以通过两种方式来让其它项目集成 1. 将你的静态库发布到CocoaPods的仓库中,这样,别人就可以和集成AFNetworking一样集成你的代码。当然,这样的约束是,你的代码必须开源 2. 你可以将你的代码作为一个本地的pod库来使用,通过类似这样的语法让其它项目在自己的项目pod文件中引用

    pod 'MyLib', :path => '/Users/YourName/MyLib'
无论上面那一种,都需要提供一个podspec描述文件,这样别人才可以通过pod来集成你的代码。具体请参照下面的教程,英文有点障碍,但非常详细和实用。 https://www.raywenderlich.com/126365/ios-frameworks-tutorial
你好,你说的我明白。我要做的这个类库不开源。会打包成一个.a文件,供其他人使用。(公司的产品)。 但是我这个类库会用到一些开源的项目,比如说masonry,afnetwroking等知名的类库,使用pod install安装的。 我想做成类库工程LibB和主工程AppA在一个workspace下存在,这样xcode在一个workspace下打开就能显示2个工程,方便调试和以后的修改。 但是libB项目一安装pod install的类库后整个大workspace编译就报错了。如果不pod install就没问题。
virtualxmars 2016-12-26
  • 打赏
  • 举报
回复
用pod来管理所有的第三方库依赖是最好的。具体不知道你们怎么用,正常来说在pod文件里声明所有需要使用的库就可以了,例如

target 'myapp' do
    pod 'AFNetworking'
    pod 'Masonry'
end
然后pod install一下即可 如果你自己开发的就是一个库(源文件库或者静态库),则可以通过两种方式来让其它项目集成 1. 将你的静态库发布到CocoaPods的仓库中,这样,别人就可以和集成AFNetworking一样集成你的代码。当然,这样的约束是,你的代码必须开源 2. 你可以将你的代码作为一个本地的pod库来使用,通过类似这样的语法让其它项目在自己的项目pod文件中引用

    pod 'MyLib', :path => '/Users/YourName/MyLib'
无论上面那一种,都需要提供一个podspec描述文件,这样别人才可以通过pod来集成你的代码。具体请参照下面的教程,英文有点障碍,但非常详细和实用。 https://www.raywenderlich.com/126365/ios-frameworks-tutorial

29,028

社区成员

发帖
与我相关
我的任务
社区描述
主要讨论与iOS相关的软件和技术
社区管理员
  • iOS
  • 大熊猫侯佩
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧