阅读 335

【iOS】利用CocoaPods创建私有库进行组件化开发

之前使用CocoaPods管理过第三方库,前面也有翻译文章介绍过CocoaPods的配置方法,随着项目越来越大,很多公司会使用CocoaPods进行组件化开发,下面利用一个demo介绍一下。

###什么是库 先说下什么是库,库分为静态库和动态库两种:

  • 1、动态库是在运行时实时部署,而静态库必须在编译时连接到代码。
  • 2、动态库加载到内存可以重复使用,而静态库每次import都要引用一次。
  • 3、自定义的动态库只能部署在iOS8以上系统。 库有三种格式:
  • 1、.a:纯代码静态库
  • 2、.dylib:纯代码动态库

.a和.dylib

  • 3、.framework:可以包含资源,代码和资源。可以包含静态库和动态库。

###创建一个库

1、创建framework:

创建framework

2、随便建一个类

创建一个类

3、在创建的类里面添加两个方法调试用

添加方法

4、在默认创建的类里面导入头文件

导入头文件

5、然后我们看看Build Active Architecture Only 这个值。这个属性设置为yes,是为了debug的时候编译速度更快,它只编译当前的architecture版本。而设置为no时,会编译所有的版本。所以,一般debug的时候可以选择设置为yes,release的时候要改为no,以适应不同设备。很多第三方库都是这样设置的。

Build Active Architecture Only

6、把头文件公开,其他人可以引用到

公开头文件

7、在github上创建一个仓库,把刚才的工程push上去

8、创建podspec文件

创建podspec文件

创建好了

9、配置podspec文件文件,具体教学可以看https://guides.cocoapods.org/syntax/podspec.html和https://segmentfault.com/a/1190000012269307这两个网址

Pod::Spec.new do |spec|
spec.name         = 'nickCocoaPodsFrameWork'
spec.version      = '0.0.1'
spec.license      = 'MIT'
spec.homepage     = 'https://github.com/tonymillion/Reachability'
spec.authors            = { "nickzc" => "chaokuzc@icloud.com" }
spec.summary      = '组件开发实验'
spec.source       = { :git =>     'https://github.com/nickzc/nickCocoaPodsFrameWork.git', :tag => '0.0.1' }
spec.source_files = 'nickCocoaPodsFrameWork/**/*.{h,m}'
spec.platform    = :ios
end
复制代码

10、验证podspec文件:

pod spec lint xl_test.podspec --allow-warnings
复制代码

如果报错了就去查询错误原因。

11、新建一个程序,用cocoaPods安装我们刚才写的库: (1)执行 pod init命令 (2)profile文件添加刚才建的库

# Uncomment the next line to define a global platform for your project
 platform :ios, '8.0'

target 'TestCocoaPods' do

    pod 'nickCocoaPodsFrameWork', :git => 'https://github.com/nickzc/nickCocoaPodsFrameWork.git'

end
复制代码

(3)pod install --no-repo-update pod update --no-repo-update

12、完成。

刚才自己写的framework的地址:https://github.com/nickzc/nickCocoaPodsFrameWork.git

文章分类
iOS