专栏首页IMSDK利用CocoaPods实现私有 TUIKit 组件
原创

利用CocoaPods实现私有 TUIKit 组件

前提

集成 TUIKit 组件, 如果你发现 TUIKit 有 bug 需要修改, 或者因为公司业务需求需要在此基础上做二次开发, 那么就需要修改 TUIKit 源码, 但是如果下一次 TUIKit 更新时, 或者你执行 pod install 的时候, 远程库的 TUIKit 就会覆盖本地的 pod, 之前的改动都被覆盖了. 之前所写的代码都付之东流. 因此一种更加优雅的做法是把 TUIKIt 私有组件化, 再集成自己私有的这个 TUIKit pod 并在此基础上二次开发或者改动, 当 TUIKit 有更新的时候根据业务需求考虑 git 操作, merge 到自己的本地私有库来实现更新.

准备工作

  • 安装好 XCode
  • 配置好 CocoaPods,并且可以 pod update 以及 pod install 成功
  • 下载 TUIKit 源码, https://github.com/tencentyun/TIMSDK 下的 iOS/TUIKit 目录, 或者 podspec 里面的 source 地址均可下载 TUIKit 源码

私有 Spec Repo

进入 TUIKit 源码目录, 执行 pod spec create TUIKit , 即可生成 podspec 文件, 编辑这个文件, 注意 source 如果是本地则为空, 其他如 vendored_libraries 和 resource 注意一定不要把目录搞错了. 下图是一个参考:

Snip20201031_1.png

可用下列命令检查 podspec 文件是否规范:

$ pod spec lint xxx.podspec

在 Podfile 中使用 pod 'TUIKit', :path => '../TUIKit' 指向本地库即可, pod install 之后即可安装成功

集成之后再看 TUIKit 想找相关的模块就比较清楚了

更新 TUIKit

可以看 巧用 Git 分支管理自动升级 TUIKit 源码 这个 wiki

给 TUIKit 贡献代码

当你发现 TUIKit 有 bug 自己能修复时, 可以给 https://github.com/tencentyun/TIMSDK 仓库贡献您的代码. 提交PR即可, 具体步骤可以参考如下:

  1. 首先 fork 一份 https://github.com/tencentyun/TIMSDK 到你自己的仓库.
  2. 在本地仓库执行修改, 并提交到自己的仓库
  3. 从刚刚更新的master分支新建一个修复分支, 例如 git checkout -b fix-ios-14-click-cell-not-response master 在这个分支上修改
  4. 然后 git add 刚刚的修改, 再提交到 GitHub. (注意只提交你修改, 不然会提交很多无意义的更改到分支上)

注意: iOS 不要提交 pod install 之后的版本, 会有很多无关文件

  1. 然后就可以在GitHub上提 PR 了, 创建一个PR, 从自己的仓库到腾讯云仓库. 写好注释即可
image.png
image.png

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 使用 TIMSDK 的自定义字段 iOS 示例

    "用户资料自定义字段","好友自定义字段","群成员维度自定义字段","群维度自定义字段" 均已键值对 Key-Value 形式存储并使用。扩展相应的字段 Ke...

    腾讯云 - zjiezhu
  • 关于 IMSDK 的几种消息的解释和对应接口

    离线消息是指未在客户端已读的消息, 即时通信 IM 支持离线消息缓存,即当用户不在线时,下次登录仍会拉取到离线消息, 通过 OnNewMessage 抛出. 默...

    腾讯云 - zjiezhu
  • MATLAB调用C程序、调试和LDPC译码

    最开始用MATLAB写的LDPC译码算法中,其中一个版本是这里,里面有三重循环,运行速度极慢。后来考虑了MATLAB的向量化操作,通过算法的合理划分以及...

    sea-wind
  • Vlookup函数的大表哥介绍

    谈到匹配函数,杠把子肯定是Vlookup函数,由于Vlookup前期的文章已经分享过了,今天分享Vlookup的大表哥,谁是他的大表哥呢?有人会说Hlookup...

    用户1332619
  • python的calcsize的妙用

      python的struct包让二进制文件的处理变的非常简单,通过unpack可以方便的进行把文件的内容读读取到变量里。

    py3study
  • js取url参数

    deepcc
  • 资源: 适合 AI 新手的 9 款人工智能开源软件

    如果要问当下互联网什么最热门?毫无疑问是人工智能。为此,小编特别推荐9款托管在码云上的人工智能开源软件,希望能够给大家带来一点点帮助和启发!

    AI科技大本营
  • 【干货】计算机视觉实战系列01——用Python做图像处理

    【导读】在当今互联网飞速发展的社会中,数量庞大的图像和视频充斥着我们的生活,让我们需要对图片进行检索、分类等操作时,利用人工手段显然是不现实的,于是,计算机视觉...

    WZEARW
  • Jmeter(二十三) - 从入门到精通 - JMeter函数 - 上篇(详解教程)

      在性能测试中为了真实模拟用户请求,往往我们需要让提交的表单内容每次都发生变化,这个过程叫做参数化。JMeter配置元件与前置处理器都能帮助我们进行参数化,但...

    北京-宏哥
  • 小白也能玩转Kubernetes 你与大神只差这几步

    6月30日,腾讯云联合InfoQ举办的云+社区技术沙龙,以Kubernetes 上云一键部署、云上大规模计算平台构建、CIS底层技术实现、Tencent Hub...

    云加社区技术沙龙

扫码关注云+社区

领取腾讯云代金券