Help us understand the problem. What is going on with this article?

iOSアプリのリリースに関するやらかし

More than 1 year has passed since last update.

はじめに

私は個人で iOS アプリを開発 & リリースしています。
そのリリースに関するやらかした話を少しさせていただきます。👨‍💻

AppStore 低評価とレビュー

私のアプリでは評価で星 1~3 を頂く場合、バグの報告と共にレビューをして頂いたものが多いです。
特にリリース初期は「バグ報告はレビューでいただく」という、やらかしっぷりでした。🤦‍♂️

そこで低評価を減らす対策として、 バグ報告・機能要望をアプリ内からいただくための実装を行いました。

使用したのが Slack の Incoming Webhooks というアプリです。
これを使用すれば HTTPリクエストでJSONを送る実装のみで、ユーザーからの報告を Slack で受け取ることが可能になります。

Swift4, playground での実装は↓な感じです。YOUR_INCOMING_WEBHOOK_URL には固有のURLが入ります。

import Foundation
let SLACK_WEBHOOK_URL = URL(string: "YOUR_INCOMING_WEBHOOK_URL")!

let reportText = "バグだらけですよ!\nレポート機能があるから低評価はつけませんよ!"
let json: [String : Any] = [
    "text": "===== User Report =====\n>>>\(reportText)"
]
let jsonData = try! JSONSerialization.data(withJSONObject: json)
var request = URLRequest(url: SLACK_WEBHOOK_URL)
request.httpMethod = "POST"
request.addValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = jsonData

URLSession.shared.dataTask(with: request) { data, response, error in
    guard error == nil else {
        print("\(error)")
        return
    }
}.resume()

届いた Slack メッセージ↓

結果

Slack を使用するので通知も来ますし、無料で使えます。
ただ、返信ができないためユーザーさん達には申しない気持ちがします。🙇‍♂️

App内課金 関連

1. App内課金は審査が通ってから、反映までに 24 時間くらいかかる。

これを知らずに、アプリ内課金が実装済みで審査が通ったものをリリースしてしまいました。🤦‍♂️
これによって発生したやらかしは、次の通りです。

  • AppStore のプロダクトページに、「内課金あり」と表示されるが課金内容一覧に表示されていない

  • アプリ内の課金プロダクトを取得する処理で、「金額・名前・説明」など取得できていない

  • 課金する処理をしても当然エラーが発生する。

  • 焦って AppStore にメールしてしまった。(あとでググったら普通に出てきた。↓)

  • 【iOS】課金アイテムが承認済なのに承認されてない

なので対策として、審査が通ってから 24 時間くらい待ち、手動でリリースするのが良いでしょう。

ちなみに Apple からの返信は「明日まで待って反映されなかったらまた連絡してね!」みたいな感じでした。
ありがとうございました。🙇‍♂️

2. 自分の銀行口座が検索結果にない (Zengin Code)

アプリ内課金を実装するには、口座情報の登録が必要です。
通常は Zengin Code(銀行コード+支店コード)を元に銀行口座の検索・登録を行えます。
しかし、私が持っている口座の Zengin Code で検索しても、表示されるのは別の支店の住所でした。

そこで Apple にメールしたところ、
「住所は関係なく、zengin code が正しければ大丈夫だよ!」みたいな感じでした。

結果、これは私のやらかしではなかったと分かりましたが、リリースして間もないため、
まだ振り込まれたかの確認はできていません。振り込まれますよーに💰

3. App 内課金のプロモーション

現在、AppStore ではプロダクトページや検索結果にも、課金情報を大きく表示することができます。
AppStore App内課金のプロモーション

これには、iOS 11.0 以上の機能になるのと、SKPaymentTransactionObserver の実装をしておく必要があります。
しかし、SKPaymentTransactionObserver を実装していなくても App 内課金のプロモーションの使用ができてしまうので注意が必要です。

私は実装したと勘違いして一瞬やらかしました🤦‍♂️。
ちゃんとAppStoreにカッコよく表示されてしまいました笑
SwiftyStoreKit も対応しているようなので、ちゃんと実装してからにしましょう。

おまけ AppStore インプレッション数

私のアプリはリリースしてからちょうど 1 年前くらい経ちます。
その1 年間のインプレッション数(=アプリの検索・閲覧で見られた数)が↓の図になります。

リリース後 1年間のインプレッション数

これをみて一目瞭然なのは、リリース時が桁違いなことです。AppStoreの新着のアプリに表示されるからかと思います(現在はAppStoreのデザインが大きく変わったので、今も言えるかはわかりませんが)。
つまり、アプリをリリースするときは最初が肝心です。

私の場合はプログラムのバグを放置してたり、プロダクトページなどを充実させておらず、完全にやらかしました。🤦‍♂️

最後に

1年近くiOSアプリ開発をしてプログラミングでやらかしたことも多々ありましたが、その後の運用でやらかす方が多かった気がしますので、運用メインの記事を書きました。何かのお役に立てれば幸いです。🎅

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away