bmob-database-swiftlisted
Install: claude install-skill bmob/agent-skills
# Bmob Database — Pure Swift SDK
纯 Swift SDK `BmobSwiftSDK` 面向 iOS 15+ / macOS 12+,使用 Swift Package Manager 或 CocoaPods 安装,API 以 `async/await`、`Bmob.initialize(appKey:)`、`BmobObject`、`BmobQuery` 为核心。
如果项目使用旧版 Objective-C `BmobSDK`、`BmobSDK.xcframework`、Bridging Header 或 `saveInBackgroundWithResultBlock`,改读 [`bmob-database-ios`](../bmob-database-ios/SKILL.md)。
## 核心原则
1. **先确认 SDK 形态**:纯 Swift SDK 的包名是 `BmobSwiftSDK`,导入模块通常是 `import BmobSDK`;旧 iOS SDK 是 Objective-C framework + Bridging Header。
2. **最低环境**:Xcode 15.0+、Swift 5.9+、iOS 15.0+、macOS 12.0+。
3. **初始化是异步的**:启动早期 `try await Bmob.initialize(appKey:)`;业务请求前必要时检查 `await Bmob.isReady`。
4. **数据表默认用 `BmobObject(className:)`**:字段通过下标读写,更新 / 删除必须带 `objectId`。
5. **查询用链式 `BmobQuery`**:`whereKey`���`order`、`limit`、`skip`、`includeKey` 都返回 query,最后 `try await find()` / `get(objectId:)`。
6. **上线域名必须在初始化前设置**:私有云或备案域名用 `Bmob.resetDomain(...)`,顺序在 `initialize` 之前。
## 安全清单
- [ ] 示例只放 `"YOUR_APP_KEY"` / `"your-application-id"`,不要 commit 真实 AppKey。
- [ ] 客户端不要携带 Master Key;需要管理能力时改走服务端、REST 管理脚本或 MCP。
- [ ] 写入业务表时设置 ACL(如 `BmobACL`),避免默认权限导致任意用户读写。
- [ ] 用户密码只通过 `BmobUser` 注册、登录、改密 API 处理,不要当普通字段更新。
- [ ] 文件上传前确认来源、大小、MIME 类型;不要把本地绝对路径写进业务表。
- [ ] release 前确认 `resetDomain` 使用备案/私有云域名,且调用顺序早于初始化。
## 快速开始
### 安装
Swift Package Manager:
```swift
dependencies: [
.package(url: "https://github.com/bmob/BmobSwiftSDK", from: "1.0.2")
],
targets: [
.target(name: "YourApp", dependencies: [
.product(name: "BmobSDK", package