STORES Product Blog

こだわりを持ったお商売を支える「STORES」のテクノロジー部門のメンバーによるブログです。

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年以上前から念入りに準備してきたつもりでしたが、思わず落とし穴があった。
というお話でした。

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

それでは!