需要解决的问题
- 项目联编是什么?
- 为什么需要项目联编?
- 如何项目联编 ?
项目联编是啥?
项目联编是将多个项目一起编译,使用,一个项目里面有多个project。
为什么需要项目联编?
- 当有许多的项目拥有共同的代码,工具类,我们就进行项目联编,这样我们只要维护好对应的sdk project ,我们就可以维护整个公司的项目了。
- 项目的结构更加清晰化 。
如何项目联编呢?
-
联编的方式
- xcode 手动创建workspace(注意主项目最后加入)
-
在空白directory 下面 创建workspace
屏幕快照 2018-01-16 下午2.02.00.png
-
在该文件夹下放需要加进去进行联编的项目
屏幕快照 2018-01-16 下午2.07.10.png
-
将项目加到workSpace中
屏幕快照 2018-01-16 下午2.15.03.png
-
最后模样:
屏幕快照 2018-01-16 下午2.23.41.png
-
最后在主项目中 添加framework 依赖
屏幕快照 2018-01-16 下午2.24.52.png
-
- 编译的时候 我遇到了一个问题
dyld: Library not loaded: @rpath/libswiftCore.dylib Referenced from:/Users/ivan/Library/Developer/Xcode/DerivedData/Untitled-cshwbvyslgffslcdjnyqzlwscxot/Build/Products/Debug-iphonesimulator/Charts.framework/Charts Reason: image not found // 解决方法 ,我们一般引用第三方库的东西,然后我们遇到这种错误直接将 buildPhase -> link binary , required 改成 optional . // 还是不行 , build-setting 中,将 swift standardlibraries 改成YES (前提是第三方里面就有swift 写的内容)
-
利用cocopods的原理进行联编。
cocoapods 的原理就是利用上面的创建的原理 进行创建的。
前提:
首先将需要配置的sdk_project , 主程序放到同一个目录下面
- vim Podfile
workspace 'LBWorkSpace'
project 'LBApp/LBApp.xcodeproj'
project 'LBFrameWorkProject/LBFrameWorkProject.xcodeproj'
target 'LBApp' do
platform :ios,'10.0'
use_frameworks!
pod 'Charts', '~> 3.0.4'
project 'LBApp/LBApp.xcodeproj'
end
target 'LBFrameWorkProject' do
platform :ios,'10.0'
project 'LBFrameWorkProject/LBFrameWorkProject.xcodeproj'
end
- vim Podfile
- xcode 手动创建workspace(注意主项目最后加入)
- 在项目中添加工具依赖 (同上),
网友评论