アルゴンUE4/UE5&アプリ開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE4】iOSのTestFlight・LeaderBoardを試してみる

AdventCalenderの記事

Unreal Engine 4 (UE4) Advent Calendar2017の記事になります。

qiita.com

軽い気持ちでiOSの配布用ビルドからiOSベータテスト機能であるTestFlightのテストとLeaderBoardまでやったら結構つまづいてしまったのでそちらの方法を紹介します。

UE4.18.2とWindows・iTunesConnectへのアップロードはMacで行いました。

※iOSDevCenterからアカウントを登録する必要があります。

これ個人登録で12700円ぐらい(2017/12/1時点で)かかります。

まあアプリ配信して元を取ればいいんですよ( `ー´)ノ

Appleの開発者登録

ここの部分に関してはUE4とは関係ないので割愛します。

下記のリンク先を確認しつつ登録していただければと。

i-app-tec.com

登録でわからないことがあればコメントを頂ければお答えします(^^)/

ProvisioningProfileと証明書(Certification)の設定

iOSアプリで避けて通れないのが、ProvisioningProfileとCertificationになります。

原理としては証明書登録してAppIDを登録して、

そのApplDを証明書と関連づけて対応する端末を選択することで、

ProvisioningFileを作成します。

証明書をPCに登録・Provisioningを端末・PCにも一応格納して、

アプリを動かすというのが主な流れになります。

Certificationの設定からAppIDの部分は他のサイトを見てもらったほうが早いと思いますので今回はUE4用のProvisioningFileを作成して登録するところまでやります。

配信・TestFlightで使用する場合はDistributionのAppStoreを選択します。

f:id:yoshikata1990:20171217093638p:plain

その後AppIdと適応する証明書とファイル名指定して配布用のプロビジョニングファイルを作成します。

f:id:yoshikata1990:20171217095822p:plain

作成が完了したら、UE4のプロジェクトに適応していきます。

WindowsUE4でProvisioningと証明書を登録する。

プロジェクトのほうに作成したProvisioningファイルと証明書を登録します。

先に証明書を登録します。

Import Certificateボタンから証明書をインストールします。

成功すると追加されます。

f:id:yoshikata1990:20171217105046p:plain

プロジェクト設定→プラットフォームのiOS→MobileProvisionから登録します。

f:id:yoshikata1990:20171217101226p:plain

ここで注意したいのがTestFlightでは右側にある、

「配布」のチェックが入っていないとTestFlight配信が出来ません。

それから、ステータスで「No Valid」になることが多々ありました。

Windowsはプロビジョニングファイルが下記ディレクト

C:\Users\ユーザー名(個別のユーザー名)\AppData\Local\Apple Computer\MobileDevice\

に保存されます。こちらで「No Valid」になっているプロビジョニングファイルを、

削除して再度インストールしなおすとValidになりました。

次にAppIDを登録するときに決めたBundleIdを適応します。

f:id:yoshikata1990:20171217140951p:plain

BundleIdentifier(黒塗りの選択欄)にAppIdを入れてVersionを指定します。

VersionInfoについては配信時、AppStoreに表示されるバージョンになります。

ここまで完了したら、パッケージ設定をして配布用ビルドを作成しましょう!

プロジェクトのパッケージ設定とパッケージ化

プロジェクトのパッケージ設定をします。

パッケージ化する際にはDistributionを必ず選択してください。

f:id:yoshikata1990:20171217154005p:plain

あとは指定したフォルダにパッケージングして、

Distribution用のIPAファイルが作成されれば完了です。

f:id:yoshikata1990:20171217154534p:plain

IPAのアップロードとTestFlightからのインストール

ここからはMacのパソコンが必須です・・・

というより、iTunesConnectへのアップロード方法がXcodeから、

Archiveを作成してのアップロードまたは、

ApplicationUploaderからのアップロードしかないのです(#^ω^)

Windowsからはどちらもできない・・・・

というわけで今回はApplicationUploaderを使って作成したIPAファイルを、

直接アップロードします!!

ApplicationUploaderの使い方は下記に掲載されてます。

一つ一つの手順まで記載されていましたのでわかりやすいかと思います。

makotton.com

実際にアプリのアップロードが完了するとTestFlightタブのところに追加されます。

f:id:yoshikata1990:20171217164131p:plain

テスト中までいくと開発者用登録したアカウント宛にTestFlightの準備が出来たことを、

報告してくれるメールが届きます。下記の画像が実際のものになります。

f:id:yoshikata1990:20171217165207p:plain

メールのリンクをタップすることでTestFlightアプリをインストールして、

TestFlightのアプリからベータテストアプリをダウンロードしてテスト出来ます。

ここまでがTestFlight配信までの流れになります。

もう少し細かい説明が欲しいところがありましたらコメントいただけると幸いです。

GameCenterにログインしてLeaderBoardを表示させる

iOS特有の機能でランキングを競うLeaderBoardの表示してみます。

LeaderBoardに表示する手順は下記の流れになります。

1.iTunesConnectにLeaderboard設定を登録をする。

2.GameCenterにログインする動作の追加

3.leaderBoardを表示する動作の追加

iTunesConnectにLeaderBoard設定を登録する

iTunesConnectにLeaderBoardの設定を登録します。

機能→LaderBoardの横にある「+ボタン」から追加します。

f:id:yoshikata1990:20171217172947p:plain

LeaderBoardからどのようなスコアボードなのか参照名、

LeaderBoardを呼び出すID・フォーマットタイプ(これはInteger)

などなど必要情報を記載します。

f:id:yoshikata1990:20171217174343p:plain

それが完了したら、次にそれの言語フォーマットを登録します。

f:id:yoshikata1990:20171217174535p:plain

言語・スコアの最大値の設定・スコアの呼び方を登録すれば完了です。

GameCenterへのログイン処理

UE4のプロジェクトからGameCenterする処理を作ります。

まずログインしているかどうか「Is Logged In」で確認します。

f:id:yoshikata1990:20171217175431p:plain

ログインしていなければ「Show External Login UI」でログイン画面を表示します。

どちらもGetPlayerControllを渡します。

f:id:yoshikata1990:20171217175721p:plain

LeaderBoardを表示する

あとは「Show Platform Specific LeaderBoard Screen」で呼び出すだけです。

f:id:yoshikata1990:20171217180317p:plain

※LeaderBoardにプレイヤーのスコアを送る。

スコアボードなのでデータの登録します。

データの扱いがIntegerのみなので送信するデータは数値になります。

f:id:yoshikata1990:20171217181002p:plain

ほしい人がいるかどうか分かりませんがサンプルはGitHubに公開予定です

これまで設定したアプリを動作させたのが下のツイートです。

気になる方は見てみてください。

最後にここまでやってみて思ったこと。

WindowsIPA作成して確認できることは本当にすごいことです!!

Xcodeで40行ぐらい書かないとできないことが4つぐらいノードつなげば可能だったりとか!!上げだしたらきりがないけど・・・

ただ・・・アプリ関係の情報が少ないのとあんまり更新が・・・(´・ω・`)

モバイルの情報も説明出来たらと思います。

23日目はるめらやきさんになります!!