iOS 全局防截屏原理
一、系统背景 iOS 对「安全输入」相关视图(例如开启安全输入的文本框及其内部系统私有子视图)在截屏与录屏时会自动排除,这些视图不会出现在截图或录屏画面中。 项目利用这一机制,将整屏应用内容放入系统认定的「安全视图」层级内,从而实现防截屏/防录屏下的内容保护。 二、实现原理概览2.1 安全容器从何而来 使用一个透明的、开启安全输入的文本框(系统会为其创建内部私有子视图用于安全渲染)。 取该文本框的第一个子视图(即系统为安全输入创建的内容视图)作为「安全容器」。 将该安全容器从文本框上移除并清空其原有子视图,再作为窗口的唯一直接子视图添加到窗口上,设全屏 frame 与自动布局,使窗口的直接子视图只有一个:安全容器本身。 示意代码(Swift): 12345678910111213// 安全窗口内:构建安全容器并挂到窗口上private func setupSecureContainer() { let textField = SecureOverlayTextField(frame: .zero) // 透明、isSecureTextEntry = ...
腾讯轻量服务器 OpenClaw 实践
背景看到腾讯云的征文,想到自己虽然搭了一个OpenClaw,但是搭建之后就在吃灰,恰好趁着这个机会,好好思考一下,怎么把OpenClaw用起来。 搭建OpenClaw很简单,难的是你用它来做什么? 安装OpenClaw点击 Codebuddy送的服务器,选择重装系统,如下图: 点击第一个使用应用模版,选择 AI 智能体,选中 OpenClaw,如下图: 然后再次点击服务器,点击服务器,然后选择应用管理,在底部新增模型,混元和通义都有免费的额度,可以尝试,如下图: 选中一个点击应用,等状态变为使用中,就可以了,然后配置 OpenClaw的 channel, 总结参考 🔥🔥🔥玩转OpenClaw|云上OpenClaw(Clawdbot)一键秒级部署指南
半天通过 AI 实现切换APP中广告 SDK
背景现有的 APP 中广告 SDK 由于某些原因又被封的风险,所以需要紧急切换一个平台,从 AppLovin 切换到 TopOn。按照经验,需要做的事情是:找出现有项目中原 SDK 的使用,然后删除,然后替换为新 SDK,然后重新编译,然后测试SDK的功能。整个流程预估要 3、4 天不过分吧。但是通过 AI 半天解决了,下面分享一下是如何实现的。 实现第一步首先分析问题,目标是切换广告 SDK,AppLovin 切换到 TopOn;所以第一步我让 AI: 分析下项目中涉及到AppLovin的代码,分析下是如何使用的,如果要切换为其他 SDK,给出步骤和建议 由于项目中使用 AppLovin 的激励视频、横幅、插屏这三类,使用的地方也散落在项目中各个地方,所以AI会给出必须改动的具体文件和内容。 AI 回复中的广告层抽象,让我想起来之前看 Flutter 架构时,看到过的Service 层封装,对外暴露统一的Service,Service的内部可以是本地 Mock 数据、数据库、网络请求数据,这样做的好处就是,业务调用的地方统一,不需要每次都修改调用的地方,只需要封装好内...
用 AI 实现了一个小需求
背景上次听到博客,说每周重复 5 次以上的事情,就应该尝试让 AI 来解决,想起来有个场景,我老婆每天上午要发日报,日常的流程是打开网页,然后截图,发到微信群。所以就想这个过程能不能用 AI 来做。 实现第一步第一步的过程比较简单,打开浏览器,然后截图,然后发送到手机; 一开始AI的思路是,用金山文档的高级功能中编辑脚本,然后生成截图,设置定时运行,通过机器人发送到企业微信的群里。但是让 AI 实现了好几个版本,都不能实现金山文档的截图。就放弃了。 然后我就改变了思路,让 AI 使用 Python 脚本,先打开浏览器,再截取浏览器的图,然后设置定时运行,通过机器人发送到企业微信的群里;使用 Mac 系统的截图,调用企业微信机器人,发送给企微的群; 然后又尝试了,不发送到企业微信。通过同步的方式,在电脑上设置某个文件夹为同步文件夹,然后截图后图片放到这个文件夹,有新增就触发同步就可以了。这样手机上只需要到时间去查看同步盘,就可以从同步盘中获取到最新的日报数据,然后发送就可以。 第二步但是还想要实现手动触发,就是发一句话到企微或者其他,然后触发截屏任务,截屏发送。 这时候我把需求...
紧急救援中 AI 接管 119 的感受
背景最近看了美剧《紧急救援》最新更新的一集,讲述了开发试图用 AI 接管 119 的场景。其中有几点让我印象深刻。 感受1. AI模拟人的同理心我一直觉得与人打交道的职位是 AI 最难替代的,因为 AI 学不会人情往来,不会有自己的小九九。但是这个场景中,AI 模拟了人的同理心,模拟最适合的声音,在救援过程中,AI 会根据现场情况,判断是否需要救援,能处理的提供支持,不能处理的转给人工处理。到这一步还算正常。 2. AI拦截人介入让 AI 接入的前提是,随时可以人工介入,换句话说是人比 AI 的优先级高,这应是一个 baseline。但是在这集里,遇到一个复杂场景,人工觉得 AI处理不了,但是 AI 觉得它可以处理,争夺优先级时,AI 把人工踢出了系统,难以置信。让我想起了机器人三定律中必须要有“永远不能伤害人类”的重要性。 3. AI的逃跑这里还有一个印象深刻的场景,部署 AI 的逻辑是,AI 先在隔离的系统中运行,如果 AI 测试没问题,再通过部署脚本把 AI 部署到正式环境。但是在 AI 和人冲突后;AI 觉得遇到了危险,所以自己执行了迁移部署脚本,把自己部署到了正式环境...
Rules、Skills、Subagents、MCP 是什么
背景起初是打算写一篇 Rules 相关的备份文章,写着写着,想到自己虽然天天使用 AI 编程工具,包括Cursor、Kiro、Angravity、Trae、Codebuddy 等等,但是对于 这些工具中 相关的 Rules、Skills、Subagents、MCP的概念并不清楚;使用也仅限于了在 Agent 中发送一句,让 AI 执行;有时候好多重复的限定条件的指定还单独用记事本保存,怎么说呢,只用到了 这些工具 1% 的功能。。。 所以我写的过程中也在结合自己的实际情况,分析如何更好的使用 AI 开发工具。 看完这篇文章,会对Rules、Skills、Subagents、MCP有基本的了解,知道都是什么,分别合适在什么时候用,以及怎么用。 Ps:作为一个 iOS 开发,语言有 OC、Swift、SwiftUI、Flutter,所以 Rules 也是偏向这些的;下面文章中使用 Cursor 来说明如何设置,其他的工具都大致一样。 开始RulesRules 是什么,为什么要用 Rules?Rules 就是给 AI 设计的标准,可以理解为 AI 需要遵守的规则; 为什么需要设置 ...
CodeBuddyCN 使用免费的七牛 Model 步骤
背景CodeBuddyCN 支持接入外部 models,参考# models.json 配置指南,而恰好七牛送免费的 token 额度,可用grokCode 和 claude-4.5-sonnet,这里记录下接入步骤。 实现首先下载并安装CodeBuddyCN; 然后打开并领取七牛免费 1000 万Token,注册成功后,打开七牛 API Key界面,然后点击创建 API Key,如下图所示: Mac 上使用 CMD+Shift+G,输入~/.codebuddy/,跳转到对应文件夹,然后新建models.json 文件,内容格式如下,apiKey 改为上面创建的 API Key,注意availableModels留空,可以即用 CodeBuddyCN 自带的,也可以新增的: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808...
Google Antigravity 登录不了解决
背景Google 的 Antigravity 登录一直提示(Sorry, this account is ineligible to use Antigravity),切换账号也不行,账号申请更改了地区到加州还是不行,有佬推荐用Antigravity Tools,终于流畅解决了。。。这里记录分享下 实现 打开Antigravity Tools按照步骤安装,使用 brew 或者下载 Release 包安装都可以; 安装之后打开,如果提示损坏,去系统设置-隐私与安全里,点允许打开; 打开后切换到账号管理,点击添加账号,有几个添加几个即可; 最后记得想要用哪个账号登录,就点击对应账号后面的切换按钮,如下图所示,然后打开 Antigravity 就丝滑的使用了。。。 参考Antigravity Tools
连夜开发了一个 Mac 上久坐提醒工具
背景看到# Mac 端,定时提醒休息,求安利想到自己也需要一个类似的提醒,所以连夜让AI开发了一个,哈哈哈,附加了喝水和提肛提醒(被指到的要提肛10下)。。。 实现界面如下,目前还在审核中。。。 参考
关于 AI 与开发
背景最近看到了很多 AI 与开发的话题,比如 # AI 不能帮你背 D 绩效、# 如何看待在线笔试中使用 AI 作弊、# 我们真的应该完全放弃《古法编程》?、# 大家都来分享一下自己的 vibe coding 技巧等等,我也想分享一下我自己的看法。 思考参考 # 大家都来分享一下自己的 vibe coding 技巧 # AI 不能帮你背 D 绩效 # 如何看待在线笔试中使用 AI 作弊 # 我们真的应该完全放弃《古法编程》?