以下の内容はhttps://product.st.inc/entry/2025/06/16/130000より取得しました。


STORES 決済 アプリを譲渡したら最後に落とし穴があった

もう夏なんですかねー。
夏大好きです。

こんにちは!

STORES 決済 モバイルチームの Engineering Manager、
iOS アプリ・SDKの開発を担当しております。 いわいです。

なぜアプリ譲渡したのか

STORES 株式会社は、 複数の事業会社が集まった会社です。
STORES 決済 iOS アプリは 元々は前身である コイニー株式会社が 運営していたので、 App Storeでも、 Coiney, inc. の Apple Developer Account からリリースされていましたが
2025年4月、ようやく アプリ譲渡をおこない STORES, inc. からリリースされている状態になりました。

譲渡前 譲渡後
旧 Coiney アカウント
STORES, inc. アカウントへ譲渡

アプリ譲渡の準備

アプリ譲渡のやり方自体は、Appleの公式ドキュメント に書かれています。
プッシュ通知など、譲渡の際に注意する点はいろいろとあるのですが、 アプリの配信アカウントが変わることで 譲渡後のアプリが、譲渡前にKeychainへ保存していたデータに アクセスできなくなるため

  • Keychainに保存してあるデータをUserDefaultsに保存し直す処理を 1度だけ実行
  • Keychainに保存する際に UserDefaultsにも保存する
  • Keychainからデータを読む際に、データが無い時はUserDefaultsからデータを読む

などの対応を、譲渡の1年以上前から STORES 決済 アプリに仕込んでいました。

また、譲渡後のトラブルを最小限にするため、上記の対応を入れたアプリを できるだけ多くの加盟店さんに利用してもらうように 譲渡開始の半年以上前からサポートチームの皆さんに協力してもらい、まだアップデートをしていない加盟店さんにメールや電話で アップデートの依頼をしました。

いざアプリ譲渡!

さぁ、準備万端で いざ譲渡!!

というタイミングで問題が見つかりました!!!

STORES 決済 アプリは 特別に許可が必要な APIを使っていた のです!!

特別に許可が必要な API?

STORES 決済 では、 カードリーダーを使って クレジットカードや電子マネーの決済をするのですが、
STORES 決済 アプリが起動している iPhoneがカードリーダーに近づくと、そのiPhone の Wallet が自動で起動してしまうことを防ぐための対応が入っています。

こういう状態からWalletが勝手に起動しないようにする実装が入ってました。

この実装自体は、PKPassLibraryの requestAutomaticPassPresentationSuppression(responseHandler:) を使うだけのシンプルなものです

developer.apple.com

◉実装例

import PassKit
var token: PKSuppressionRequestToken?

func disableAutomaticPassPresentation() {
    guard PKPassLibrary.isPassLibraryAvailable() else {
        return
    }
    
    token = PKPassLibrary
        .requestAutomaticPassPresentationSuppression { result in
        print("\(result)")
    }
}

ですが、なんと! こちらの APIを利用するには Appleから許可を得ないといけなかったのです!

↓ このAPI の Discussion 抜粋 ↓

譲渡前の STORES 決済 アプリは、もちろん Appleから許可をもらっており この APIを利用できる状態だったのですが、譲渡後には、改めて 申請を出して 許可をもらう必要があったことが判明しました! うへー。

うへー、と思ったが、落ち着いて対応する

幸いにも、譲渡したアプリ自体は問題なく動作しており、次のバージョンアップまでに 許可をもらい、Provisioning Profile等を更新すれば良いことがわかりました。

そこからは、Appleの指定するメールアドレスにメールを送り、数回のメールのやり取りののち、10日間ぐらいで無事に許可が下り、上記APIが動作する状態になりました。
めでたしめでたし。

※この辺の細かいAppleとのやりとり等は、公開してはいけないらしいので非公開なのです...

最後に

1年以上前から念入りに準備してきたつもりでしたが、思わず落とし穴があった。
というお話でした。

ただ、落とし穴に落ちても 慌てず騒がず 冷静に対応することで 無事に穴から出られるので、このブログをご覧の皆様も 穴に落ちた際は 落ち着いて対応しましょう!

それでは!




以上の内容はhttps://product.st.inc/entry/2025/06/16/130000より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14