CocoaPods 封装SDK
来源:互联网 发布:域名被墙跳转 编辑:程序博客网 时间:2024/06/12 00:20
- framework静态库文件
- 使用CocoaPods 管理framework静态库文件
- 推送SDK项目到GitHub仓库
- 发布SDK项目到CocoaPods
- 验证podspec文件
- 验证
.framework静态库文件
静态库项目编译后分别输出了真机和模拟器的库文件,我写了个简单的脚本在编译后自动合并真机和模拟器库文件。:
在build phase中添加runscript。脚本如下:
# define output folder environment variableUNIVERSAL_OUTPUTFOLDER=${BUILD_DIR}/${CONFIGURATION}-universal
# make sure the output directory existsmkdir -p "${UNIVERSAL_OUTPUTFOLDER}"# touch. copy the RKBluetoothLE_iOS.framework. Just for conveniencecp -R "${BUILD_DIR}/${CONFIGURATION}-iphoneos/RKBluetoothLE_iOS.framework" "${UNIVERSAL_OUTPUTFOLDER}/"# Create universal binary file using lipolipo -create -output "${UNIVERSAL_OUTPUTFOLDER}/RKBluetoothLE_iOS.framework/RKBluetoothLE_iOS" "${BUILD_DIR}/${CONFIGURATION}-iphoneos/RKBluetoothLE_iOS.framework/RKBluetoothLE_iOS" "${BUILD_DIR}/${CONFIGURATION}-iphonesimulator/RKBluetoothLE_iOS.framework/RKBluetoothLE_iOS"
cmd+B,搞定。
在products/Debug-universal文件夹中找到生成的通用库。
用lipo查看. framework库所支持的架构。
lipo -info RKBluetoothLE_iOS
Architectures in the fat file: RKBluetoothLE_iOS are: x86_64 armv7 arm64
使用CocoaPods 管理.framework静态库文件
CocoaPods提供了pod lib create命令创建库项目
zhijianuandeMBP:~ YuanZhiJian$ pod lib create 'RKBluetoothLEKit'Cloning `https://github.com/CocoaPods/pod-template.git` into `RKBluetoothLEKit`.Configuring RKBluetoothLEKit template.------------------------------To get you started we need to ask a few questions, this should only take a minute.If this is your first time we recommend running through with the guide: - http://guides.cocoapods.org/making/using-pod-lib-create.html ( hold cmd and double click links to open in a browser. )What language do you want to use?? [ Swift / ObjC ] > ObjCWould you like to include a demo application with your library? [ Yes / No ] > YesWhich testing frameworks will you use? [ Specta / Kiwi / None ] > NoneWould you like to do view based testing? [ Yes / No ] > NoWhat is your class prefix? > RK
将上面生成的RKBluetoothLE_iOS. framework拷贝到生成的RKBluetoothLEKit 库项目的RKBluetoothLEKit目录下
编辑库的Spec描述文件RKBluetoothLEKit.podspec
Pod::Spec.new do |s| s.name = "RKBluetoothLEKit" s.version = "0.1.0" s.summary = "车精灵中控蓝牙SDK" s.description = <<-DESC车精灵中控蓝牙SDK,提供车辆操控、个性化、自检等功能。API调用模式使用了RAC DESC s.homepage = "https://github.com/yuanzj/RKBluetoothLEKit" # s.screenshots = "www.example.com/screenshots_1", "www.example.com/screenshots_2" s.license = 'MIT' s.author = { "yuanzj" => "jswxyzj@qq.com" } s.source = { :git => "https://github.com/yuanzj/RKBluetoothLEKit.git", :tag => s.version.to_s } # s.social_media_url = 'https://twitter.com/<TWITTER_USERNAME>' s.ios.deployment_target = '8.0' s.platform = :ios, '8.0' s.requires_arc = true # s.source_files = 'RKBluetoothLEKit/Classes/**/*' # s.resource_bundles = { # 'RKBluetoothLEKit' => ['RKBluetoothLEKit/Assets/*.png'] # } # s.public_header_files = 'Pod/Classes/**/*.h' s.frameworks = 'Foundation', 'CoreBluetooth' s.dependency 'ReactiveCocoa', '~> 4.1.0' s.dependency 'CocoaSecurity', '~> 1.2.4' s.vendored_frameworks = 'RKBluetoothLEKit/*.{framework}'end
上面最重要的是
s.vendored_frameworks = ‘RKBluetoothLEKit/*.{framework}’
表示pod库项目依赖自己的framework
推送SDK项目到GitHub仓库
pod lib create命令创建的项目已经自动使用git版本管理使用下面的命令将项目推送到GitHub仓库
git remote add origin https://github.com/yuanzj/RKBluetoothLEKit.git //连接远程仓库并建了一个名叫:origin的别名git push -u origin master //将本地仓库的东西提交到地址是origin的地址,master分支下###发布SDK到CocoaPods
创建Spec描述文件RKBluetoothLEKit.podspec中指定的版本tag并推送到GitHub仓库
git tag -a 0.1.0 -m "first release"git push origin --tags
发布SDK项目到CocoaPods
注册账号
在开始提交项目到CocoaPods之前,需要我们先搞一个账号:
pod trunk register jswxyzj@qq.com ‘yuanzj’ –description=’My own computer’
执行上面命令后需要去上面填写的注册邮箱中进行验证,验证后可以使用pod trunk me来查看是否”注册”成功。
zhijianuandeMBP:RKBluetoothLEKit YuanZhiJian$ pod trunk me
- Name: jswxyzj
- Email: jswxyzj@qq.com
- Since: March 7th, 19:30
- Pods:
- RKBluetoothLEKit
- Sessions:
- March 7th, 19:30 - July 14th, 01:18. IP: 49.80.216.112
- May 7th, 00:32 - September 12th, 01:03. IP: 60.250.10.247
Description: My office computer
- May 7th, 07:16 - September 13th, 07:17. IP: 203.69.59.198
Description: My own computer
验证.podspec文件
首先需要验证你的代码是否有错以及Podspec文件,那么这个时候下面这条命令就起到非常大的作用了:
pod lib lint RKBluetoothLEKit.podspec
这条命令是用来验证你的Podspec文件是否有问题,并且代码里面是否有问题命令。建议这条命令后面跟着–verbose的参数。
–allow-warnings 是否允许警告,在用到第三方框架的时候,有的时候是自带会有warmings的代码,用这参数可以屏蔽警告。这个参数强烈希望大家加上。
上传
终于到达上传的时间了,运行命令:
pod trunk push RKBluetoothLEKit.podspec
遇到第三方库的告警导致终止添加–allow-warnings即可如:
pod trunk push RKBluetoothLEKit.podspec –verbose –allow-warnings
只要通过上述命令即可上传项目到Cocoapods官方的仓库里去,当然如果你有新的tag版本的话也是通过该命令进行上传新的版本到Cocoapods的。而我们可以通过pod search 名字来查询是否上传成功。
-> RKBluetoothLEKit (0.1.0)
车精灵中控蓝牙SDK
pod ‘RKBluetoothLEKit’, ‘~> 0.1.0’
Homepage: https://github.com/yuanzj/RKBluetoothLEKit
Source: https://github.com/yuanzj/RKBluetoothLEKit.git
Versions: 0.1.0 [master repo]
最后在集成了RKBluetoothLEKit库使用的时候发现能够编译和运行通过就是在代码中导入头文件的地方会提示
“could not build module ‘XXX’”
一开始以为RKBluetoothLEKit.podspec 文件编写有问题google 了很多地方尝试了很多方法结果都没有效果。
这个问题最近终于彻底完美解决了
把target 下 Build Settings 中 Allow Non-modular includes in Framework Modules 选项卡设为yes
验证:
pod setup
rm ~/Library/Caches/CocoaPods/search_index.json
pod search 文件
补充:
Claim your Pod 声称,索取: https://trunk.cocoapods.org/claims/new
可以利用 pod trunk info yooweiTest 查询相关信息
$ pod trunk info yooweiTest
yooweiTest
- Versions: - 1.0 (2017-01-14 06:50:53 UTC)
- Owners: - yoowei yoowei@126.com
点击SEND进入页面后:$ pod trunk help 可以查询一般的命令,包括添加开发者
Cocoapods系列教程(三)——私有库管理和模块化管理
使用CocoaPods开发并打包静态库
- CocoaPods 封装SDK
- cocoapods 封装库
- 封装SDK和Framework
- iOS 封装SDK
- iOS SDK封装
- iOS 封装SDK
- iOS 封装SDK
- iOS 封装SDK
- webrtc封装sdk 思路
- SDK封装 平台无关
- js封装sdk
- CocoaPods的使用,安装第三方SDK
- 自己动手封装SDK界面库
- Fbx SDK 的.NET封装
- android工程封装成SDK
- cocos2d 使用 cocoapods 安装 google admob ads sdk
- cocoapods 导入SDK时podfile文件内容更新
- 七牛非Cocoapods 手动集成霹雳直播SDK(通用版)
- 【Java】9.CountDownLatch使用与分析
- Android创建隐藏文件或者文件夹,并对其读写操作
- 到当前日期的每周一和周日、每月第一天和最后一天日期的获取
- springboot 将yml文件内容注入javaBean
- IntelliJ IDEA使用教程 (总目录篇)
- CocoaPods 封装SDK
- docker基础环境学习
- tf-idf(term frequency–inverse document frequency)含义
- iscsi
- PXE一键安装Coreos
- 数组、链表、堆栈和队列
- 解决深度学习过拟合问题
- 为文本添加省略动画
- UIView裁剪矩形 镂空(中间透明,周围半透明)