App Store Connect契約後に実施したことのまとめ
今まで、1つのアプリをXcodeとしてベース環境を作っていました。その後、アプリの骨格が出来上がったため、本格的にアプリをリリースするために、App Store Connectにアプリを登録し、Apple Pay、サブスクリプションをホンモノ環境で使えるように設定を変更する必要がありました。
その環境変化の内容をまとめ、また、その際にはまった点をまとめることで少しでもお役に立てればと思います。
(作業1)App Store Connectの契約を行い、アプリ登録や証明書を取得しました
リリースに向け、App Store ConnectにDeveloper登録を行いました。iPhoneアプリをリリースするためには、以下の方法でリリースに向けて作業が必要であるため、ひとつずつ作業を進めています。
(問題発生!)Embedded binary’s bundle identifier is not prefixed with the parent app’s bundle identifier.のエラーでつまづく。
複数のアプリを登録できるよう、今までXcodeに登録していたアプリケーションのBundle Identifierを変更したところ、”Embedded binary’s bundle identifier is not prefixed with the parent app’s bundle identifier.”というエラーが発生しました。これは、今まで開発してきたベース環境の名称を、リリースするための名称に変更しようとしたところ発生したエラーになります。
ではどのようにすれば問題を解決できるのでしょうか?
可能性としては、App登録時に作った証明書かApple Payなどで実施した際に登録した証明書が、Bundle Identifierを変更したことにより、動作しなくなった可能性が高いと考えました。
そこで、プロビジョニングプロファイル作りなおさないとダメではないか。再度取得することにしました。
【修正】Tests iOS のBundle Identifierの値を入れ直すことで、修正されました。
Bundle Identifier変更時の署名書ではなく、XcodeのTarget付近の設定を見直してみましょう。
(手順2)Apple Pay、レシート、サブスクリプションの評価・テストを実施しました。
次に、今まで、Xcodeのデスクトップ環境だけで実施できていた、Apple pay、レシート、サブスクリプションの機能をApp Store Connectに変更する作業を開始しました。
(問題発生!)Xcodeにあらかじめ登録していた.storekitのファイルをApp Store Connectで設定した.storekitに置き換えられず、.storekit:1:1 unexpected character ‘{’のエラーが発生。
App Store Connectの契約前は、XcodeだけでApple Pay、サブスクリプションの機能を実装してきました。そのため、Xcodeだけで閉じて評価して動いていたのですが、実際のリリース環境に必要な設定にするとエラーが発生するようになってしまいました。
App Store Connectで、サブスクリプションを設定すると、Xcodeでも表示されるようになりました。しかし、今までのXcodeにて使っていたサブスクリプションを、App Store Connectで設定したものに置き換えられず、App設定のInfo-Configrationで該当のファイルを設定できるメニューがありましたので、今までのXcodeのファイルではなく、App Store Connectで登録した名称のファイルに置き換えたところ、.storekit:1:1 unexpected character ‘{’のエラーが発生してしまいました。
かぎ括弧やコンマなどの末尾の表現がいけないのでしょうか?特にファイルの中身を修正できるのではないため、XcodeでのSwiftUIのロジックが影響しているのかもしれません。しかし、ローカルファイルでは動作していますので、何らか設定が怪しいのではないかと思っています。
【修正】Xcode最上部中心にある、App名とデバイスを設定する箇所があります。そのApp名を選択すると、Edit Sheme…のメニューが出てきます。このメニューを編集するを選択後に、以下のOptionsを表示させます。すると、以下のように、StoreKit Configrationという箇所があります。この場所に、ローカル環境のファイル名.storekitが選択されています。この部分に、App Store Connectで作成した、ファイル名の.Storekitファイルを選択するようにしましょう。そうすることで、ローカル環境ではなく、App Store Connectで作成した設定が表示されるようになります。
(問題発生!)Xcodeにあらかじめ登録していた.storekitのファイルの価格がドル表示になっているのでアプリで変更が必要。
Priceという枠に、サブスクリプションやアプリ内課金の価格を設定していました。
当初、サンプルコードから生成しましたが、ドル表示になっていたため、日本円での運用ができるものと考え、Price欄には、日本円の単位で入力をしてアプリを作ってしまっていました。
しかし、App Store Connectでは、日本円で入力できたのですが、実際にXcodeで表示されるPriceはドル表示になってしまい、日本円で表示されないのです。皆さんはどのように解決していますか?
今までのデータは表示されているので、実際には、App Store Connectのデータを一度Xcode内のデータにコピーするという考え方もあるでしょう。
しかし、実際には、サーバーの情報をそのまま使う方がミスも減るのではないかと考えています。
アプリ毎に変更するものまとめ
・Bundle Identifier
・Apple Pay Merchant証明書
コメント