Skip to content

Android: 配布中の release APK (2026-09-11) が #129 以前の照合ルールで、防府工場 (DAH4…) の納品書 QR を全て拒否する #132

Description

@rimtty

現象

現場から「山口のカゴとポケットが無効なQRコードです」との報告(2026-09-14、Android 端末のスクリーンショット付き。画面には「無効なQRコードです。納品書兼現品票のQRコードを読み取ってください。」と、直前に Bluetooth スキャナが切断されカメラへ切り替わった旨が表示)。

原因

配布中の Android release APK(S3 codematch/CodeMatch.apk、Last-Modified 2026-09-11 13:56 UTC、14,575,565 bytes = ローカル android/app/build/outputs/apk/release/app-release.apk 2026-09-11 02:05 JST)の DEX には #129 以前の正規表現しか入っていない:

  • カード番号 [A-Z]{4}[0-9]{6}(新: [A-Z0-9]{4}[0-9]{6}
  • 品目番号欄 [A-Z0-9]{10}(新: [A-Z0-9]{9}[A-Z0-9 ]
  • 澤井の現品票タグ 4-2-4 のみ(新: 4-2-3 も可)

reflog では 02:05 の APK ビルドは codex/inspection-report-mail を master(#129 を含む)へ rebase した 02:08 より前で、ブランチの土台は b622ec3(= da83648^、#129 直前)だった。検品レポート (#131) のクラスは入っているが照合ルールだけ古い。

影響

  • 山口県 防府工場(工場コード H、カード番号 DAH4…)の納品書 QR は全て invalid_format で拒否される。今回の写真 26 枚を Vision でデコードし、b622ec3 の ScanModels.swift で再生すると DAH4 の 20 枚全てが destination nil。
  • 八千代工場(工場コード Y、カード番号 DAYA…)は 10 桁品番なら通るが、9 桁品番(DFR5-45-8SJ 等)は拒否される。
  • master (9373de2) のルールでは 26 枚全て澤井として受理され、正しい組み合わせは全て match(ios/scripts/verify_label_pairs.sh で確認)。iOS TestFlight (build 9/10) は 澤井製作所: カード番号 DAH4… 型と9桁品番のラベルが QR/Code 128 段階で拒否される #129 を含むため影響なし。

対応

  1. master から bash scripts/setup-inateck-sdk.sh && ./gradlew :app:assembleRelease で再ビルドし、bash scripts/verify-release-hardening.sh を通す。
  2. DEX に [A-Z0-9]{4}[0-9]{6} が含まれることを確認してから publish-install-page.sh / distribute-firebase.sh で再配布する(versionCode を上げる)。
  3. 再発防止: release ビルド前に git merge-base --is-ancestor origin/master HEAD を確認するか、配布スクリプト側で DEX の受理ルール文字列を検査する。
  4. 端末の設定 > スキャンログを共有してもらえば rejected / invalid_format の生ペイロードで裏付けが取れる。

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions