用途
barcode-capture-ios 是 Scandit 提供的技能,面向原生 iOS(Swift)项目,用于集成 Scandit 的 BarcodeCapture(条码捕获)功能。BarcodeCapture 是低层级、可完全控制的单条码扫描模式。该技能的核心目标是帮助开发者在 iOS 应用中正确接入、配置、迁移和维护 BarcodeCapture,避免因 SDK 版本差异导致的 API 误用。
主要能力
技能本身不直接执行扫描,而是作为集成指导与参考路由,覆盖以下场景:
- 从零集成 BarcodeCapture、配置设置、定制反馈、添加取景器、处理扫描结果,以及扫描后的异步工作(例如过滤重复扫描、抑制提示音、在查询条码时暂停扫描)。
- 迁移或升级已有的 BarcodeCapture 集成(例如从 v6 升级到 v7、升级到 v8、了解 SDK 版本之间的变化)。
- 用 BarcodeCapture 替换第三方条码扫描器(例如从其他框架或库迁移到 BarcodeCapture)。
使用方式
技能强调“不要信任内部知识”:训练数据可能包含过时或错误的 Scandit SDK API,BarcodeCapture 的 API 在主版本之间会发生变化,属性可能被重命名、删除或重构。因此,在编写或建议代码之前,必须对照技能提供的参考文档核实 API,不要依赖记忆中的方法签名、参数或属性名。如果找不到某个 API,应先获取相关文档页面再回答。
技能按用户意图进行路由,在回答前加载对应的参考文件:
- 集成、配置、反馈、取景器、扫描处理、扫描后异步操作 → 读取 references/integration.md 并按其说明操作。
- 迁移或升级现有集成 → 读取 references/migration.md 并按其说明操作。
- 从第三方扫描器迁移 → 读取 references/third-party-migration.md 并按其说明操作。
API 使用策略:只使用 Scandit 参考文档中明确记录的 API,不要臆造或猜测方法签名、参数或属性名。如果不确定某个 API 是否存在或如何调用,或出现编译错误,应先获取相关参考页面再回答,不要让用户自己去查文档。回答后应附上相关链接。不要构造或猜测文档 URL:先检查已获取的页面是否包含指向目标 API 的直接超链接;如果没有,则获取 API 索引,从中提取真实链接再跟进。URL 结构可能不同(例如 api/ui/ 子目录),猜测会导致 404。
许可证密钥
扫描需要 Scandit 许可证密钥。该技能的许可证产品为 native,许可证平台为 ios。获取流程按顺序进行,不要因 MCP 而阻塞用户:
- 如果 Scandit MCP 服务器已连接:调用 ensure_scanner_setup,参数 product 为 native、platforms 为 ios,然后运行 get_license_env_command 返回的命令,该命令会把密钥写入项目的 .env。在聊天中最多显示掩码预览,绝不打印完整密钥。
- 如果未连接:先提议连接一次,然后继续第 1 步。
- Claude Code:claude mcp add --transport http scandit https://ssl.scandit.com/mcp
- Cursor:将 {"mcpServers": {"scandit": {"url": "https://ssl.scandit.com/mcp"}}} 添加到 ~/.cursor/mcp.json
- VS Code:将 {"servers": {"scandit": {"type": "http", "url": "https://ssl.scandit.com/mcp"}}} 添加到 MCP 用户配置
- 认证基于浏览器,因此不支持无头或 CI 环境。该服务器仅提供试用密钥,不会创建、撤销或修改生产许可证。
- 如果用户拒绝或没有 MCP 客户端:用户在 https://ssl.scandit.com 自行生成密钥(尚无账号:https://ssl.scandit.com/dashboard/sign-up?p=test)并粘贴。
随后将密钥放入代码中替换占位符;仅放在 .env 中并不会自动到达应用。可通过 .xcconfig 文件将值映射到 Info.plist,再用 Bundle.main.object(forInfoDictionaryKey:) 读取。任何平台上最简单的做法:读取 .env 并直接把密钥填入许可证密钥调用中,聊天中仍只显示掩码预览。
适用场景
适用于需要在原生 iOS(Swift)应用中实现单条码扫描、并希望对扫描行为进行低层级完全控制的开发者;也适用于需要升级 Scandit SDK 主版本或从第三方扫描器迁移到 BarcodeCapture 的项目。
限制
- 技能明确要求不得依赖模型记忆中的 API,必须核实参考文档。
- 扫描功能依赖 Scandit 许可证密钥;MCP 服务器仅提供试用密钥,不管理生产许可证。
- MCP 认证基于浏览器,不支持无头或 CI 环境。
- 关于具体收费、价格、平台支持范围、扫描效果等事实,资料中暂未提供。
参考资源
- UIKit 集成:Get Started (UIKit) · Sample
- SwiftUI 集成:Get Started (SwiftUI)
- 主版本迁移:6 → 7 · 7 → 8
- 完整 API 参考:BarcodeCapture API