组件化之pod私有库创建步骤

随着项目越来越复杂,模块越来越多,这时候可以使用组件化方式解耦,分块管理代码,组件化方式很多,CocoaPods是组件化方式之一。

1.pod私有库,别人看不到你的源码;
2.pod私有库可以减少项目合并造成的冲突,整洁易管理;
3.但是增加了维护成本,修改代码就需要上传更新库版本;

由于GitHub私有库收费,这里使用码云托管平台(还有GitLab/Coding等平台)

1.创建仓库:
这里写图片描述
2.复制仓库路径;cd到桌面克隆仓库:

//git克隆仓库
duningdeMBP:Desktop duning$ git clone https://gitee.com/DonnyDN/SFString1.git

3.clone之后,在目录下创建工程,Example里是测试demo:
这里写图片描述
这里写图片描述
4.在仓库路径下,生成.podspec文件,使用命令:

//pod spec create + 私有库名字
duningdeMBP:SFString1 duning$ pod spec create SFString1

5.编辑podspec描述文件,填写私有库相关信息(可以去Github仿照一些知名库的podspec文件配置):

Pod::Spec.new do |s|

  //私有库名字
  s.name         = “SFString1"
  //版本
  s.version      = “0.0.1”  
  //简介
  s.summary      = "iOS字符串类别”

  //私有库详细描述(比简介更详细)
  s.description  = <<-DESC
                   pod私有库 - iOS字符串类别,方便开发
                   DESC
  //项目主页地址
  s.homepage     = "https://gitee.com/DonnyDN/SFString1
  //开源许可证类型
  s.license      = "MIT"
  //作者
  s.author       = { "DNCoder" => “xxxxxx@163.com" }
  //库路径(即仓库路径,复制并在后添加.git后缀)
  s.source       = { :git => "https://gitee.com/DonnyDN/SFString1.git", :tag => "#{s.version}" }

  //最低支持的系统版本
  s.platform     = :ios, '8.0'  
  //是否支持ARC
  s.requires_arc = true
  //资源文件路径(**表示匹配所有子目录;*表示匹配所有文件)
  s.source_files  = "SFString1/*.{h,m}"

  //若有依赖的库,要填写s.dependency:
  #s.dependency "JSONKit", "~> 1.4"
  #s.dependency "Masonry", "~> 1.0.0"
end

6.提交所有文件到git仓库

duningdeMBP:SFString1 duning$ git add .
duningdeMBP:SFString1 duning$ git commit -m "第一次提交(库文件+podspec文件)”
duningdeMBP:SFString1 duning$ git pull
duningdeMBP:SFString1 duning$ git push

7.给工程打tag标签:

//注意tag和podspec文件里的s.version一样
duningdeMBP:SFString1 duning$ git tag "0.0.1"
duningdeMBP:SFString1 duning$ git push —tags

6.验证上一步编辑的 .podspec文件是否有错,在podspec文件所在目录下执行命令:

pod lib lint --allow-warnings

如果有ERROR,则需要去一个个修改完成

(1) - -verbose:表示显示全部的日志信息,建议加上这个,方便判断错误信息;
(2) - -sources:如果我们在podspec里面依赖到一些私有的库之后,直接进行校验是会报错的提示找不到,这里可以加上Spec仓库的地址告诉CocoaPods找不到的时候去哪里找;
(3) - -allow-warnings:表示允许警告;
(4) - -use-libraries:表示使用静态库或者是framework,这里主要是解决当我们依赖一些framework库后校验提示找不到库的时候用到。

7.创建私有的索引库Spec Repo:

duningdeMBP:SFString1 duning$ pod repo add SFString1 https://gitee.com/DonnyDN/SFString1
duningdeMBP:SFString1 duning$ pod repo push SFString1 SFString1.podspec

打开本地cocopods仓库,查看本地repo库(会包含SFString1库):

open ~/.cocoapods/repos/

检查podspec文件是否有效:

duningdeMBP:SFString1 duning$ pod spec lint --allow-warnings

8.查询本地是否有对应的项目库

pod search SFString1

查看本地pod索引库

pod repo

9.最后,在podfile文件里试验一下,注意要添加两个source源,pod install成功!:

platform:ios,'8.0'

source 'https://github.com/CocoaPods/Specs.git'
source 'https://gitee.com/DonnyDN/SFString1.git'

def common_pods
    #这是从本地加载
    #pod 'SFString1', :podspec => '~/.cocoapods/repos/SFString1/SFString1.podspec'

    #这是从远程仓库下载
    pod 'SFString1'

    pod 'Masonry', '~> 1.0.0'
end

target 'TestDemo' do
    common_pods
end

10.更新维护
需重新提交代码,修改spec描述文件并提交,大概步骤如下:

1.重新提交代码:
git add .
git commit -m ‘更新了*
git push origin master

2.打tag,同时改spec描述文件:
git tag 0.0.2
git push –tags

3.更新spec文件到索引库
pod repo add SFString1 https://gitee.com/DonnyDN/SFString1
pod repo push SFString1 SFString1.podspec

11.私有库关联trunk账号变为公有库:
注册trunk需要CocoaPods 0.33版本以上:

//查看pod版本
pod --version

//版本低的话,升级pod
sudo gem install cocoapods
pod setup
查看自己是否注册过Trunk
pod trunk me

注册trunk账户:

// 加上--verbose可以输出详细debug信息,方便出错时查看(邮箱 + 名字)。
pod trunk register xxxxx@163.com "userName" --verbose

注册完成之后会给你的邮箱发个邮件,进入邮箱邮件里面有个链接,需要点击确认一下.
注册成功后可以再查看一下个人信息:

pod trunk me

发布时会验证 Pod 的有效性,如果你在手动验证 Pod 时使用了 –use-libraries 或 –allow-warnings 等修饰符,那么发布的时候也应该使用相同的字段修饰,否则出现相同的报错。

// --use-libraries --allow-warnings
pod trunk push SFString1.podspec

后续:
1.也有单独创建一个podspec文件仓库的方式,我这里是直接git项目和podspec文件共用git仓库了;

1.也有使用如下命令的方式创建项目的
例:https://www.jianshu.com/p/9992feb8b00b

pod lib create SFString2

参考:
https://www.cnblogs.com/daxueshan/p/6901641.html
https://segmentfault.com/a/1190000012269388
http://www.cocoachina.com/ios/20180308/22509.html
https://blog.youkuaiyun.com/sdefzhpk/article/details/69389584
https://blog.youkuaiyun.com/xiaofei125145/article/details/50673392
https://www.jianshu.com/p/9992feb8b00b
https://www.jianshu.com/p/48c229d13fdd

### DeepSeek 私有化部署教程 #### 环境准备 为了顺利进行DeepSeek的私有化部署,需先完成腾讯云HAI实例配置工作。这一步骤确保有足够的计算资源来支持后续的操作[^1]。 #### 部署方式介绍 ##### 方法一:通过 Chatbot UI 使用 DeepSeek 此方法适用于希望通过图形界面快速上手的新用户。只需按照指引,在界面上输入必要的参数即可实现模型调用和对话测试等功能。 ##### 方法二:利用 Cloud Studio 编辑器集成开发环境 对于习惯于在线IDE工作的开发者来说,这是一个不错的选择。可以在云端创建项目文件夹,并直接在里面编写代码与管理依赖项,极大地方便了日常调试过程中的版本控制需求。 ##### 方法三:借助 Jupyter Lab 实现交互式编程体验 适合那些偏好笔记本风格的工作流的研究人员和技术爱好者们。它允许使用者在同一页面内混合展示文字说明、Python脚本以及可视化图表等内容,非常适合用于教学演示或探索性数据分析场景。 #### 模型下载流程 一旦选择了合适的运行平台之后,则可以着手准备具体的模型加载事宜: 1. **进入Prepare容器** 执行命令`kubectl exec -n deepseek | awk 'NR>1 {print $1}' | grep prepare ) bash -n deepseek`以获得对目标Pod内部Shell访问权限[^2]。 2. **安装 Hugging Face 工具库** 接下来要做的就是确保环境中已经包含了最新版的 `pip install huggingface` ,以便能够顺利完成接下来的数据获取任务。 3. **下载指定版本的 DeepSeek V3 模型** 最后一步便是实际执行下载动作:`huggingface-cli download --resume-download deepseek-ai/DeepSeek-V3 --local-dir /model/deepseek-ai/DeepSeek-V3`. 此处指定了断点续传机制(`--resume-download`) 和本地存储路径 (`--local-dir`). 这样即使中途遇到网络波动也不必担心整个传输过程会被迫中断重试. #### 解决常见问题 如果在尝试上传自定义文档至 AnyThing LLM 平台的过程中遇到了持续性的进度条卡顿现象, 可能是因为当前使用的 Embedder 组件并不完全兼容所选语言处理模块 (即 Deepseek). 由于两者之间存在着一定的技术差异(比如不同的嵌入算法), 因而建议调整相关设置或者寻找官方提供的替代方案来克服这一障碍[^3]. ```bash # 示例代码片段: 如何切换到正确的embedder插件 anything_llm_config = { "embedder": "deepseek_embedder", # 更改为匹配Deepseek的服务端名称 } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值