跳到主要内容
版本:3.0.1

清理模块

清理模块 - clear

清理某个或某组钥匙串信息 (clear.keychain)

声明

clear.keychain(反向域名)

参数及返回值

  • 反向域名
    • 文本型,通常可传入 App 开发商的反向域名(Reverse Domain),例如 "com.cardify",切勿乱传参数

说明

清理某个 App 或 App 分组的钥匙串信息,若不懂请直接用 clear.all_keychain

示例

clear.keychain
clear.keychain("com.cardify")  -- 清理掉与 com.cardify 相关的钥匙串信息

清理所有 App 的钥匙串信息 (clear.all_keychain)

声明

clear.all_keychain()
警告

调用后所有第三方 App 的钥匙串信息都会被清除。

清理剪贴板 (clear.pasteboard)

声明

clear.pasteboard()

说明

部分追踪信息可能会存在剪贴板中。

限制

可能需要重启 App 才能继续使用剪贴板服务。

清理浏览器 Cookies (clear.cookies)

声明

clear.cookies()

说明

部分追踪信息可能会存在浏览器 Cookies 中,仅对 Safari 生效。

清理系统缓存 (clear.caches)

声明

clear.caches()

说明

清理并重载标准系统设置缓存,通常不需要调用此函数。

备注

将强行重启服务 configdcfprefsd

示例

clear.caches
clear.caches()
--
clear.caches { uicache = true } -- 同时重建图标缓存

清除相册中所有本地照片 (clear.all_photos)

声明

clear.all_photos()

说明

清除相册中所有本地照片,不会影响 iCloud 照片流,清理期间所有线程都阻塞。

性能

耗时可能会非常长。

清理某个应用的存档数据 (clear.app_data)

声明

操作成败 = clear.app_data(标识符)

参数及返回值

说明

清理应用存档,清理期间所有线程都阻塞。

性能

耗时可能会非常长。

示例

clear.app_data
clear.app_data("com.cardify.tinder")

清理 IDFA/V (clear.idfav)

声明

操作成败, 旧IDFAV表 = clear.idfav(新IDFA[, 新IDFAV表])

参数及返回值

  • 新IDFA
    • 文本型RFC 4122 形式的 IDFA 文本
  • 新IDFAV表
    • 关联表可选,传入新的 IDFA/V 信息,若不传入则使用 新IDFA
  • 操作成败 布尔型
  • 旧IDFAV表
    • 关联表,返回 原先 的 IDFA/V 信息。操作失败则返回 nil

说明

重置系统 IDFA 和 IDFV 等标识信息,即 IDFA/V表

信息

传入的 新IDFA"READ" 时只进行读取,不进行清理和修改。

备注

你不必关心 IDFA/V表 的具体格式。只需要将原先调用的返回值 旧IDFAV表 传入此次调用的参数 新IDFAV表 即可恢复系统的 IDFA 和 IDFV 等标识信息到原先的状态。
IDFA/V表 可以被 plist 模块安全序列化。

示例 1

clear.idfav.read
ok, tab = clear.idfav("READ")
--
sys.alert(ok and tab.LSAdvertiserIdentifier or "读取失败")

示例 2

clear.idfav.reset
-- 读取原先的 IDFA/V 表并备份
ok, tab1 = clear.idfav("READ")
if ok then
plist.write("lsd.plist", tab1)
sys.alert(ok and "备份成功" or "备份失败")
end
--
-- 清理 IDFA/V 表
ok, tab2 = clear.idfav("00000000-0000-0000-0000-000000000000")
assert(tab1.LSAdvertiserIdentifier == tab2.LSAdvertiserIdentifier)
--
-- 读取备份的 IDFA/V 表并恢复
oldtab = plist.read("lsd.plist")
if oldtab then
ok, tab3 = clear.idfav(oldtab.LSAdvertiserIdentifier, oldtab)
sys.alert(ok and "恢复成功" or "恢复失败")
end