2013年5月15日水曜日

iPhone 5 Optimization Requirement

今度はiPhone用アプリをiTunes Storeに登録する時に苦労(´ω`。)
その顛末を記録です。

iTunesにアプリを登録すると以下のようなメールがiTunes Storeから来ました。

iPhone 5 Optimization Requirement - Your binary is not optimized for iPhone 5. As of May 1, all new iPhone apps and app updates submitted must support the 4-inch display on iPhone 5. All apps must include a launch image of the appropriate size. Learn more about iPhone 5 support by reviewing the iOS Human Interface Guidelines.

特にiPhone5の画面表示では問題無く作っていると思っていたのですが、よく読むと launch imageが必要との事。

今回はAIR for mobileのアプリでFlash Builderにて作成しています。このため、スプラッシュ画面の作成は Flash Builderの機能を使って適当な画像サイズの画像を起動画面に表示するように変更しました。そして再度アップロードしたところ状況は全く改善せず(´ω`。)

いろいろ検索してみると、どうも launch imageにDefault-568h@2x.pngという画像が必要なようです。先ほど記載したように今回はFlash Builderにてスプラッシュ画面を作成していますので、この画像がアプリパッケージに含まれているのかどうか分かりません。(後でipaファイルの拡張子をzipに変更すればフォルダに展開できる事を知りましたが。。。)そこでとりあえずこのDefault-568h@2x.pngという画像を指定サイズ通りに作成して、srcディレクトリ直下に配置し、ビルドの際にこの画像も含めるように指定して再ビルドしてアップロードしてみました。
(この後に Default@2x.png画像も加えましたが、これは最終的に必要かどうか分かりません)

すると今度は次のようなメールが。

iPhone 5 Optimization Requirement - Your binary is not optimized for iPhone 5. As of May 1, all new iPhone apps and app updates submitted must support the 4-inch display on iPhone 5. All apps must include a launch image of the appropriate size. Learn more about iPhone 5 support by reviewing the iOS Human Interface Guidelines.

Invalid Launch Image - Your app contains a launch image with a size modifier that is only supported for apps built with the iOS 6.0 SDK or later.

う~ん、少しは状況が改善しているのか、していないのか。。。。

iOS 6.0 SDK以降を使えと言われても、FlashBuilderで作ってるし。。。
と、言うわけで今度はFlash BuilderのSDKを調査する事に。

使っていたFlash BuilderのSDKはFlex 4.6.0でした。これより新しいものはAdobeからはリリースされていないようです。Flash Builderのインストールフォルダの中のsdksを覗いてみると4.6.0というフォルダがありその中にはAIR SDK Readme.txtがありこれを見ると「Adobe AIR 3.1 SDK」となっています。 Adobe AIR SDKの最新版は3.7ですので、これを適用できないかと考えました。そこでググルとありました。

「Flash Biulder 4.7に AIR SDK 3.5 をインストールする手順」

http://maccle.com/air_flex/how-to-install-air-sdk-3-5-to-flash-builder-4-7-with-flex-sdk-4-6-0-on-mac/

 この方法を用いて再ビルドしてアップロードしたところ、「Your app status is Waiting For Review」というメールがやっと来ました。ふ~っ

ところが、 次のメールも

Dear developer,

We have discovered one or more issues with your recent delivery for "○○○○". Your delivery was successful, but you may wish to correct the following issues in your next delivery:

Non-PIE Binary - The executable '○○○○.app' is not a Position Independent Executable. Please ensure that your build settings are configured to create PIE executables.

If you would like to update your binary for this app, you can reject this binary from the Binary Details page in iTunes Connect. Note that rejecting your binary will remove your app from the review queue and the review process will start over from the beginning when you resubmit your binary.

Regards,

う~ん、またまたどうすればいいのやら。とりあえずこのままで :-)

iOS用アプリのAd Hoc インストール失敗


iOS用アプリをFlash Builderで作成していたのですが、試験用端末にAd Hocインストールする時に何度も失敗して苦労したので、その時の状況を記録します。

今まで開発にWindowsを使っていたのですが、それを今回Mac Book Proに変更しました。これは外出先でもiPhoneにインストール作業ができるようにと考えたからです。

このため、Windows機からソース一式、アプリ本体、Provisioning Profilesをコピーしてきてインストール作業を行いましたがことごとく失敗

iOS Developer CenterからProvisioning Profilesを再ダウンロードしてもダメで、もちろんProvisioning Profilesにインストールしようとしている端末のUDIDが登録されていることも確認していました。

ここで「ひょっとして、CertificatesというものはPCを認証するためのものでは?」という事に気付きCertificatesの作成から新たに行いました。そして、そのCertificatesを使って再度Provisioning Profilesを新規作成してそこにもう一度インストールする端末を登録してダウンロード。これとp12証明書を用いて再度ビルドしてそれをiTunesにコピーしてインストールすると無事に完了しました 

う~ん、いちいち面倒だ~!

iOS用アプリのProvisioning Profilesについて


この前からFlashBuilderを使って、iOS用アプリを作成しているのですが、試験用端末にAdHocインストールするのに手間取ったのでその時の内容を記載しておきます。

インストールしたい端末をUSB接続してiTunesを起動してその端末のUDIDをコピー、そしてApple DeveloperサイトにてiOS Devicesの登録をするまでは問題無いと思いますが、この端末にインストールするには、用意したProvisioning Profilesを編集して、Devicesの欄でこの端末をチェックして、それをダウンロードして使わなければいけません。

Provisioning Profilesの編集項目として、Certificates欄もありここも複数あれば選択できるようになっていますので、インストールする端末が変更となればこれも変更する必要があるようです。

CertificatesやProvisioning Profilesが何のためのものなのか、最初は分かり難いため試行錯誤が続きます(´ω`。)