App Storeでのレビューに返信

App Storeのカスタマーレビューへ返信できるようになりました。 https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnect_Guide/Chapters/ImprovingCustomersExperience.html#//apple_ref/doc/uid/TP40011225-CH27-SW1

iTunes Connect > アプリ > アクティビティ > 評価とレビュー から各レビューに対して返信することができるようになっています。

users with the Legal, Admin, App Manager, or Marketer role may reply to and edit responses to customer reviews on your App Store product page.

Legal, Admin, App Manager, Marketer の権限を持つユーザーのみ、返信することができるので注意しましょう。

Important: Responses and edits will show as pending until they display on the App Store. This can take up to 24 hours. All edited responses will have a notation that it has been edited. Responses will only be visible on the App Store for iPhone and iPad on devices running iOS 10.3 or later and OS X 10.6.6 for App Store for Mac.

返信にはPending状態があり、約24時間後にApp Storeに表示されるようになるらしいです。

 

Requirements for apps in Japan.

2017/02/23にAppleから新しい通知が来ました。 詳細:https://itunespartner.apple.com/en/apps/news/79920317

日本で有料アプリやIAPを提供するアプリは、コンタクト情報を記載するサポートリンクをアプリ内に表示することが必須となりました。 販売者名・住所・コンタクト情報などのをサポートページで表示する必要があります。

個人開発者にとって、名前と住所を公開しないとなると、かなり敷居が高くなるように感じます。

fastlaneでiTunes Connectへのアップロードを自動化する方法

iOSアプリにfastlaneを導入し、iTunes Connectへのバイナリアップロードを自動化する方法をまとめておきます。

fastlaneに関してとインストール方法はこちらの記事で紹介しました。 またfastlaneで、Crashlytics Betaにバイナリをアップロードする方法もこちらで紹介しています。 まだ読んでいない方は、是非読んでみてください。

fastlane/Fastfile

本記事では、iTunes Connectにバイナリをアップロードしてみます。

  desc "Deploy a new version to the App Store"
  lane :release do
    # match(type: "appstore")
    # snapshot
    gym(scheme: "ExampleApp") # Build your app - more options available
    deliver(force: true)
    # frameit
  end

既に上記コードがfastlane initコマンドで、Fastfileに記述してあるかと思います。 そのため、以下のコマンドを実行すればiTunes Connectへバイナリアップロードすることができます(簡単すぎる!)。

$ fastlane release

ちなみに、forceの意味はこちらです。 trueを設定すると、htmlレポートを出力せずにバイナリをアップロードします。

これでiTunes Connectへバイナリをアップロード作業が自動化できました。 またメタデータスクリーンショットもgit管理することができました!

fastlaneで快適開発ライフを送りましょう!

fastlaneでCrashlytics Betaアップロードを自動化する方法

iOSアプリにfastlaneを導入し、Crashlytics Betaにアップロードする方法をまとめておきます。

fastlaneに関してとインストール方法はこちらの記事で紹介しました。 まだ読んでいない方は、是非読んでみてください!

fastlane/Fastfile

Fastfileでは、fastlaneで行いたい作業を記述します。 本記事では、Crashlytics Betaにバイナリをアップロードしてみます。 まずFabricの設定からAPI KeyとBuild Secretを取得しておきましょう。

before_allで環境変数に設定します。

  before_all do
    # Crashlyticsの設定
    ENV['CRASHLYTICS_API_TOKEN'] = "XXXXXXXXXX" # Fabricで取得したAPI Keyに入れ替えてください
    ENV['CRASHLYTICS_BUILD_SECRET'] = "XXXXXXXXXXXXXXXXXXXX" # Fabricで取得したBuild Secretに入れ替えてください

    # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..."
    cocoapods

  end

fastlane/Fastfileに以下のコードを追加します。

  desc "Build and submit ExampleApp app on Crashlytics Beta"
  lane :crashlytics do
    cert
    sigh
    gym(
      scheme: "ExampleApp",
      configuration: "Release",
      clean: true
    )
    crashlytics(
      api_token: ENV["CRASHLYTICS_API_TOKEN"],
      build_secret: ENV["CRASHLYTICS_BUILD_SECRET"],
      notes: "",
      notifications: true
    )
  end

上記のコードを追加することで、fastlaneでcrashlyticsコマンドを実行できるようになります。

$ fastlane crashlytics

これでバイナリをCrashlytics Betaにアップロードすることができます。

Release Notesにコミットメッセージを追加

せっかくなので、Betaにアップロードする際にコミットメッセージをRelease Notesに追加したいと思います。

  
  def change_log_since_last_tag
    # http://git-scm.com/docs/pretty-formats
    #  
    return changelog_from_git_commits(pretty: '%h %s')
  end

  desc "Build and submit ExampleApp app on Crashlytics Beta"
  lane :crashlytics do
    cert
    sigh
    gym(
      scheme: "ExampleApp",
      configuration: "Release",
      clean: true
    )
    crashlytics(
      api_token: ENV["CRASHLYTICS_API_TOKEN"],
      build_secret: ENV["CRASHLYTICS_BUILD_SECRET"],
      notes: change_log_since_last_tag,
      notifications: true
    )
  end

「開発して、Crashlytics Betaにアップロードして、テスターに配布する」が自動化できました! これでデバッグ作業やテスターへの配布作業が格段に楽になりました。

こちらにfastlaneのサンプルがたくさんあるので参考にしてみてください! fastlaneを使って、iTunes Connectへバイナリをアップロードする方法はこちらの記事でを紹介しています。 fastlaneで快適開発ライフを送りましょう!

fastlaneの導入

iOSアプリにfastlaneを導入したので、手順ををまとめておきます。

fastlaneについて

Web: https://fastlane.tools Github: https://github.com/fastlane/fastlane fastlaneはiOS/Androidアプリのリリース作業を自動化してくれるツール群です。 iOSアプリの申請作業を行う際、手動でのバイナリアップロード作業が毎回面倒だと感じでいたため、導入することにしました。 自動化することでケアレスミスも防止できます。 またメタデータスクリーンショットをgit管理できるようになるので、変更履歴の管理も可能になります(←これが本当に便利です)

fastlaneのインストール

Gemで公開されているので、gemコマンドでインストールしました。

$ gem install fastlane

fastlaneの初期化

プリプロジェクトのルートディレクトリで、fastlane initコマンドを実行することで雛形を作成してくれます。

$ fastlane init

Apple ID, App Identifier,などが聞かれるので、答えましょう。 コマンド実行が完了すると、fastlaneディレクトリが作成されAppFile・Fastfile・README.mdが作成されます。 既存アプリの場合、iTunes Connectからメタデータスクリーンショットをダウンロードしてきてくれます。 簡単にgit管理できるようになるので、とてもありがたい!

fastlane/Appfile

fastlane/Appfileには、Apple IDやApp Identifierの情報が記述されています。 単一アプリの場合、特に編集することはないかと思います。 ターゲットが複数あるアプリの場合は、編集する必要そうです。

fastlane/Fastfile

fastlaneで行いたい作業を記述します。

これでfastlaneのインストールは以上で完了です! fastlaneで快適開発ライフを過ごしましょう。

App Store Improvements

Appleから2016年9月2日深夜頃に、 「App Store Improvements」という件名のメールが、皆さんの元にも届いたのではないでしょうか。

2016年9月7日からApp Storeに公開されている全アプリを、新しいApp Store Review Guidelinesで審査するというもの。 ガイドラインに違反しているアプリは、30日以内に修正しないとApp Storeから削除されてしまいます。 また起動時に即クラッシュしてしまうアプリは、すぐにApp Storeから削除されるようです。 アプリを消されたくない開発者の方(おそらく全員)は、今すぐに対応を始めましょう! 開始日は、2016年9月7日 です

またアプリ名は50文字以内という制限ができました。 これは新規アプリとアプリ更新時の検査なので、更新しない既存アプリには関係ありません。 が、アプリ名を長くしているアプリがある開発者は気を付けましょう。

詳しくは以下のURLから https://developer.apple.com/support/app-store-improvements/

新しいApp Store Review Guidelinesが結構変わっているので、読んだら記事書きます!

Kotlinプロジェクト作ってみた!

2016/06/22 に投稿

Kotlinも1.0になったので、Kotlinの導入手順を残します。 以下の手順で、JavaとKotlinの併用も行えます。

app/build.gradleを変更します。

差分は、以下のコミットから見て下さい。 https://github.com/akifumi/KotlinTrial/commit/0fd41ba7824f7ca3e98e4d92b7fc918879c53621#diff-39e7d8c00954e920b98e7636f0ac30b2 上記の差分でKotlinを導入することができます。

以下のコードで、Kotlinファイルを配置するパスを忘れずに記述しましょう!

sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
}

 

Kotlinファイルを追加するとConfigure Kotlinとアラートが出るので、実行しましょう。 以下のような差分ができます。 https://github.com/akifumi/KotlinTrial/commit/901ed5d609b7862a8c3ed35f89f3fe17c6f116cf

最後に、MainActivity(Java)からMainFragment(Kotlin)を呼び出すサンプルコードを作成したので添付しておきます。 https://github.com/akifumi/KotlinTrial/commit/446163e5fa0600c3cc3e1115653e8286fea9b180

コード保管や実行も問題なく動作していそうなので、既存のJavaプロジェクトのKotlin移行も徐々に行うそうな印象です! ライブラリの対応具合も気になるところなので、後ほど調査したいと思います。

以下に今回のサンプルプロジェクトを置いておくので、興味のある方はどうぞ! https://github.com/akifumi/KotlinTrial