尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
如何在iOS上实现应用封锁器?Foqos基于FamilyControls与ManagedSettings的完整技术解析
【免费下载链接】foqosFoqos allows you to lock apps behind the tap of a NFC tag or scan of a QR code. Free and open source alternative to Brick, Opal, ScreenZen, Unpluq, Scrolly, Blok and more!项目地址https://gitcode.com/gh_mirrors/fo/foqos点击查看免费下载Foqos是一款免费开源的 iOS 应用封锁器App Blocker它基于苹果官方的 FamilyControls 与 ManagedSettings 两大框架让你可以封锁 App 和网站并通过 NFC 标签、二维码、计时器或手动按钮来开始/结束专注会话。本文将带你从框架原理到源码实现完整解析 Foqos 是如何在 iOS 上实现系统级应用封锁的 ️。一、为什么选 FamilyControls 与 ManagedSettings在 iOS 上实现应用封锁器只有两条官方路径框架作用在 Foqos 中的用途FamilyControls屏幕使用时间 API提供应用/网站封锁的授权与执行能力支持 DeviceActivity 后台活动调度请求 Screen Time 授权、定时封锁ManagedSettings提供ManagedSettingsStore写入系统级屏蔽Shield规则真正挡住App 弹窗、拦截应用移除/安装两者的分工非常清晰FamilyControls负责许可 时机——你有权封锁什么、什么时间封锁ManagedSettings负责执行 界面——系统弹出自定义 Shield 挡住被封锁的 App。这是 Foqos 无需越狱、无需 MDM 就能实现系统级封锁的关键也是它与 Brick、Opal 等付费应用封锁器的共同技术底座。二、整体架构5 个协同工作的 TargetFoqos 由 5 个 Target 组成各自承担一个封锁链路环节foqos/ |-- Foqos/ # 主 AppUI、策略、封锁规则写入 |-- FoqosDeviceMonitor/ # DeviceActivity 监控扩展计时器触发点 |-- FoqosShieldAction/ # Shield 按钮动作扩展临时放行逻辑 |-- FoqosShieldConfig/ # Shield 外观定制扩展主题色/趣味文案 -- FoqosWidget/ # Widget 与 Live Activity主 App管理封锁 Profile、策略选择、写入 ManagedSettings 规则DeviceActivity 扩展DeviceActivityMonitorExtension.swift 监听系统计时活动的起止在intervalDidStart/intervalDidEnd回调中启动或解除封锁——这是到点自动封锁/解封的核心触发器两个 Shield 扩展定制被封锁 App 弹出时看到的系统界面后文详述。NFC计时器封锁策略NFC标签与计时器组合的专注封锁模式三、第一步请求 Screen Time 授权FamilyControls一切的前提是获得系统授权。Foqos 通过 RequestAuthorizer.swift 封装了这一步调用AuthorizationCenter.shared.requestAuthorization(for: .individual)请求个人模式授权即用户封锁自己的设备而非儿童账户通过authorizationStatus判断当前授权状态驱动 App 的引导页跳转。对应的开发者权限在 foqos.entitlements 中声明keycom.apple.developer.family-controls/key true/⚠️ 本地开发时需要 Apple Developer 账户申请 Screen Time 权限App ID 勾选 Family Controls capability这是该框架的硬性门槛。授权数据还通过 App Groupgroup.dev.ambitionsoftware.foqos见 Shared.swift在 App 与各扩展之间共享保证 Shield 扩展、DeviceActivity 扩展能读到同一个会话状态。四、第二步写入 ManagedSettings 屏蔽规则授权完成后真正的封锁动作发生在 AppBlockerUtil.swift 中。它持有一个独立的ManagedSettingsStorelet store ManagedSettingsStore( named: ManagedSettingsStore.Name(foqosAppRestrictions) )激活封锁时它会设置以下几类系统级规则属性含义store.shield.applications按 App 黑名单封锁或白名单模式.all(except:)store.shield.webDomains封锁指定网站域名store.webContent.blockedByFilter通过 Web Content Filter 扩展拦截网页内容含成人内容自动拦截store.application.denyAppRemoval严格模式下禁止卸载被封锁的 Appstore.application.denyAppInstallation禁止安装新 App这套黑名单 / 白名单Allow Mode/ 严格模式禁止移除 App三档设计正是应用封锁器对抗直接卸载绕过的经典做法。停止会话时deactivateRestrictions()会逐项置nil并调用store.clearAllSettings()清理全部规则。五、第三步DeviceActivity 实现到点自动封锁手动开始/停止太简单了真正体现技术含量的是无人值守的定时封锁。Foqos 使用 FamilyControls 的DeviceActivityCenterDeviceActivityCenterUtil.swift 负责向系统注册DeviceActivitySchedule开始/结束时间、是否重复例如每日 21:00–23:00 自动封锁系统在对应时间点唤醒DeviceActivity 扩展回调intervalDidStart→ 调用activateRestrictions()写入屏蔽规则时间窗口结束触发intervalDidEnd→ 调用deactivateRestrictions()解除封锁。由于由系统进程而非 App 本身驱动即使 Foqos 被杀进程、甚至设备重启计时封锁依然生效——这是纯 Timer 方案做不到的。类似的机制还被复用在临时放行Soft Unblock到期收回SoftUnblockGrantScheduler.swift 为每次放行 N 分钟单独注册一个计时活动到期自动收回权限暂停计时器、休息时段、策略倒计时等多类计时场景统一定义在 Timers/ 目录。六、第四步定制 Shield 界面与软解锁按钮当用户点击被封锁的 App 时系统会弹出 Shield 界面。Foqos 用两个扩展把它做成了产品亮点1. 外观定制—— ShieldConfigurationExtension.swift位于FoqosShieldConfig/继承ShieldConfigurationDataSource为每个被封锁的 App/网站返回自定义ShieldConfiguration支持用户主题色背景、Emoji 图标以及按日期 App 名稳定随机挑选的 17 条趣味劝返文案如Brain check你真的是想用这个 App还是无意识点了。2. 临时放行按钮—— ShieldActionExtension.swift位于FoqosShieldAction/继承ShieldActionDelegate拦截用户在 Shield 上的主按钮点击.primaryButtonPressed校验剩余放行额度后创建一条SoftUnblockGrant含过期时间并通过 DeviceActivity 注册到期自动收回——实现允许打开 5 分钟之后自动重新封锁的Soft Unblock策略且整个流程无需打开 Foqos 主 App。七、策略模式12 种启动/停止方式如何统一Foqos 把怎么开始、怎么结束抽象为策略模式核心协议见 BlockingStrategy.swift每个策略声明usesNFC、usesQRCode、hasTimer等能力位UI 由策略自行返回StrategyManager.swift 注册了 12 个策略实现手动、NFC 碰一下、二维码、NFC计时器、暂停计时器、NFC/QR 软解锁等统一入口startBlocking/stopBlocking分发到具体策略最终都收敛到AppBlockerUtil的激活/解除方法。NFC 与 Shortcuts 集成是它的特色玩法App 内可直接向 NTAG213 标签写入 Profile 深链接https://foqos.app/profile/UUID碰一下就切换封锁状态也可以配合 iOS Shortcuts 的 NFC 自动化开启 Run Immediately实现贴标签 启动专注。仓库还提供了 25mm 标签的 3D 打印 NFC 砖块/钥匙扣设计八、如何获取与开发 Foqos使用直接从 App Store 下载 Foqos授予 Screen Time 权限创建 Profile选择 App/网站 策略即可开始封锁。数据全部存于本机 SwiftData无账号、无广告、无订阅。本地开发git clone https://gitcode.com/gh_mirrors/fo/foqos cd foqos make build # 构建项目 make lint # Swift 格式检查开发环境要求 Xcode 15、iOS 17.6 SDK以及具备 Screen Time / NFC entitlements 的 Apple Developer 账户。想深入阅读源码建议按这个顺序AppBlockerUtil.swift → DeviceActivityMonitorExtension.swift → ShieldConfigurationExtension.swift → StrategyManager.swift。九、总结回顾 Foqos 的技术路线iOS 应用封锁器的实现骨架其实非常清晰FamilyControlsAuthorizationCenter拿授权DeviceActivityCenter管什么时候封锁ManagedSettingsManagedSettingsStore写屏蔽规则两个 Shield 扩展管封锁时用户体验App 层用策略模式封装 12 种 NFC/二维码/计时器/手动触发方式统一调用上述两套 API。想给自己的 App 加专注模式能力、或实现类似 Brick 的物理触发封锁Foqos 的 MIT 开源代码见 LICENSE正是一份现成的最佳实践教材。赞分享【免费下载链接】foqosFoqos allows you to lock apps behind the tap of a NFC tag or scan of a QR code. Free and open source alternative to Brick, Opal, ScreenZen, Unpluq, Scrolly, Blok and more!项目地址https://gitcode.com/gh_mirrors/fo/foqos点击查看免费下载相关推荐为什么值得从Brick换到Foqos免费开源NFC应用封锁器的完整对比指南为什么值得从Brick换到Foqos免费开源NFC应用封锁器的完整对比指南 Foqos 是一款 免费开源的 iPhone 应用封锁器 让你用一张 NFC 标PrimeFaces与Spring Boot集成构建现代化Java Web应用的完整指南PrimeFaces与Spring Boot集成构建现代化Java Web应用的完整指南 PrimeFaces是一个功能强大的Jakarta FacesJSUI库/组件[技术突破]如何在iOS设备实现永久应用侧载TrollInstallerX全解析技术突破 如何在iOS设备实现永久应用侧载TrollInstallerX全解析 价值定位重新定义iOS应用侧载技术 在iOS生态系统中应用侧载长期面临签名移动开发网络安全创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

农村集体三资管理系统实操:IE兼容、账套与报表勾稽

农村集体三资管理系统实操:IE兼容、账套与报表勾稽

简介:《农村集体三资信息管理系统操作手册》是一份面向农村集体经济组织财务与资产管理人员的系统使用说明文档,用于支撑资金、资产、资源的规范化登记、核算与监督,适合基层三资管理人员、乡镇经管干部及系统实施人员上手查阅。压缩包内共1个…

📅 2026/10/24 16:53:11
软考网工下午题:拓扑填空与配置命令高频失分点

软考网工下午题:拓扑填空与配置命令高频失分点

简介:面向备考软考网络工程师的考生,尤其适合需要攻克下午案例题中华为设备配置与网络规划分析的人群。内容按上午综合知识与下午案例分析两条线整理,上午部分梳理IP地址规划、DNS查询过程与记录类型、以太网标准、光纤网线对比、网络设备原理…

📅 2026/10/24 16:53:11
FreeSWITCH呼入呼出路由配置详解:从Dialplan到Gateway的实战指南

FreeSWITCH呼入呼出路由配置详解:从Dialplan到Gateway的实战指南

简介:这份文档面向使用 Freeswitch 搭建 VoIP 通信平台的运维与开发人员,聚焦呼入呼出路由配置这一关键环节,帮助读者理清拨号计划、SIP 中继与对等中继模式下的外呼实现思路。资源包内共 1 个 doc 文件,约 221KB,内容…

📅 2026/10/24 16:53:11
MORE NEWS

更多资讯

📰

Python动态网格交易策略:基于标准差与RSV的自适应调整

简介:针对网格交易中网格固定易导致过早满仓或空仓的问题,这份文档提出一种基于波动率与趋势状态动态调整网格大小的方法。面向有一定Python基础、希望完善量化策略的股票分析爱好者,也适合正在学习量化投资技术的初学者。内容结合标准差与RS…

📰

工业熔断器市场十年趋势:直流保护与设备更新驱动增长

简介:《2024-2030全球与中国工业熔断器市场现状及未来发展趋势》是QYResearch推出的行业研究报告,面向电气制造、工业自动化、电力保护等领域从业者及投资研究人员。报告系统梳理了全球及中国工业熔断器的产能、产量、销量、销售额、价格与市场份额&…

📰

低代码平台模块全景拆解:从拖拽画布到流程引擎的架构与二次开发

简介:这份文档面向低代码平台开发者、架构设计人员及技术选型决策者,系统梳理低代码开发平台的模块组成与功能实现方式,帮助读者建立从整体架构到细节模块的完整认知。资源为单个docx文档,压缩包约447KB,内容围绕平台核…

📰

基于MATLAB的数字图像缩放算法实现与性能对比:从最近邻到边缘定向插值

简介:这份资源是一篇电子信息工程专业的本科毕业设计论文,题目为《数字图像缩放技术研究》,面向图像处理方向的学生与研究人员,尤其适合正在准备相关课题或需要参考完整论文结构的学习者。论文围绕数字电视视频格式与图像分辨率展…

📰

JDK 1.7.0_03环境构建与兼容性实战指南

简介:本资源为Java 7开发环境核心安装包,面向Java初学者、教学实验者及需离线部署JDK的开发者,解决无网络或受限权限环境下快速搭建标准开发环境的问题。压缩包为RAR格式,大小70.23MB,内含完整免安装版JDK 1.7.0_03&am…

📰

Spring多数据源路由实战:三层可控切换与分库分表落地

简介:本资源是一份面向Java后端开发者与数据库架构初学者的分库分表实战教学包,聚焦企业级大数据量场景下的数据库水平扩展难题,以Sharding-JDBC为核心框架实现多数据源动态切换与透明化分片。资源共73个文件,涵盖18个Java业务与配…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬