エモンのブログ(スマホアプリ作成日記) -22ページ目

エモンのブログ(スマホアプリ作成日記)

エモンのブログです。

GooglePlayとAppStoreにアプリをリリースしてます。
「詰将棋パラダイス」4500問無料で公開。
「みんなのしょうぎ」投票型の将棋対局。いずれもソーシャルアプリなので、ソーシャルゲーム作成に興味があるかたは是非ご覧ください。

アプリを完成させてから、ipaファイルを作り、それをapp storeへ申請出すまでの手順
年月が経つごとに色々変化するので、現状をメモ
しかし既に覚えてないし、理解してないため、わかる範囲でのメモ書きと手順書です。
(2012/04/20)
一番下のまとめだけ見ればいいかも。

(1)appleIDの取得
appleIDを取得します。日本語のIDは入れないほうが無難のようです。

(2)iOSデベロッパープログラムをapp storeで購入
購入すると「W」から始まる購入コードがメールで届くので確実に保管する。

(3)Activation Codeを確認
ほとんどの人が引っかかっているように、自分も引っかかる。
Activation Codeが認証されなかったのでContact Usからがっつり日本語でactivation codeが有効にならない件とapp storeでの「w」から始まる購入IDを記載してsubmitする
2時間くらいでactivation codeが有効になった。

(4-1)キーチェーンアクセスから証明書を発行する
キーチェーンアクセス > 証明書アシスタント > 認証局に証明書を要求
自分のメルアド、自分の名前をいれる。CAのメルアドはいらない。
ディスクに保存、鍵ペア情報を指定を選択して「続ける」
CertificateSigningRequest.certSigningRequestが保存される。

(4-2)iOS dev Centerから証明書を発行する
iOS dev centerのiOS Provisioning Portalへ
Certificates > Developmentから「Request Certificate」をクリック
さっき取得したCertificateSigningRequest.certSigningRequestをsubmitする。
iOS Provisioning Portal CertificatesをリロードするとActionのところに「Download」が出現する。
ios_development.cerが保存される。

(4-3)キーチェーンアクセスから鍵を発行する
ios_development.cerをダブルクリックするとキーチェーンアクセスが立ち上がる。
ログイン > iPhone Developmentの証明書にフォーカスがあたっているはずなので
ここでメニュー > ファイル > 書き出し
でp12ファイルを書き出せる。ここでパスワードを指定するが、これはパブリッシュするときに必要。
※なお4-1から4-3の手順はOSのアップグレードがあった場合、もう一度やり直すことになるようだ。

(5)AppIDを発行
左メニューのAppIDs
https://developer.apple.com/ios/manage/bundles/index.action
ここから「New App ID」を押下。AppIDとBundleIDを指定する。
アプリのコードネームでも入れておこう。ただしみんな大好きアンダーバーがBundleIDで使えないので
AppIDもアンダーバーは使わないようにしとこう。

(6)プロビジョニングファイルの取得
左メニューのProvisining
https://developer.apple.com/ios/manage/provisioningprofiles/index.action
ここから「New Profile」をクリックprofileIDを指定、さっきのIDと同じほうがいいだろうか。
CertificatesにチェックAPP IDはさっき作ったものを選択。Deviceもさっき作ったものにチェック
これで***mobileprovisionというファイルを取得できる。
※ここのファイルもOSのアップグレードにより「invalid」のエラーになってしまった。

(7)Flash上でパブリッシュ
p12ファイルとプロビジョニングファイルを指定する。
iOSデプロイタイプは上記の場合iOS dev centerでdevelopmentタブ上での操作だったのでクイックパブリッシュしか選択できない。
OSがバージョンアップしてたりすると、ここでも電子証明書の失効している可能性があるのでその場合は証明書を取り直しする。

(8)iOSへインストール(デバッグ)
iTunesにパブリッシュしてできたipaファイルをドラッグ&ドロップして同期を取りインストール
インストール失敗するパターンとして、2つ目のアプリを1つ目と同じAppIDを利用した場合インストールできない。
上記(5)の手順にて違うIDを発行しとこう。

(9)app storeへの申請
上記(4-1)から(6)の手順をiOS dev centerのdistributionタブにて行い、Flashでのデプロイタイプをapp storeにする。

(10)iTunes Connectでアプリ登録
iTunes Connect
ここのManage Your Applicationsページへ行き、Add New Appをクリックする。
必要な情報を入れて(日本語可)Continueする。このときBundleIDはAppIDを作成したときのものを指定する。するとアプリがWaiting For Uploadにステータスへとかわる。

(11)アプリのアップロード
Manage your Applicationの下部にDownload Application Loader があるのでダウンロードする。
(※最新のOSにする必要がある場合はapp storeで購入しておく。しかし証明書が失効するので注意)
Application Loaderを立ち上げて「Deliver Your App」をクリックすると通信が走ったあと、
Choose.のところにさっきのWaiting For Uploadステータスのアプリが出てくるので、選択する。
ipaファイルを選択してSendする。

ここでエラーになった。自分がハマった箇所は2つで、落ち着けばナンテコトナイッテ。
(A)証明書がdeveloperのままだった。p12とプロビジョニングファイルをdistributionにして取得しなおし
(B)BundleIDの相違。アプリ登録時のBundleIDとプロビジョニングファイル取得時のBundleIDが違っている。iTunes Connectからアプリ詳細にてBundleIDを修正。
これでWaiting For Reviewにステータスが変わった。


(12)アップルからリジェクトを食らう
現在apple待ちなので、フラグをたてておく。
4/27 : 本当にリジェクトを食らった。原因はアイコンが中身と違っていたため。
5/04 : 無事リリースしました。
6/未明:リジェクトを食らった。原因は広告でアダルトバナーが出ていたこと。http://itunes.apple.com/jp/app/dekoponiteno-mo-nu/id520133510?mt=8

まとめ
FlashCS5.5を用いてAIR for iOSにてアプリを作ることができるしapp storeで配布は可能。
iOS Dev Centerにて証明書各種を取得し、iTunes Connectでアプリの登録を行う。
アップロードする際にターミナルでのコマンド実行やXMLの修正は必要はなく、Xcodeも必要ではない。
ただしApplicationLoaderが必要であり、iTunes Connectで配布している。
これはmac限定ツールなのでiOS用アプリはwindowsでも開発可能だが、app storeへ出すにはmacが必須ということ。
最新のApplicationLoaderを使うためにはOSのアップグレードは必要になるかもしれない。
OSをアップグレードすると電子証明書、p12、プロビジョニングファイルが失効する可能性があるので取り直す必要がある。
また開発用と本番用とで上記証明書が別途必要になる。

appleとのやりとりはアプリ制作してきた中で最も難関であり、面倒な作業であった。

「デコポニテの魔女」はスマートフォン用簡易右スクロールシューティングゲームです。
Android端末(google play)⇒  iOS端末(app store)⇒
Technology By: Adobe AIR & CakePHP
どうもiOSでのみおこるAIR上でのバグみたいなものがあったので記しておきます。
とあるMovieClip上で
this.addEventListener(MouseEvent.MOUSE_DOWN, onMouseAnyMcDown);

とリスナーを登録。
public function onMouseAnyMcDown(evt:Event) {
trace(stage.mouseY);
}


実際のfunctionでmouseYを取得しようと試みます。
これはPCでのデバッグやAndroidでは通常通り取得できます。
しかしiOS(注:自分はiPodTouch)で確認してみたところ
タッチしたタイミングは大丈夫そうなのですが、ドラッグのような操作をし、リスナー登録していたMovieClipを超えてドラッグをし続けると、このmouseYが宇宙へ飛び出るかのような値になってしまいました。

対処としてはmouseYがステージ上を飛び出るような値の場合は処理をしない、などとしました。
ドラッグを自前で用意する方などは要注意かもしれませぬ。

デコポニテの魔女」の提供でこのブログは書かれております。
デコポニテの魔女はAndroid端末用簡易右スクロールシューティングゲームです。
Technology By: Adobe AIR & CakePHP
アプリ制作はほぼ終了したので、プロモーション用に動画を作成しました。



(1)AIRでPCでアプリ再生ができるようにアプリをパブリッシュ

(2)自分はB's動画レコーダーを使って再生されているアプリをキャプチャ

(3)Flashを立ち上げてキャプチャしたaviをMovieClipとして読み込み

(4)Flash上で矢印や解説を追加

(5)著作権きれのクラシック音楽を拾って、それをファイル>読み込み でライブラリに読み込み

(6)できたSWFを再生しB'sレコーダーでキャプチャ

これで最終的にyoutubeにUPできるaviができました。
意外だったのがFlashでaviをフレームとして読み込めるってことと、拾った音楽もライブラリに追加できるってことですね。なんつーか、Flashって動画編集にも使えるんだなあと。

まあ、本来キャプチャするのが2重になってしまってはイカンのでしょうけどもね・・・。