Grok 在 iOS 端要更新了。根据最近传出的消息,Grok iOS 将新增两项与本地媒体体验强相关的能力:库支持,以及媒体筛选功能。
先说我对这条信息的理解:如果这次更新落地,Grok 就不只是一个“聊天窗口”,而会更像一个能直接理解你手机相册里内容的本地智能助手。你可以把相册中的照片、视频作为上下文丢给模型,也可以先按媒体类型、拍摄时间等条件筛选,再决定用哪些素材交给 AI 处理。对普通用户来说,这件事可能只是“更方便传图了”;但对 iOS 开发者和做 AI 工具集成的人而言,尤其是研究照片库访问、媒体筛选、批量素材投喂这类需求的人来说,这次更新很值得关注。
需要说明的是,目前公开可查的材料还没有给出这两个功能的详细页面截图、具体版本号或 iOS 最低版本要求。这篇文章会把已有信息拆开讲清楚:哪些是真结论,哪些是合理推测,哪些地方必须等官方 App 更新后自己验证。后面还会给出一套 iOS 照片库读取与媒体筛选的工程化实现思路,方便你直接在类似项目里复用。
1. 核心更新速览:Grok iOS 库支持与媒体筛选
先把此次标题信息中能够明确的部分整理成一张速览表。更新对象、能力方向和价值路径相对清晰,但具体交互形态和系统版本要求仍需以后续版本为准。
| 项目 | 说明 |
|---|---|
| 更新主体 | Grok iOS 客户端 |
| 功能方向一 | 库支持,按字面和“媒体筛选”并列来看,大概率指向系统媒体库,照片和视频是主要目标 |
| 功能方向二 | 媒体筛选功能,可对相册里的图片、视频按条件进行过滤后再处理 |
| 落地状态 | 信息已传开,但还未看到官方完整的功能说明,属于“将迎”阶段 |
| 核心意义 | 让 Grok 在移动端具备读取本地媒体素材、筛选并送入 AI 上下文的能力 |
| 普通用户价值 | 找图、整理素材、按条件把照片或视频交给 AI 分析会变得更直接 |
| 开发者价值 | 为 AI 客户端或第三方工具提供了一套“相册选材 + 媒体筛选”的产品预期 |
| 硬件与系统门槛 | 未知,需等实际版本公布;推测以现代 iOS 设备为主 |
| 是否有接口 API | 官方没有给出本次媒体能力对应的独立 API,需等待进一步说明 |
相对清楚的另一个事实是,Grok 并不只是单一 App 形态。从公开版本信息看,Grok 网页版可以免费使用,同时也有面向开发者的 Grok CLI、grok build v1.0.9 等工具更新在快速迭代。搭配 Grok API 与编辑器插件的生态,基本可以看出官方在同时补齐两端能力:普通用户端和开发者工具链端。
iOS 端的“库支持 + 媒体筛选”如果完成,再配上已有的 Grok API,后续第三方 iOS 开发者很可能也能够在自己的应用里调用 Grok 的能力,把本地媒体作为输入,实现拍照识物、相册问答、截图分析等场景。
2. “库支持”到底指什么:媒体库支持的可能性最大
库支持这个词,在不同语境下含义差别很大。有人会理解成“Grok 在 iOS 开发包里加入了某个 SDK 支持”,也有人会理解成“Grok 现在能把一些数据放进收藏夹”。
从这次标题将“库支持”和“媒体筛选功能”并列来看,更稳妥的判断是:这里的库支持,指的是 iOS 系统媒体库支持。也就是说,Grok iOS 很可能能够读取用户设备中的照片和视频,并且不是简单地从系统相册弹出一个选择器让你选一张图,而是能把媒体库作为可管理、可筛选的内容集合。
如果顺着这个方向往下推理,Grok iOS 可能想解决的问题有三个:
第一,传统聊天 App 里“发图片给 AI”的效率太低。用户需要打开系统相册、手动找照片、再回到对话框发送,遇到照片多的时候非常不好用。库支持会让 Grok 直接面对整个相册资源。
第二,AI 需要的素材往往不是一张,而是一批。比如用户想给一场旅行的照片统一做分类,或者想把最近一个月拍摄的视频截图并生成摘要。这种需求需要访问多张媒体并对整体内容建立索引,不是单张上传能解决的。
第三,媒体筛选功能刚好补上“相册内容多了以后怎么选”的问题。如果 Grok 能够按类型、时间、地点、媒体子类型等条件做过滤,用户选材的阶段就会快很多。“直接把最近一周的所有照片给模型”和“先把一万张照片筛成今天的二十张再交给模型”,二者在速度和结果稳定度上完全不同。
当然,Grok iOS 是否会把整个相册完整接入,还是会走系统提供的 limited 授权模式,只让用户授权部分照片,目前没有细节可以断言。但从 iOS 隐私设计习惯来看,支持部分授权是合理的兜底方案。
3. 媒体筛选功能:最可能在哪些维度做筛选
媒体筛选功能如果做得足够好,可筛选的维度会远多于图片与视频二选一。从 iOS 系统相册能力看,常见的媒体筛选维度至少有五种。
第一是媒体类型筛选。照片、视频、人像、全景照片、慢动作视频、延时摄影视频,这些都是系统相册本身能区分开来的媒体子类型。用户如果要给一段短视频配图分析,就不可能希望模型把所有 Live Photo 也一起读进来。
第二是时间筛选。过去七天、这个月、指定日期范围,是相当高频的筛选方式。对移动端 AI 助手来说,时间维度是最容易理解也最稳定的一种上下文。
第三是相册与文件夹筛选。系统相册中除了“最近项目”,还有用户自建相册、“收藏”、“截图”等智能相册。能不能按某个特定相册作为范围,会直接影响 Grok iOS 的实际使用效率。比如“只处理截图文件夹里的内容”,就是一个非常典型的场景。
第四是媒体标题与描述筛选。iOS 照片支持添加标题,部分相册名称也包含语义信息。如果 Grok 能读取这些元数据,那筛选能力就会从“按文件属性筛”变成“按用户自己的语义标签筛”。
第五是地点与人物筛选。地点基于照片 EXIF 的 GPS 信息,人物基于系统的人脸识别结果。不过这一块涉及的用户隐私程度更高,是否允许第三方 AI App 直接访问,需要在权限提示里说清楚。
可能会有人觉得,媒体筛选不是一个很复杂的功能,无非就是“选图片还是选视频”。但在工程上,“让 AI 获取媒体素材”和“让用户在千万级照片中找到该给 AI 的素材”是完全不同的两件事。筛选做得好,既省了用户手工选图的时间,也减少了无意义素材进入大模型的 token 和计算开销。
如果 Grok iOS 的库支持包含了本地索引能力,那么更高级的媒体筛选还可以延伸到 AI 层面。比如让用户用一段描述来筛:“找出上个月拍的、包含文字信息的所有截图”。这一类筛选依赖系统 OCR、视觉识别能力或服务端模型推理,实现成本会成倍增加,是否包含在本次更新中需要看实际版本效果。
4. 这些能力落地后,最值得尝试的三个场景
先不要纠结具体怎么实现。站在用户视角,库支持与媒体筛选功能一旦落地,最先值得试的一定是这三类操作。
4.1 让 Grok 帮你整理相册
现在很多人手机里有几万张照片,自己翻一遍成本极高。如果 Grok 可以按时间与媒体类型读取相册,你就能直接对模型说:帮我看看最近三个月的截图里,有哪些是收据,有哪些是课程信息。系统先通过媒体筛选把截图范围缩到三个月内,再逐张由模型识别,输出的结果会明确很多。
这个场景的关键价值,不是让模型做一次复杂推理,而是通过媒体筛选把数据范围缩小。数据范围正确,结果就不会太偏。
4.2 把多张图片作为上下文,进行对比和问答
当你需要对比设计稿、检查多张产品截图、把不同时期的照片放在一起找变化时,库支持能力会明显改变交互方式。你不需要先打开相册多选图片、再传到 App 里等待模型接收,而是直接在 Grok 中指定一批照片,并基于这批照片开始提问。
多图输入如果做得好,Grok 可以从每张图中分别抽取信息,再统一回答。相册的整组筛选就解决了“一次选多少张”的问题。
4.3 从视频素材中寻找关键画面
严格说,这依赖模型是否具备对视频逐帧或抽帧理解的能力。如果媒体筛选只筛到“视频层”,不处理视频内容本身,用户还需要自己先截图,体验提升有限。
但如果库支持配合视频抽帧能力,用户可以说:从我上周拍的视频里找一段出现某个物体的画面。系统先从媒体库里筛出上周的视频,抽帧后交给视觉模型判断,最后输出对应视频片段。这会直接覆盖很多内容创作者的素材管理需求。
5. 对有开发需求的读者:这是明显的平台级机会
Grok iOS 增加库支持与媒体筛选功能,很多人只把这件事当成一条新闻看,但在做 iOS AI 应用的人眼里,这是一次值得参考的产品范式更新。
目前 iOS 端 AI 工具最常见的做法,是让用户通过 PHPicker 一张张选图,或者干脆让用户在系统相册截图后粘贴到输入框。这种交互能用,但离“AI 助理管理本地素材”还很远。Grok 如果真的把媒体库能力做进去了,会带动一批 AI App 改变交互设计。
对独立开发者来说,如果 Grok 后续开放对应能力给第三方 App,你可以更便捷地构建出类似 Anki 识图、票据整理助手、相册搜索工具这类产品。对仅做 iOS 原生开发的工程师来说,这套需求也意味着需要掌握照片库访问、媒体筛选、批量素材导出等基础能力。
至少以下几点能力,是之后做类似功能时绕不开的:
- 通过 Photos 框架读取系统相册。
- 理解 PHAsset、PHFetchResult、PHFetchOptions 之间的关系。
- 使用 PHAssetMediaType 枚举区分图片、视频、音频。
- 使用 NSPredicate 对媒体创建时间等属性做筛选。
- 处理 iOS 系统权限重置、limited 授权和相册内容变化。
- 把 PHAsset 导出为可直接上传的 JPEG、PNG、AVAsset 等格式。
接下来给出一个工程化实现的参考方案。
6. 相册读取与媒体筛选的 iOS 工程化实现参考
需要先声明:Grok iOS 官方并没有公开它内部的实现方式。下面的代码是通用的 iOS 开发思路,用于在自己 App 里实现类似相册读取和媒体筛选,并不是逆向 Grok 客户端代码,也不代表它一定这样写。
6.1 先确定授权策略:直接读取还是系统选择器
在 iOS 上接相册,有两套差别很大的方案。
方案 A 是直接请求相册权限,通过 PHPhotoLibrary 读取相册元数据。优点是可以做自定义筛选、时间范围预测和批量导出;缺点是会触发系统授权弹窗,用户看到的是“是否允许 App 访问你的照片”,隐私压力较大。
方案 B 是使用 PHPickerViewController,这是 iOS 14 以后苹果推荐的系统选择器。优点是系统会记住用户选择的照片并提示访问限制,App 只能在用户选中后获得对应资源,权限提示更友好。缺点是你没法在用户没选择前扫描整个相册,也不能自定义复杂的筛选界面。
如果只是做“选几张照片发给 AI”,优先用 PHPicker。
如果希望能实现类似“最近一个月所有视频都送入模型”的场景,则要在第一次请求时让用户明确授权对整个媒体库的有限访问。iOS 14 之后用户也可以选择“仅允许部分照片”,在这种状态下,App 只能看到被授权的若干素材,而不是整个相册。
6.2 在 Info.plist 中加入用途说明
无论选哪种方案,如果 App 进入系统相册,需要在 Info.plist 中填写权限文案。系统很严格,没有对应 key 时会直接崩溃或导致授权弹窗无法出现。
<key>NSPhotoLibraryUsageDescription</key> <string>需要访问相册,以便为你选择要发送给 AI 的照片和视频</string> <key>NSPhotoLibraryAddUsageDescription</key> <string>需要向相册保存 AI 生成的图片或处理结果</string>如果只是调用 PHPicker,其实不需要 NSPhotoLibraryUsageDescription。但为了兼容旧版本系统或使用相册写入能力,建议还是补齐上述文案。
6.3 Swift 实现相册读取与基础筛选
下面核心是用 Photos 框架读取媒体资源,并按媒体类型与时间条件筛选。
import Photos func filterAssets( mediaTypes: [PHAssetMediaType] = [.image, .video], startDate: Date? = nil, endDate: Date? = nil, limit: Int = 0 ) -> PHFetchResult<PHAsset> { var predicates: [NSPredicate] = [] if !mediaTypes.isEmpty { let rawValues = mediaTypes.map { $0.rawValue } predicates.append(NSPredicate(format: "mediaType IN %@", rawValues)) } if let startDate = startDate { predicates.append(NSPredicate(format: "creationDate >= %@", startDate as NSDate)) } if let endDate = endDate { predicates.append(NSPredicate(format: "creationDate <= %@", endDate as NSDate)) } let options = PHFetchOptions() options.sortDescriptors = [ NSSortDescriptor(key: "creationDate", ascending: false) ] if !predicates.isEmpty { options.predicate = NSCompoundPredicate( andPredicateWithSubpredicates: predicates ) } if limit > 0 { options.fetchLimit = limit } return PHAsset.fetchAssets(with: options) }这个函数能把“获取媒体类型 + 时间区间 + 排序方式”整合在一个请求里。实际调用的例子:
let now = Date() let thirtyDaysAgo = Calendar.current.date(byAdding: .day, value: -30, to: now) PHPhotoLibrary.requestAuthorization(for: .readWrite) { status in switch status { case .authorized, .limited: let result = filterAssets( mediaTypes: [.image], startDate: thirtyDaysAgo, endDate: now, limit: 50 ) print("筛选后得到的照片数量: \(result.count)") case .denied, .restricted: print("没有相册权限") case .notDetermined: break @unknown default: break } }如果用户选择“仅允许部分照片”,status 会返回 .limited。这种情况下,PHFetchResult 只能看到用户授权的素材,而不能像 .authorized 那样读取全部相册。产品设计里需要注意这一点,避免 UI 上显示“照片总数”和用户看到的不一致。
6.4 使用系统选择器作为轻量替代
如果你的场景只是让用户先选择几张照片再来提问,直接使用 PHPicker 会更符合苹果的设计规范。下面是只允许选择图片并限制最多选 5 张的写法。
import PhotosUI func showPhotoPicker( on viewController: UIViewController, selectionLimit: Int = 5 ) { var config = PHPickerConfiguration() config.filter = .images config.selectionLimit = selectionLimit let picker = PHPickerViewController(configuration: config) picker.delegate = viewController as? PHPickerViewControllerDelegate viewController.present(picker, animated: true) }PHPicker 的特点是,App 不需要提前申请整库权限。用户把照片选完,系统通过NSItemProvider向 App 提供所选资源,UI 上能保持对隐私的透明。
6.5 将筛选后的 PHAsset 导出给 AI 模型接口
得到选中的 PHAsset 后,还需要转换成可上传的数据。如果模型接口需要图片二进制,可以这样导出原始照片:
import Photos func requestImageData( for asset: PHAsset, completion: @escaping (Data?, String?) -> Void ) { let options = PHImageRequestOptions() options.isNetworkAccessAllowed = true options.deliveryMode = .highQualityFormat PHImageManager.default() .requestImageDataAndOrientation( for: asset, options: options ) { data, _, _, _ in completion(data, asset.uniformTypeIdentifier) } }如果只做缩略展示,可以用 PHImageManager 的 requestImage 配合 targetSize 获取较小图,避免大批量列表加载时内存迅速爆炸。
视频资源则更适合用 AVAssetExportSession 导出压缩后的 mp4,再上传到模型服务。具体导出码率、分辨率要与实际模型服务的能力对齐,不能盲目上传原片,否则长视频很容易超时或占满带宽。
7. 筛选功能之外的三个工程细节
很多时候功能能不能上线,不取决于筛选逻辑本身,而取决于周围细节。
7.1 相册内容会变化
用户在会话过程中可能删除照片、拍摄新照片、从 iCloud 同步照片。开发者不能把第一次拿到的 PHAsset 列表当成不可变数据。要做到:刷新时重新拉取 PHFetchResult,注册 PHPhotoLibraryChangeObserver 监听相册变化,处理资源失效后的跳转。
7.2 异步任务的批次大小
一次给 AI 模型塞几十张原图,在移动网络环境下可行性很低。比较稳妥的做法是做一个队列:设置并发数、压缩图片尺寸、逐张上传、记录失败项并支持重试。批处理时还要在前端显示进度,否则用户会以为 App 卡死。
7.3 与后端 API 的耗时预期
大模型视觉任务通常不是秒回。媒体筛选、批量入库之后,服务端还要逐张分析,整个请求链路比较长。客户端要把超时时间设置得足够大,并区分“任务正在处理”和“任务失败”。这里给出的建议是采用任务 ID + 异步轮询,而不是单个 HTTP 长连接等结果。
8. 隐私与合规使用边界
相册数据在 iOS 平台属于高敏感数据。不管是 Grok 官方做库支持 + 媒体筛选,还是开发者自己实现类似能力,都需要把隐私保护放在功能设计之前。
第一,权限申请文案要写清楚用途。不要只写“需要访问相册”,而应写明“用于选择你要发送给 AI 分析的图片”,让用户对数据流有明确的预期。
第二,优先使用 limited 授权。iOS 14 以后用户完全可以只开放部分照片访问权,App 应该兼容这种模式,而不是反复引导用户切换到“允许访问所有照片”。
第三,上传到模型前要有可见提示。如果媒体素材会离开设备发送到云端模型,需要做到让用户知道哪些照片会被上传。没有任何理由在用户不知情的情况下把整库照片推送给服务端。
第四,本地存储与服务端存储要区分。能不上传就不上传,能即时删除就不保留长周期数据。批量任务结束后应有明确的清理策略。
第五,针对人脸、声音等敏感信息,需要格外谨慎。如果用户授权了包含人物照片的相册,开发方必须在隐私政策里补充说明是否用于人脸识别、是否用于模型训练等。
这不仅是产品合规的要求,也是维持用户信任的底线。一旦相册权限被滥用,用户会直接选择在系统设置里关闭访问权限,后续所有功能都会失效。
9. 常见问题与可能遭遇的情况
考虑到 Grok iOS 的库支持和媒体筛选功能仍在推进过程中,实际体验时可能会遇到以下几种情况。下表可作为问题排查思路。
| 问题现象 | 可能原因 | 处理思路 |
|---|---|---|
| 更新最新版后没有看到入口 | 功能处于分批灰度发布 | 等待几天或检查 App 设置与地区的可用状态 |
| 询问照片相关问题时,Grok 没有读取相册 | 未授权相册权限 | 打开 iOS 设置,确认是否允许照片访问 |
| 只能选择少量照片,无法看到全部相册 | iOS limited 授权或系统选择器限制 | 重新进入选择器,按系统提示放开权限 |
| 通过媒体筛选后,结果与相册不一致 | 相册内容同步未完成,或权限受限 | 等待 iCloud 照片同步结束,再次刷新 |
| 无法把 HEIC 图片发送给服务端 | 模型接口不支持 HEIC 解码 | 统一转成 JPEG,控制导出质量 |
| 视频筛选后上传超时 | 视频体积大、原片码率高 | 使用 AVAssetExportSession 做压缩和抽帧 |
| 回调里 PHAsset 无法获取原图 | iCloud 资源未下载 | 允许网络访问,或先使用 requestImage 触发下载 |
| Grok 没有按媒体时间回答问题 | 媒体筛选范围未生效 | 尝试手动指定更精确的时间范围或相册,再发送 |
对 iOS 开发者来说,最需要盯住的是相册变化和权限状态变化。相册权限不是你启动时请求完一次就可以不管的。用户在设置里把权限从“全部”改成“部分”,或者删除某张照片的授权,App 都需要重新感知并即时更新 UI。否则你展示给用户的还是旧索引,AI 得到的素材与实际相册不一致,这会直接破坏整个产品体验。
10. 功能预期管理:别把版本更新当成万能相机
库支持与媒体筛选功能上线后,用户自然会期待“AI 能看懂我的相册里所有内容”,但这里面至少要区分两层能力。
第一层是媒体读取和筛选,它是比较成熟的系统级能力。只要经过用户授权,App 在本地拿到相册中的图片列表、照片类型、创建时间、拍摄地点这些元数据都不难。这一层实现重点在于权限体验、性能优化和批量导出,不太依赖模型水平。
第二层是媒体理解,也就是把相册里的照片真正“看懂”。这依赖多模态模型对图内文字、物体、人物关系、场景风格的理解能到多深。Grok 在这一层能表现出什么水平,取决于模型版本、提示词策略和图像输入质量。媒体筛选只能保证送入模型的是正确素材,不能保证模型对每一张素材都给出完美解读。
换句话说,正确看待这个功能的方式是:库支持负责把范围缩小,媒体筛选负责降低噪音,最终交给模型的价值由多模态推理能力决定。三者是上下游关系。单独比“识别准确率”意义不大,体验会发生在整条链路都顺畅的时候。
11. 总结与下一步
Grok iOS 将迎库支持与媒体筛选功能,对普通用户来说是更自然的相册交互入口,对开发者和生态建设者来说是 AI 客户端把本地媒体作为一等公民的信号。移动端 AI 对话的下一个明显变化,大概率就是 App 不再只依赖“对话框里输入文字 + 手动附上一张图”,而是可以把自己的相册、文件、媒体流交给模型去处理。
之前 Grok 那边已经能看到 CLI、构建工具和网页版等更新节奏,说明模型能力之外,他们正在补齐分发渠道和应用层面的体验。这次 iOS 新增库支持如果顺利上线,会让 Grok 在移动端的定位更接近“能直接阅读设备语境”的助手。
如果这个功能后续进一步开放给开发者,那最值得关注的接法是:在自己的 iOS App 中接入 Grok API,同时做好相册授权与媒体筛选模块。先小范围测试图片识别,再扩展到视频抽帧、批量整理、截图问答这些具体的任务,产品收益会更直接。
如果你想基于这套思路自己动手,建议先实现最小闭环:授权相册、按时间筛选最近 30 天的照片、批量导出压缩图、调用视觉模型返回摘要。跑通以后再逐步加上视频、相册分类、文本搜索等扩展能力。第一批测试不要追求大而全,把链路验证好,后续加功能的速度会快很多。