label-capture-ios について
Scandit Label Capture を iOS アプリに組み込む開発者向けのスキルです。API のバージョン差、ラベル設定、Validation Flow を扱い、参照資料で API を確認するよう案内します。
主な機能
- 01Label Capture の統合ガイド
- 02API 移行に関する注意点
- 03ラベルフィールドと正規表現の設定
- 04Validation Flow の設定案内
- 05ライセンスキー設定の手順
活用シーン
- 01iOS アプリへのラベルスキャン追加
- 02Label Capture SDK のアップグレード
- 03検証フローと手動入力のカスタマイズ
MCP 対応
Scandit MCP サーバーを使い、ネイティブ iOS スキャンの設定とトライアルライセンスキー取得を案内します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ scandit/ skills --skill label-capture-iosインストール後、Claude Code で/label-capture-iosを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/integration.mdmigration.mdvalidation-flow.md詳細
Label Capture iOS スキル
重要:内部知識を信用しないでください
トレーニングデータには、古い、または誤った Scandit Label Capture API が含まれている可能性があります。Label Capture は最近の SDK リリースで進化しています。
- v7 から v8 へのメジャーアップデートで、
LabelFieldDefinitionの正規表現ビルダーメソッドの名称が変更されました(setPattern→valueRegex、setPatterns→valueRegexes、setDataTypePattern→anchorRegex、setDataTypePatterns→anchorRegexes)。 - v8.1 では、Swift の result-builder DSL(
LabelCaptureSettings { LabelDefinition("...") { ... } })が導入され、Symbology列挙型の自動ブリッジによりNSNumberによるボックス化が不要になりました。v8.0 の統合では、配列イニシャライザーLabelCaptureSettings(labelDefinitions: [...])を使用します。オプションの VF デリゲートメソッドdidSubmitManualInputFor:replacingValue:withValue:も v8.1 で追加されました。 - v8.2 では、Validation Flow UI が再設計されました。
LabelCaptureValidationFlowSettings.setPlaceholderText(_:forLabelDefinition:)と、オプションのデリゲートメソッドdidUpdateResult:asyncId:fields:frameData:が追加されました。 - iOS のシンボロジー列挙値はキャメルケースです:
.ean13UPCA、.gs1DatabarExpanded、.code128(Android のアンダースコア形式EAN13_UPCAではありません)。 - iOS のラベル設定では、Swift の result-builder DSL(v8.1 以降)または配列イニシャライザー(v8.0)を使用します。Android で使われる fluent 形式の
.addLabel().buildFluent(...)ではありません。
コードを作成または提案する前に、このスキルで提供されているリファレンスで API を必ず確認してください。 記憶しているメソッドシグネチャ、パラメーター、ビュー修飾子に頼らないでください。提供されたリファレンスに API が見つからない場合は、回答する前に該当するドキュメントページを取得してください。
運用上の制約
これらは Label Capture のランタイムおよびライセンスに関する事実であり、API のバージョン管理とは関係ありません。コードを書く前にユーザーに約束できる内容に影響します。
Label Capture が読み取るのは印刷されたテキストのみです。 手書きのテキストには対応していません。オンデバイス OCR エンジンと ARE は、どちらも印字された文字(ラテン文字、数字、一般的な句読点)を対象としています。ユーザーから手書きの値のスキャンについて尋ねられた場合は、その旨を明確に伝え、手動入力の代替手段(例:Validation Flow の手動入力フィールド)を提案してください。
**ARE(Adaptive Recognition Engine)**は Scandit のクラウドベース OCR フォールバック機能で、LabelDefinition の .adaptiveRecognition(.auto) を使って有効にします。これはラベル定義のプロパティであり、オーバーレイに依存しません(Basic、Advanced、Validation Flow のいずれのオーバーレイでも動作します。Validation Flow 専用だと伝えないでください)。現在はベータ版で、Adaptive Recognition Engine の利用権が必要です。この利用権は Scandit がサブスクリプションに対してサーバー側で有効化するため、ユーザー自身が切り替えるクライアント側のフラグはありません。利用権は発行されるライセンスキーに含まれます。評価用のトライアルキーを発行できます。本番用キーについては [email protected] にお問い合わせください。デフォルトでは有効にしないでください。(独自のオーバーレイが必要な Beta Receipt Scanning とは別の機能です。)
インテントルーティング
ユーザーのリクエストに基づいて、回答する前に適切なリファレンスファイルを読み込んでください。
-
Scandit の他の製品やスキャンモードに関する質問(SparkScan、Barcode Capture、MatrixScan、ID Capture、または Label Capture に特化していない一般的な SDK セットアップの質問など)→
data-capture-sdkスキルに引き継いでください。他のキャプチャモードに関する質問に、記憶だけを頼りに回答しないでください。専用スキルには、正確で最新のリファレンスがあります。 -
Label Capture をゼロから統合する場合(「iOS アプリに Label Capture を追加する」「バーコードと有効期限が記載された値札をスキャンする」「価格ラベル/棚札をスキャンする」「VIN を読み取る」「7 セグメントディスプレイ/デジタルスケールを読み取る」「Smart Label Capture の使い方」「ラベルスキャンアプリを作りたい」「どのオーバーレイを使うべきか」「ARE とは」「レシート全体をスキャンする」「OCR の精度を向上させる方法」「Basic Overlay でスキャン画像をキャプチャする方法」「完全にカスタムな AR オーバーレイ/フローティングピンを作る/カメラ映像上に独自のビューを描画する」「Advanced Overlay を使う」「トラッキング中のラベルにカスタムビューをアンカー/配置/オフセットする」「キャプチャ時にビープ音が繰り返されないようにする/ラベルごとに一度だけフィードバックを出す」「バーコードとラベルを一緒にスキャンする/Barcode Capture と Label Capture を併用する/2 つ目のモードを追加するとスキャンが止まる理由」「どの SPM 製品を使うべきか/IMEI またはシリアル番号のラベルで起動時にクラッシュする理由」など)→ references/integration.md を読み、その指示に従ってください。カスタムフィールドを作成する前に、価格キャプチャ、VIN、7 セグメント向けの、ラベル全体を対象とする事前構築済みファクトリー定義と、ベータ版のレシートスキャン手順が記載されているため、必ず参照してください。既存のプロジェクトがない場合、ガイドに従って、まず事前構築済みのサンプルを案内してください。
-
Validation Flow を有効化またはカスタマイズする場合(「Validation Flow を有効にする方法」「Validation Flow オーバーレイを追加する」「Validation Flow のプレースホルダーテキスト/ボタンラベルをカスタマイズする」「Validation Flow の結果を処理する方法」「Validation Flow を設定できない理由」「VF で変更できる内容」「Validation Flow 中にフレーム画像をキャプチャする方法」「Validation Flow をカードやシートに埋め込めるか」など)→ references/validation-flow.md を読み、その指示に従ってください。ユーザーが Label Capture の基本的な統合をまだ行っていない場合は、先に references/integration.md も読んでください。Validation Flow は Basic Overlay の置き換えとして使用するものであり、ゼロから構成するフローではありません。
-
既存の Label Capture 統合を移行またはアップグレードする場合(「Label Capture を最新の SDK にアップグレードする」「v7 から v8 に移行する」「Label Capture の SDK バージョン間での変更点」など)→ references/migration.md を読み、その指示に従ってください。
API の使用ポリシー
以下の Scandit リファレンスに明示的に記載されている API のみを使用してください。メソッドのシグネチャ、パラメーター、ビュー修飾子を捏造したり、推測したりしないでください。API が存在するか、または呼び出し方が不明な場合や、コンパイルエラーが発生した場合は、回答する前に該当するリファレンスページを取得してください。ユーザーに自分でドキュメントを確認するよう案内しないでください。回答の後には、ユーザーが詳しく確認できるよう、必ず関連リンクを含めてください。
ドキュメントの URL を決して組み立てたり、推測したりしないでください。 特定のクラスまたはプロパティの API ページが必要な場合は、次の手順に従ってください。
- まず、すでに取得したページ(Advanced Configurations ページなど)に、そのページへの直接リンクが含まれているか確認してください。トピックページには、関連する API シンボルへの直接リンクがあります。取得時のプロンプトでは、必ずリンクも含めるよう指定してください。
- 直接リンクが見つからない場合は、API インデックスを取得し(以下の表の Full API reference を参照)、そこから実際のリンクを抽出してアクセスしてください。
URL の構造は異なる場合があります(例:api/ui/ サブディレクトリ)。推測すると 404 エラーになります。
ライセンスキー
スキャンには Scandit ライセンスキーが必要です。このスキルでは、ライセンス製品は native、ライセンスプラットフォームは ios です。
以下の手順を順番に進めてください。MCP が原因でユーザーを待たせてはいけません。
-
Scandit MCP サーバーが接続されている場合 — 製品に
native、プラットフォームにios、app_identifier(アプリのバンドル ID またはアプリケーション ID。ウェブの場合は本番環境のドメインで、localhostは使用しません)、env_varにSCANDIT_LICENSE_KEYを指定して、ensure_scanner_setupを呼び出します。返されたコマンドは実行しないでください。その後、その結果またはlist_license_keysからキーの ID を取得し、get_license_keyを呼び出します。list_license_keysでキーがトライアルではないことが示されている場合は、取得する前にユーザーに確認してください。チャットではマスクしたプレビューのみを表示し、キー全体を表示してはいけません。 -
接続されていない場合 — ユーザーに一度だけ、MCP クライアントでリモート Scandit MCP サーバー
https://ssl.scandit.com/mcpに接続できることを伝え、その後、手順 1 に進みます。MCP クライアントの設定を自分で編集してはいけません。認証はブラウザー経由のため、ヘッドレス環境や CI ではサポートされていません。サーバーが発行するのはトライアルキーのみです。本番ライセンスの作成、取り消し、変更は行いません。
-
ユーザーが希望しない場合、または MCP クライアントがない場合 — https://ssl.scandit.com でキーを自分で生成して、貼り付けてもらいます(アカウントをまだお持ちでない場合:https://ssl.scandit.com/dashboard/sign-up?p=test)。
その後、キーをコードに設定します:プレースホルダーの代わりに、ライセンスキーを指定する呼び出しへキーを記述します。使用するのは get_license_key が返したキー、またはユーザーが貼り付けたキーや教えてくれたキーです。チャットではマスクしたプレビューのみを表示してください。プロジェクト、そのファイル、または環境内でキーを検索してはいけません。
参考資料
質問に応じて、適切なリソースをユーザーに案内してください。
| トピック | リソース |
|---|---|
| 基本的な統合 | はじめに · サンプル(LabelCaptureSimpleSample) |
| ラベル定義(フィールド、正規表現、プリセット) | ラベル定義 |
| 高度なトピック(Validation Flow のカスタマイズ、適応型認識、カスタムオーバーレイ) | 高度な設定 |
| API リファレンス全般 | Label Capture API |