作成したアプリ概要
世界中でプレイされているPCオンラインゲーム「League of Legends」の周辺アプリです。
内容はこちらに表示されているキャラクター(以下、チャンピオン)たちの背景ストーリーを読めるというもの。
ローカルでデータを持っているので、電波が安定しない場所でもチャンピオンたちの物語を読めます。
Legal Jibber Jabber ポリシーを見てもらえばわかりますが、無料で提供する限りは何やってもいいって書かれています**(過言)**。
開発会社のRIOT GAMES、太っ腹すぎます。
そりゃコミュニティが活性化しますわ。
この記事を作るにあたって
Swift歴は今回のアプリ開発ではじめてSwiftを勉強した程度(4ヶ月くらい)。
特別英語が読めるわけではないのでReferenceを読むのも一苦労でした。
「賢者は歴史から学び、愚者は経験から学ぶ」という言葉がありますが、
まさしく自分は後者で、とりあえずやってみっか精神でリリースしてみたという感じです。
Swiftプロジェクトを作成した際に一緒に作られるファイルにいたっては、
それがどう言った役割を持っていて、どう参照されて、どう反映されるのかなどを一切勉強せずに
多分ここがこう影響してそう、といった雰囲気でアプリ開発を続けていました。
(次に作るアプリでは、これらファイルたちを詳しく調べて活用してみようかなと思ってますよ!モチロン!)
言わずもがな、そんな状況で開発を続けていたら要所要所でコケにコケまくるワケで......
Swift初学者で何もわからん状態からリリースまで、つまずいたところをメモがわりに共有します。
アプリ開発
ダークモードでアプリ起動
Info.plistファイル
Appearanceの欄を追加(Keyカラムの値の右側プラスボタン) → ValueをDarkに。ライトモードにもできると思う。
アプリアイコンの下に表示する名前
Info.plistファイル
Bundle display name → Valueに表示したい名前を記入
他にもいろいろあったと思いますが忘れました。
Qiita開きながら開発しないとメモにならんなと反省してます。
アプリリリース
リリースまでは下記の記事を参考に進めました。
少し違っていたところもあるけれど、おおよそ同じ流れでしたのでスムーズに進めることができました。
個人でiOSアプリをリリースしました by @prunzfrfx
iPhoneだけでリリースしたい
無理でした。
iPadにはiPhone互換モードが搭載されているとのことでiPad対応はマストらしい。
自分はiPhoneだと問題なかった表示が、iPadだとUIに被ってしまっているとご指摘を受けました。
Launch Screen FileをUIViewControllerにした(デフォルトに戻した)ら全部解決しました。
そんなファイル作ってないのになんで解決されたんだ......わからん。
アプリ内で独自の暗号方式を使用していない
アプリ開発初心者が独自暗号方式などわかるはずもなく......
使用していないにチェックすると、Appleさんに下記のように言われました。
独自の暗号方式使ってないなら最初っから Info.split に
App Uses Non-Exempt Encryption : No
って追加しとけや
はい。すみませんでした。
Xcode のアプリアップロード時エラー
1回目の審査でリジェクトされたので、修正したのちに2度目のアップロードのはずが下記のようなエラーが出ました。
ERROR ITMS-4238:
"Redundant Binary Upload. There already exists a binary upload with build version '1' for train '1.0'" at SoftwareAssets/PreReleaseSoftwareAsset
解決方法を探していたら下記の文言を見つけた。
「Build」のバージョンが同じバイナリが重複してアップロードされているというエラーメッセージ。
ということで下の画像のように、
General → Identity → Build のナンバリングをちょいと変えてやればOK。
「1.0」から「1.1」にしました。
今後について
ひとまずアプリ開発・公開までを経験できてよかったと、素直に感じています。
LoLの周辺アプリを作ったからには、LoL側の更新があればすぐに対応できるように自動化とかしなきゃいけないですね。
少しでも運営を楽にできればと思います。
そういう基盤が作れたら、他のLoL周辺アプリとかも作れそうですね。楽しみだ。
徒然なるままに書きました。
以上。
(記事内容に問題ありましたらご連絡いただけると幸いです......)