Skip to content

darkThanBlack/DoKit-iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DoKit-iOS

2025/04/30 Created.

基于 DoKit 的最新 commit Fork 并自行维护,PR 仅用作指示。

Intro

DoKit 前身为 DoraemonKit,原为偏重于 iOS 的移动端位本地调试工具,后来往各平台开始扩展,并接入所谓滴滴平台功能。截至 2025 年,注意到

  • 仓库废弃:
    • pod 最新版本到 3.1.3,但 iOS 部分实际上只有 3.0.4 版本才能相对正常使用;
    • 大量的 issue 和 PR 无人处理,iOS 的最新提交停留在 2023 年。
  • 大厂病:
    • 强推平台功能,Core 中直接放入平台相关代码;
    • 滴滴内部自行维护分支,又将内外网账户管理混为一谈,交叉代码肆无忌惮地向主分支提交。

直到 Xcode16.3 + iOS18,不对入口 UI 修改的话已彻底无法使用,决定自行维护。

Usage

  pod 'DoKit',
    :subspecs => ['Core'],
    :git => 'https://github.com/darkThanBlack/DoKit-iOS.git',
    :branch => 'master',
    :commit => '7d690fb20062d7b9f2e7d08aa370679b59330b9b',
    :configurations => ['Debug']

注意,根据 官方文档Build configurations 这一小节,pod 的 configurations 不会对依赖项生效,需要手动一一指明,这里仅用无依赖的 core 作为例子。

目前没有打 tag 正式提交,为了避免不严谨的提交导致扰动,建议写死 commit

Feature

更名

  • 将 pod 的名字从 DoraemonKit 更换为 DoKit,删除子仓库名字的 With 前缀
  • 工程中已经有名为 DoKit 的目录文件夹和一些代码,应当是想要逐渐从原目录重构过去,但尚未开发完整,需要甄别并合并掉

Demo 工程修复

  • 通过 XcodeGen 的 yml 配合 Podfile 控制

    主要功能的开发和示例主要依赖于 DoKit-iOS/iOS/DoraemonKitDemo,由于 .xcodeproj.xcworkspace 会出现大量无意义变更,实践上会将它们从 git 控制中移除,并通过某些配置文件和工具来生成。

  • FBRetainCycleDetector: issue-115

    由于 FBRetainCycleDetector 已失去维护,使用这个临时方案,在 Podfile 内利用 ruby 直接替换某行源码。

平台削除

  • 删除 git 历史

  • 删除非 iOS 端位相关内容

  • 分离滴滴平台相关代码,单独作为一个 subspec

    平台相关代码会引用 GCDWebServer 和 FMDB 依赖用来构建本地服务,一般仓库不仅没必要引入,还容易因为 Podfile 写得不完备导致被带到线上去。

    • 一机多控的 Plugin 是通过 load 加载的,统一成宏判断的形式,和其他插件保持一致

旧 API

  • 删除 UIWebView 相关代码

    存在部分执意将该工具发布到线上的开发者,确保 API 使用同时符合 AppStore 机审标准。

适配:Xcode16.3, iOS18

Fix

Release

About

自行维护 DoKit 的 iOS 部分,致力于回归工具初心

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published