SuperAPI AI 工具集

financekit

数据与分析

查看项目

更新于 10-16 06:21

技能介绍

FinanceKit 用于在 iOS 应用中访问 Apple Wallet 的财务数据,包括 Apple Card、Apple Cash 和 Apple Card Savings 的账户、余额与交易。数据在设备端离线可用,访问由用户授权控制。目标平台为 Swift 6.3 / iOS 26+,查询 API 从 iOS 17.4 起可用,后台投递需 iOS 26。

使用前需向 Apple 申请托管权限 com.apple.developer.financekit,要求组织级 Apple Developer 账号(个人账号不符合条件)及 Account Holder 角色,并在 Info.plist 添加 NSFinancialDataUsageDescription。调用任何 API 前须用 FinanceStore.isDataAvailable(.financialData) 检查可用性,不可用时框架会终止应用。

授权通过 store.requestAuthorization() 发起,系统展示账户选择器,用户选择共享的账户及最早交易日期;可用 authorizationStatus() 查询当前状态,用户可在设置中更改。账户分为 .asset 与 .liability 两类,负债账户含信用额度等字段。余额有 .available、.booked、.availableAndBooked 三种情况,金额始终为正数,需结合 creditDebitIndicator 判断收支方向。交易查询支持谓词、排序、分页,并提供按状态、类型、商户类别码过滤的工厂方法。

长时查询基于 AsyncSequence,返回插入、更新、删除的变更及可 Codable 持久化的 HistoryToken,用于增量同步;令牌失效会抛出 FinanceError.historyTokenInvalid。FinanceKitUI 提供 TransactionPicker 用于临时选择性访问,以及 AddOrderToWalletButton 用于 Wallet 订单。iOS 26+ 支持后台投递扩展,需 App Groups 共享数据,频率可选 .hourly、.daily、.weekly。

限制包括:需 Apple 审核的托管权限;数据可用不代表设备上存在数据;访问可能因 Wallet 不可用或 MDM 限制而临时受限,抛出 FinanceError.dataRestricted;金额不可当作有符号值;负债账户的 .credit 含义与资产账户不同。资料未提供收费、价格或平台支持范围之外的信息。