CocoaPods实现管理库、发布库、组件化

CocoaPods管理第三方库

1、pod init自动生成Podfile
在这里插入图片描述

2、vim Podfile,取消platform的注释,注释use_frameworks!使用静态库,添加pod 'AFNetworking', '~> 3.2.1'
在这里插入图片描述

  • 2.1、不使用use_frameworks!则在Pods项目(前面为蓝色图标)的Products下生成.a文件;使用use_frameworks!则生成.framework文件。

3、执行pod install生成CBD.xcworkspace文件。

CocoaPods创建自己的库

创建复合项目和Framework

1、创建普通的项目:
在这里插入图片描述
2、点击TARGETS左下角的“+”号,添加一个Target,选择“iOS”->“Framework & Library”->“Framework”。
在这里插入图片描述
在这里插入图片描述
创建Framework之后,左侧导航面板会多一个“RCUtility”目录,中间面板TARGETS也会多一个“RCUtility”。
TARGETS选中RCUtility,Build Settings中Mach-O Type为“Dynamic Library”(这里选择动态库,并不影响其他项目比如CBD使用这个库时选择静态链接还是动态链接,这里的设置只影响本项目的编译设置)(Framework是一种打包方式,包含.a二进制文件+bundle资源文件+.h头文件,不一定是动态链接库,也可以使用静态链接的方式。)。
在这里插入图片描述
3、Framework的设置:

  • 设置前缀:选中左侧“Project Navigator”面板中的“RCUtilityDemo”项目(左侧图标是蓝色而不是黄色),在打开的右侧“File Inspector”面板下的“Project Document”->“Class Prefix”填入前缀如RC,这样新建的class都自动以RC开头命名。
  • 设置scheme:Stop按钮右侧(左侧是Build and then Run按钮)选中“RCUtility”(不是RCUtilityDemo),再次点击选择“Edit Scheme…”,在弹出的面板中选中"Run",在左侧“Info”->“Build Configuration”改为“Release”。
  • 设置Build Settings:TARGETS选中RCUtility,Build Settings下的“Build Active Architchture Only”->“Release”设置为NO(Debug可不修改)。

4、Framework中创建类主项目中使用Framework

  • 4.1、导航面板中选中“RCUtility”目录(注意不是RCUtilityDemo目录),新建一个类,将这个类.h文件加到“Build Phases”->“Headers”->“Public”(默认在Project中,右键该文件选择“Move to Public Group”)。

  • 4.2、主项目中使用Framework:

    • 4.2.1、TARGETS->“RCUtilityDemo”->“Link Binary With Libraries”加入RCUtility.framework(默认已经加入)。
      在这里插入图片描述
    • 4.2.2、在主项目的类.m文件中import自己创建的Framework的某个类的头文件.h,即可使用这个类的方法。

GitHub托管代码

1、本地仓库

  • 1.1、在终端cd到RCUtilityDemo目录(里面包含RCUtility、RCUtilityDemo和RCUtilityDemo.xcodeproj),执行git init
  • 1.2、创建.gitignore(在Sourcetree中添加本地仓库,可以看到哪些文件被修改,哪些文件应该加到.gitignore),然后commit全部文件。

2、远程仓库

  • 2.1、GitHub上新建仓库,名字填RCUtility,选择Public,不勾选README这些文件,创建一个空白仓库。
  • 2.2、关联远程仓库:git remote add origin https://github.com/rccrx/RCUtility.gitgit push -u origin master

发布到CocoaPods

1、cd到RCUtilityDemo目录,执行pod spec create RCUtility创建文件RCUtility.podspec(生成的文件的注释里面会有各个参数的说明,虽然最后需要删除这些注释)。
2、修改文件RCUtility.podspec如下:

Pod::Spec.new do |spec|

  spec.name         = "RCUtility"
  spec.version      = "0.0.1"
  spec.summary      = "A short description of RCUtility."
  spec.homepage     = "https://github.com/rccrx/RCUtility"
  spec.license      = "MIT"
  spec.author             = {
    "rccrx" => "rccrx@qq.com" }
  spec.platform     = :ios
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值