カテゴリー別アーカイブ: iPhone/iPadアプリ

iPhoneアプリ AppStore申請まとめ

(1)事前に準備するもの
・AppStore用画像ファイル(512×512)
・サポートサイト
・アプリの名称および説明文
・アプリのスクリーンショット
→オーガナイザでキャプチャが取れます。(Default.pngとして保存されます。)余分な枠が付いてしまうので、画像編集ソフトで切り抜きました。サイズが決まっているので、それに合わせないとアップロード時に怒られます。

(2)配布用AppID作成
iOS Provisioning Portalから、App IDs→New App IDで、新しく作成する。
Description: アプリの説明
Bundle Seed ID(App ID Prefix): Generate Newのまま
Bundle Identifer (App ID Suffix): アプリのID。他とぶつからないようにドメインなどを使用する。

(3)配布用Provisioningファイルの作成
iOS Provisioning Portalから、Distribution→New Profileを開く。
Distribution Method: App Storeのまま
Profile Name: 適当に
Distribution Certificate: 自分の情報が出ているはず。変更できない。
App ID: (2)で作ったApp IDを選択

直後は、StatusがPadingになっているので、何度かリロードするうちに、Activeになる。

(4)配布用Provisioningファイルの登録
(3)の画面で作成したProvisioningファイルをダウンロード。
ダウンロードしたファイルをダブルクリックすると自動的にオーガナイザが起動し、登録される。

(5)プロジェクトの設定
プロジェクトを選択し、情報を見るで設定を開く。
コード署名IDで、(3)で作ったファイルを選択する。
(プロジェクト名)-Info.plistファイルを開き、Bundle identifierを、(2)で作ったIDと同じく設定する。

(6)「iTunes Connect」にログインする

(7)契約情報の登録
※これを先にやらないと、アプリを有料で登録できません。私は、アプリの登録を先にしてしまってから気付きました。
契約情報と銀行の情報を登録します。
トップ画面上のContracts, Tax, and Bankingのリンクをクリック。

(8)Contracts Tax, and Banking画面
Contract Region = All、Contract Type=iOS Paid ApplicationのRequestボタンを押します。

(9)Add New Legal Entity画面
すでに内容は入力されていました。iOS Dev Centerに登録したときの情報が表示されているのでしょう。
変更してsubmitし直せと出ています。
新宿区が抜けていたので、追記して、Save。

(10)Review Agreement画面
言語をJapaneseにすると日本語で表示されます。
なんとか流し読みしましたが、ちゃんと読むのはきついなあ。。。
Agreeのチェックを入れて、Submit。

Thank youの画面になるので、Done。
Contracts Tax, and Banking画面に戻ります。
Contract Region = All、Contract Type=iOS Paid Applicationが「Contracts In Processに移動しているはずです。

(11)Contact Information 連絡先の登録
Contact InfoのSet Upをクリック。
5種類登録しないといけないが、最初は誰も登録されていないので、選択できない。
Create New Personで一人追加して、みんな同じ人を選択して、Submit。

(12)Bank Information 銀行情報の登録
Bank InfoのSet Upをクリック。
Banking Informationで、Choose Bank Accountが空。
Add Bank Accountをクリック。

Bank Countryで、Japanを選択。
全銀コードを入力するようになっていますが、下のフォームで検索できます。
銀行名や都道府県をローマ字で入力するなり、郵便番号をを入力するなりして、一つに絞り込めれば、自動的に全銀コードが入力されます。
確認画面が表示されるので、Next。

Bank Account Number:口座番号
Account Holder Name: 口座名義
→個人の名義で登録しました。本当は会社の口座を使いたかったのですが、名義のローマ字入力方法がわからなかったので。。。知っている方教えてください。。。
Bank Account Type: 口座種別
Bank Account Currency: JPYにしました。
と入力して、Nextをクリック。

確認画面が表示されます。
「I certify that the information above is ….」のチェックを入れて、Save。

Banking Informationの最初の画面に戻るので、追加した銀行を選んで、Save。

(13)Tax Information 税金情報の登録
Tax InfoのSet Upをクリック。
“U.S. Tax Forms”のSet up をクリック。(たぶん、これでよいはず。)

「Are you a U.S. citizen, U.S. resident, U.S. partnership, or U.S. corporation?」と聞かれる。→No

「Do you have any U.S. Business Activities?」→No

「Certificate of Foreign Status of Beneficial Owner」の入力。
すでに入力されている項目もある。Type of Beneficial OwnerとTitleだけ入力して、
「I declare that the individual or organization named i….」のチェックボックスを入れて、Confirm→Submit。

(14)Contracts, Tax, and Bankingの入力完了。
Contract Region = All、Contract Type=iOS Paid ApplicationのStatusが、「Processing」に変わったので、Done。

(15)New Application画面の入力
「Manage Your Application」→「Add New Application」とすすむ。
Primary Language:言語を選択
Company Name:作者名を入力

(16)App Information画面の入力
App Name:アプリケーションの名前
SKU Number:製品番号らしい。私は、App IDを入れました。
Bundle ID:登録済みのアップIDから選択

(17)Rights and Pricing画面の入力
Availability Date: 今日の日付がデフォルトで表示されているはず。そのままにしました。
Price Tier: これで金額が決まるようです。今回は、115円のつもりなので、「Tier 1」を選択しました。
Discount for Education Institutions: 教育機関向けの割引だそうです。115円で割引されても困るので、今回はチェックを外しました。
※この時は、気付かなかったのですが、契約情報や銀行情報を登録していなかったので、アラートが出ていたはずなのですが、気付かずに進めたので、Freeで登録されてしまっていました。

Price Tier Effective Date: Now
Price Tier End Date: None
にして、Save。

ここで、
「Your contract for this price tier is being reviewed and is not yet active. Your app cannot be available on the App Store until your contract becomes active.」という警告がでてしまいました。
契約プロセスが完了していないのかなと想像。

(18)Version Information画面の入力
<Metadata>
Version Number: 今回は、初回なので1.0にしました。
Description: 適当に。
Primary Category: 今回は、Entertainmentにしました。
Secondary Category: 選択せず。
Keyword: カンマ区切りで複数入力
Copyright: 「2010 〜 Inc」のように入力するようです。
Contact Email Address: 連絡先のメールアドレス
Support URL: サポートサイトのURL
App URL: 省略
Review Notes: 省略
<Rating>
全部Noneにしました。
<EULA>
エンドユーザー向け使用許諾契約を独自に作る場合に必要らしい。今回は、無視。
<Images>
Large 512×512 Icon: AppStoreに載るときの画像。サイズ指定があるので、合わせる。
iPhone and iPod touch Screenshots:スクリーンショット画像。サイズ指定があるので、合わせる。
iPad Screenshots: iPad専用画面はないので、未選択。

この後、確認画面になるので、確認して、Done。

(19)アプリのアップロード
Manage Your Appsに、今登録したアプリが表示されていると思います。それをクリック。
アプリの詳細画面になります。VersionsのCurrent Version のView Detailsをクリック。
該当バージョンの詳細画面になります。右上のReady to Upload Binaryをクリック。

(20)Export Compliance画面
Export Compliance(輸出コンプライアンス)とのこと。
暗号化処理を含んでいるかどうかの確認らしい。今回は、No。

アプリケーションのアップロードについての説明書きの画面が表示される。→Continue

※契約や銀行の情報の登録をせずにすすめていると、PricingがFreeになってしまいます。アラートが出ていたはずです。私は見逃していたので、Freeで登録されてしましました。
その後、契約情報や銀行情報を登録して、再度Pricingを選ぶと有料アプリが選べるようになりました。

しかし、現時点では、
「Your contract for this price tier is being reviewed and is not yet active. Your app cannot be available on the App Store until your contract becomes active.」
という警告がでて、Pricingが登録できませんでした。Statusが「Processing」なので、しばらく待ってみることにします。
→30分もしないうちに、Statusが変わってようで、「Contracts In Effect」に移りました。

(21)アプリのアップロード
とりあえず、アプリのアップロードだけ進めることにしました。
現時点では、オーガナイザーからしかアップロードができないようです。
XCodeで通常の「ビルドと実行」ではなくて、「ビルド」→「Build and Archive」でビルドすると、オーガナイザーのArchived Applicationsにアプリが表示されます。

表示されたアプリケーションをダブルクリックし、日付のところを選択すると、下のSharingエリアの「Submit Application to iTunes Connect」のボタンが押せるようになります。
クリックすると、IDとパスワードを聞かれるので、iOS Dev Centerのアカウントを入れます。
Identityを聞かれるので、App Store配布用のPropositioningを選択して、Submit to iTunse Connect。
しばらくすると、「Submitされたよ」というダイアログが表示されます。
この時点で、iTunes Connectのステータスが、「Waiting For Upload」から「Upload Received」に変わりました。
その後、すぐにステータスが、「Waiting For Review」に変わりました。

で、再度Pricingの設定を試みていたら、警告が無くなったのですが、登録は完了できないままです。
「The following error(s) occurred:
No changes have been made. Please make your changes or click “Cancel”」
というエラーが出ます。
Reviewが終わらないと登録出来ないんでしょうか。。。

iPhone/iPadアプリのadhoc 配布(配信)まとめ

iPhoneアプリを知り合いに試してもらうために、adhoc配信について試してみたので、メモ。

(1)Device ID(識別子 UUID)の追加
iOS Provisioning Portal -> Devices -> Add Device で、配布先のDevice ID(識別子 UUID)を登録。
Device ID(識別子 UUID) は、配布先の端末をiTunesに接続して、確認可能。
iTunesに接続して、概要タブで見る限りは、識別子(UUID)が表示されていませんが、シリアル番号が表示されているところをクリックすると、表示が変わります。

(2)Profileの追加
iOS Provisioning Portal -> Provisioning -> Distribution -> New Profile で、Profileを追加
この時に(1)で追加したDeviceを選択

(3)Profileをダウンロード
開発環境のPC上で、Profileをダウンロードし、Finderからダブルクリックすると、オーガナイザが自動起動し登録される。
しかし、「A valid signing identity matching this profile could not be found in your keychain」というエラーになっている。

(4)Distribution用のCertificatesを追加
iOS Provisioning Portal→Certificates→DistributionからDistribution用の自分の証明書をダウンロード。
ダブルクリックしてキーチェーンに追加。
これで、(3)のエラーが消えます。

(5)plistの追加
XCode上のプロジェクトを右クリックし、新規ファイル追加→Code Sigining→Entitlements→次へ→dist.plistとして追加。
追加したdist.plistの”「get-task-allow」のチェックを外す。”という記載が他サイトの説明にあるが、どこをどうすればよいかわからかった。
調べると、iOS SDK 4からは、get-task-allowの定義が新規作成時に追加されなくなったらしい。
dist.plistの編集画面で、右クリックAdd Rowで行を追加し、get-task-allow という名前に変更する。(チェックをはずしたまま) 
参考サイト:http://for-our-happy-life.blogspot.com/2010/07/sdk4entitlementsplist.html

(6)構成の追加
XCode上のプロジェクトを右クリックし、情報を見る→構成で、Releaseを複製して、AdHocDistributionを追加。(名前はたぶんなんでもよい)

(7)plistの設定
「アクティブなターゲットを編集し、Code Signing Entitlements に dist.plist と入れる」とある 参考:http://www.sukechan.net/archives/185/
この段階では、コード署名権限には、dist.plistがすでに設定されていた。

(8)プロビジョニングプロファイルの選択
プロジェクトのターゲット→(プロジェクト名)を選択し右クリック、情報を見る。
コード署名 ID > Any iPhone OS Device でそのプロビジョニングプロファイルを選択する。
→(4)を忘れていると、adhoc用のプロビジョニングプロファイルが選択できない!
エラーが無い状態であれば、選択できるようになっているはず。

(9)ビルド
Device – x.x | AdHoc Distribution | (プロジェクト名)を選択し、ビルトと実行
「実行可能ファイルの起動エラー」と出るがファイルはできている。(Deviceではなく、Simulatorで作成すると、実機にインストールできなかったので注意)
Finderから、プロジェクトのフォルダを開き、build→AdHocDistribution-iphoneosの中にアプリのファイルを取り出す。(*.dSYMは必要ないらしい。)

「codesignは、キーチェーンに含まれるキー”“を使用して署名しようとしています。」と聞かれる。よくわからんが、「許可」。2回聞かれる。

(10)配布先へ送る
(3)でダウンロードしたxxxxxxx.mobileprovisionと(9)で取り出したアプリのファイルを圧縮して、配布先へメールなどで送る。

(11)配布先端末へのインストール
(10)で圧縮したファイルを解凍すると、xxxxxx.appディレクトリと、xxxxxxx.mobileprovisionがある。(Windowsで解凍した場合)
xxxxxx.appディレクトリと、xxxxxxx.mobileprovisionをiTunesのデバイスの所にドラッグ。
mobileprovisionをドラッグしたときに、「”xxxxxx.mobileprovision”はこのiPhoneで再生できないため、xxxxxxにコピー出来ませんでした。」と表示されるが、ちゃんとコピーされているらしい。
→同期後にデバイス上で、[設定]-[一般]-[プロファイル]を開きmobileprovisionファイルが登録されている事を確認できる。
アプリのリストから、画面が表示されているところにドラッグして、iTunes下部の適用ボタンを押す。

完了!!

<参考>
・一度、ad hoc用ビルドをした後に、デバッグ実行しようとしたときに、「 The executable was signed with invalid entitlements.」というエラーが出て実行できなくなりました。(5)でdist.plistのget-task-allowのチェックを外していたのが原因だったよう。チェックを入れると実行できました。
参考:http://www.electrodream.jp/iphonedev/index.php/2009/06/the-executable-was-signed-with-invalid-entitlements/

実機テスト出来た! – Apple Developer Program

以前、iPhone Developer Programを購入したものの、Activate出来なかったという記事を書きました。
その後、2回ほどコンタクトフォームから問い合わせたのですが、1ヶ月近く待っても、返事は来ません。しびれを切らして、今日電話をしてみました。

サイトには、日本用の電話番号が載っています。言語はEnglish or Japaneseとなっています。英会話勉強中でもあるし、単純な英語なので、なんとかなるだろうと電話してみました。いざ電話してみると「日本語の場合は、2を押してください。」とかいうではありませんか。迷わず、2を押してしまいました。(苦笑)その後、「電話が混み合っています。」というガイダンスを20分ほど聞いて、ようやくオペレータに繋がりました。

状況を説明すると、「手動で認証するためにメールを送るので、それに必要事項を記入して返信してください」とのこと。登録時に使用したメールアドレスと名前を伝えます。「では、メールが届くまでお待ちください。」と言われ、電話は終了。あっけない。

15分後くらいに、「Apple Developer Programの認証手続きについて、」というメールが届きました。即、請求先住所と注文番号を記入して返信します。「いつ有効になるかなあ」と、時々Activateのリンクをクリックしていたら、30分後くらいにステータスが変わって、Activateできました。(その後で、サポートから「調整が終わったので、手続きを進めてください。」というメールが届いています。)

その後は、手持ちの書籍「iPhone SDK3 プログラミング大全(ゲームプログラミング)」の説明に従って、作業しようとしたのですが、ちょっと段取りが違いました。(まあ、バージョンも上がってますしね。)

(1)ローカルで証明書要求を作成
→これは問題なく完了。

(2) 証明書の承認とダウンロード
→とりあえず、「iPhone Dev Center」から「iOS Dev Center」 に名称が変わっています。で、(1)で作った証明書をアップロードします。書籍には、「Approveボタンを押す」と書いてありましたが、押すことなくリロードするだけで、StatusがIssuedに変わり、Downloadボタンが表示されました。そして、証明書と「WWWDR intemediate certificate」の2つをダウンロードします。それぞれ、別々にダブルクリックするとアプリが立ち上がり、キーチェーンに登録されました。

(3)デバイスの登録
ここで、デバイス(私の場合は、iPad)をMacにつなぐのですが、こわいのでメインのWindows機で念のためバックアップをとります。(Mac miniをアプリ開発にしか使ってないので、iTunseはWindowsで使っているのです。)これに、20分くらいかかりました。
iPadをMac miniにつなぎます。iTunesが立ち上がりますが、怖いので即終了させます。(あらかじめ、自動同期しない設定にしておくべきでした。)
Xcodeを起動すると自動的に「オーガナイザ」が立ち上がり、iPadが認識されています。 (うろ覚えですが、この時にiOS Dev CenterのIDとパスを入れた気がします。)
書籍では、Identifierのコードをコピーして、iOS Dev CenterサイトのProgram Portal/Deviceで「Add Device」を押すように書かれていますが、すでに自動的に登録されていました。

(4)App IDの作成
ここで躓きました。 iOS Dev CenterサイトのProgram Portal/App IDsでApp IDを登録すると、書籍には書いてあるのですが、「New App ID」ボタンを押すと、
———————————————–
We are unable to process your request.
Please go back to the previous page, or quit your browser and try your request again.
———————————————–
と表示されて、登録出来ません。 しかし、「Xcode: Wildcard AppID」というアプリがすでに1個登録されています。もしや、これがそのまま使えるのではと思い、このまま先にすすみます。

(5)Provisioning Profileの作成
ここでも書籍では、「Add Profile」でProfileを追加するように書かれているのですが、iOS Dev CenterサイトのProgram Portal/Provisioningを見ると、「Team Provisioning Profile」というのが1個すでに登録されています。これも、そのまま使えるんだろうと思い、このファイルをダウンロードして、先に進むことにしました。

(6)プロファイルのインストール
ここでは、Xcodeの「オーガナイザ」で、プロファイルを追加するように書かれているのですが、認識されているiPadを選んでも追加するようなフォームが表示されません。あれあれ、と思いメッセージを読むと、「このバージョンのiOSには対応してないよ」と書いてあります。iPadはこの前アップデートしたので、3.2.2になっています。インストールされているXcodeは、3.2.3。iOS 3.2.2には対応していないようです。iOS Dev Centerで確認すると、「Xcode 3.2.4 and iOS SDK 4.1」がリリースされていました。ならばと、新しいXcodeをダウンロードして、アップグレードします。インストールに時間がかかり30分ほど待ちました。改めて、Xcodeを起動し直すと、iPadデバイスの画面が変わっており、プロファイルを追加できるようになっていました。しかし、すでに「Team Provisioning Profile」が1個登録されています。試しに、(5)でダウンロードしたファイルを追加してみても何も変わりません。同じもののようです。これで、この手順は完了。

(7)Xcodeプロジェクトの設定
書籍では、プロジェクトの設定を変更して、Profileを変更したり、App IDを編集したりするように書いてあります。しかし、Profileはですでに選択されているし、App IDの追加もしていないので変更のしようがありません。これもこのまま進めてしまうことにしました。(苦笑) 書籍では、この後、Xcodeのメイン画面左上のプルダウンから、Deviceを選んで、「ビルドして進行」でアプリが実機で起動すると書いてあります。しかし、私の場合このプルダウンで「SDKがないよ」(正確には忘れちゃいました)みたいな表示になり、実行できなくなっています。「なんでかなあ」と思い、メニュー→プロジェクトの設定を編集を開いて見てみると、「iOS Deployment Target」が「iOS 4.0」になっています。iPadは、まだ4には上がってないようなあと、3.2に変更してみると、Deviceが選択できるようになりました。そして、「Device – 3.2」を選択して、「ビルドと実行」をクリック、ビルドが終わると、しばらくしてiPadから「ぴろっ」と音がし、アプリが起動しました!ちゃんとシミュレータ通りの動きをしています!感動です!見せびらかしに行かなければ。

というわけで、ようやく実機テストまでたどり着きました。まだ、画像を綺麗に書き直す必要があるので、公開は先になると思いますが、実機で動くようになってので、人には見せられるようになりました。やれやれです。おしまい。

Apple Developer Program

iPadアプリ開発の勉強中。

実機で動くのが見てみたくて、Apple Developer Programを購入して、iPhone Developer ProgramのActivation Codeが届いたのだけど、メール中のリンクをクリックすると、

——————————————————————————

We are unable to activate your Apple Developer Program membership.

We are unable to activate your Apple Developer Program membership because we are unable to successfully verify your identity. Please contact us and reference Enrollment ID# xxxxxxxxx for further assistance.

——————————————————————————-

みたいなメッセージがでて、先に進めない。

8/16にContact Formから英語で問い合わせてみたけど、現時点で返事無し。

Googleで検索して調べてみると、やはりみんなこれで引っかかっているよう。対応としては、Contact Formから日本語で問い合わせればOKとなっている。

「Your region:」を「Japan」にして、英語で記入して、送ったから駄目なのかなあ。

という訳で、今日は日本語で問い合わせてみた。急ぐなら電話すると早いみたいだけど、別に急いではいないし。