NFC SNS CARD MAKER バグ修正記録(2026/04/22) — edit_token復元とSNS無料開放
“「ブラウザで編集できない」を3段階のフォールバックで完全解決”
2026年4月22日、NFC SNS CARD MAKERの本番コードに対して今日だけで4件のコミットを行いました。いずれも実機テスト中に発覚した問題です。修正内容をそのまま記録します。

問題1: SNSグリッド編集・再書き込みがPRO限定になっていた
**コミット:** `fix: remove Pro gate from SNS write and SNS grid editor`
SNSグリッドの並び替え・削除・追加・リセットと、SimpleWriteViewの再書き込みボタンがPROユーザーのみに制限されていました。これらは無料機能として設計されていたので、Pro認証ガードと鍵アイコン・ペイウォールシートをすべて削除しました。
SNSGridEditorViewから `hasProAccess` チェック・`ProFeatureGate` ラッパー・ペイウォールシートの計18行を削除し、SimpleWriteViewの再書き込みボタンのguard文も除去。
問題2: Keychainが空のときedit_tokenが取れず「ブラウザで編集」が開かない
**コミット:** `fix: editToken empty guard — fall back to Keychain so edit-in-browser always opens`
デジタル名刺の「ブラウザで編集」ボタンをタップしても何も起きないケースがありました。原因はedit_tokenが空のままURLに付与されないこと。
CardModeRootViewとCardManagerのedit_token取得フローを修正し、メモリ上の値が空のときはKeychainから読み直すフォールバックを追加しました。
問題3: 手動でDBにシードしたカードはKeychainにもedit_tokenがない
**コミット:** `fix: recover edit_token from API when Keychain is empty`
アプリ外(管理ツールやSupabase直接操作)でカードを作成した場合、Keychainにedit_tokenが存在しません。問題2のフォールバックだけでは解決できないケースです。
CardManager内のrefreshCardとrestoreFromServer両メソッドに、Keychain→APIの3段階フォールバックを追加:
① メモリ上のeditToken → ② Keychainから読む → ③ Supabase APIにfetchEditTokenリクエスト
問題4: VercelのDeployment ProtectionがAPI経由のtoken取得をブロック
**コミット:** `fix: use Supabase Edge Function card-claim to bypass Vercel protection`
問題3の修正でAPIから取得しようとしたところ、`https://api.nfc.bz/cards/token` がVercelのDeployment Protection(認証壁)で401を返していることが判明。
エンドポイントをVercel経由のAPIルートからSupabase Edge Function `card-claim` に切り替えました。
GETリクエストを廃止し、`POST https://krbkqkqpxxjdboqxfhyj.supabase.co/functions/v1/card-claim` にusernameをJSONボディで送る形式に変更。SupabaseはVercelの保護対象外なので確実に疎通します。
まとめ: edit_tokenの3段階復元フロー
edit_token復元の優先順位
| 優先度 | 取得元 | 対象ケース |
|---|---|---|
| 1st | メモリ(起動時から保持) | 通常のアプリ内作成カード |
| 2nd | Keychain | 再起動後・メモリクリア後 |
| 3rd | Supabase Edge Function | 手動シード・旧データ移行カード |
この修正により、どのルートで作成されたカードでも「ブラウザで編集」が確実に動作するようになりました。
Download on the
App Store
NFC SNS CARD MAKER — 無料ダウンロード・7日間PROトライアル付き
関連プロダクト
NFC SNS CARD MAKERの詳細を見る