Appleの開発者登録手続きが清々しいまでにヒドい件

iOSプログラミングに慣れてきて当然実機で動かしてみたくなります。早速有償のiOS Developer Programに登録申請してみました。

がこのフローがヒドい。友人からの事前情報で、Apple IDに日本語が含まれているとアクティベーションにコケて、メールで修正依頼をしたりして長いこと待たされることがわかってたので、色々ググってみました。要約すると、

  • Apple IDの登録情報に2バイト文字があるとアクティベーションに失敗する
  • 逆にすべて英語だと日本のApple Storeでの決済手続きがエラーになる

もうこれだけでもヒドい話です。どうしてこんな簡単な問題が何年も放置されてるんでしょうね?

なんとか問い合わせ手続きしなくて済むようにと、先人達の記録を参考に、開発専用の新規Apple IDを取得してすべて英語で記入するところから始めてみました。開発者申請のページから新規にApple IDを登録するとこから始める選択肢があるのでそれを使います。メール認証をして登録完了。続けて有償ライセンスの購入に進むと、カートにライセンスが入った状態で日本のApple Store画面にリダイレクトされます。そのまま決済に進むと、名前や住所を日本語で入れ直すよう促されます。これで無事決済は完了。午前零時前後に手続きしたところ、数時間後の翌朝6時半くらいにアクティベーションコードがメールで届きました。

が、結局お約束のエラー!

新しくApple IDとった意味なし。愚痴をたれつつも、エラー画面内の「Contact Us」というリンクから行ける問い合わせフォームで連絡。こちらからアクションを起こさない限り向こうはなにもしてくれないそうなので。で、最短で手続きが進む様に、あらかじめネットで調べて必要事項(Apple Storeの注文履歴画面から、

  1. 『ご請求、ご連絡先』
  2. 注文番号 (W+数字8桁)

をコピペ。またメールにあったEnrollment IDも添えて送信したのが朝9時。返事が来たのが午後2時過ぎ(日本語)。あろうことか、上記の情報を知らせろと書いてきています。だからコピペしたでしょ?とメールに添付されたフォーム記入文面を見る。なんと、

2バイト文字が全て抜け落ちてます。

コピペした「We are unable to activate」というエラーメッセージ、住所の中の部屋番号と番地と郵便番号、注文番号、Enrollment IDという英数字のみの意味不明な送信文です。おそらくエラーメッセージから問い合わせ内容を類推して返信してきてるんでしょう。

日本語入れると全部抜かれて送られるフォームなんてナナメ上過ぎ。

これまた知人から「Appleは開発者に優しくない会社」と聞いてましたが、確かにその通りかも。あるいは非1バイト文字圏軽視しすぎ。

 

結論としては、「一発申請は不可能。あれこれ悩むより余裕もって申請して、さっさとエラー出してContact Usから連絡。RegionにJapanを選択し、上記エラーメッセージさえ貼り付けておけば用件は通る。日本語は書いても無駄。詳細はその後のメールへの返信で記入」ってとこですかね。もしかするとContact Usフォームに請求、連絡先情報を英語表記にして貼ればいいのかも知れませんが、たぶんApple Storeの表示とマッチしないとNG食らう気がします。

iOS開発修行中に参考になった本を紹介

■木下誠 「たのしいCocoaプログラミング」

iPhoneのSDKが一般公開された頃から、自分でアプリ作ってみたいと思ってMac miniまで買いそろえたりしていたものの、昔から「C」と名のつく言語(というかポインタ?)が苦手だし、オブジェクト指向も概念はわかるもののいまいちとっつきにくくて、長らく放置していました。

が、MacBook Airを買ったり、ちょっと仕事絡みで相談を受けたりを機にようやく重い腰をあげてみたのがこの年末年始。でもやっぱりObjective-CもXcodeも敷居が高くてTwitterでプログラマの友人達に助言を請うたりしつつ、1月は本当に頭を悩ませていました。本を何冊も買っては、説明がスッキリしなかったりサンプルのビルドが通らなかったりで投げ出したりの繰り返し。

そんな中で急速にObjective-CやXcodeに関する理解が進んだ感があったのが、木下誠氏の「たのしいCocoaプログラミング」でした。この本は正確にはiOS開発について触れた書籍ではなく、MacOSXに関するものです。ただObjective-CやXcodeに関しては共通事項もおおいということで、随分前にTiger版を買ってあったのを手にとってパラパラと読み返してみたところ、その前に何冊か読んでいてイマイチすっきりしてなかったところが急激に納得いくようになりました。Xcode 2.xと現行の3.xでは随分作法もかわっているということなので改訂されたLeopard版を速攻で注文。

以前友人向けにVB.NETで作った簡単なWindowsアプリをOSXにさっくり移植できてしまいました。最初からこれ一冊で足りたかどうかは定かではありませんが、断片的だった知識をこの本が再構成してくれた感は高いです。特に他の書籍ではXcodeやInterface Builder上での操作が手順でしか示されていなかったのに対し、この本ではその意味についても触れてくれていたのが大きいような気がします。.hファイルと.mファイルがペアで1つのクラスを表している、といった極基本的な事も、この本でようやく気付いたというレベル(他の本は.hにこう書け、.mにこう書け、ほら動いたでしょ、というノリ)。Objective-Cについても、例えばimport文で宣言ファイルを指定するのに、<>で括るのと””で括る意味の違いまで触れていたのはこの本が初めてでした。そういうレベルの入門者には、(iOS開発を目的とした場合やや遠回りに思えるかも知れませんが)一読の価値があると思います。

■所友太「iPhoneプログラミング UIKit詳細リファレンス」

続けて重宝したのがこちら。「たのしい~」でObjective-CとXcodeの雰囲気がつかめたので、あとはiOS特有の部分を差分的に読めればいいやってことで。iOS 3.x世代の解説本ですが、入門レベルの要素は網羅されているので支障はない気がします。まぁ、もしかするとiOS4.xなら同じことをより簡単にできるようになったりはしてるかも知れませんが。

この本を参考にして、相談を受けた極簡単なアプリのデモ版を完成させることができました。データ保存もネット通信もしないごくごくプリミティブなアプリですが、何冊も投げてきたσ(^^)としては、格段の進歩という気がしています。詳しい人にソースを見せると、とてもオブジェクト指向的とは言えないような作りかも知れませんが、それは今までのVB.NETで作ってきたツールも同じだしw。

「あとは本でもネットでも公式リファレンスでも見ながら猿真似していけば(σ(^^)個人が作る規模のアプリなら)なんとかなるんじゃないか?」という気がVB並にしてきたのは(錯覚だったとしても)大きい。あとはそのドキュメントがVBに比べるとやはり少ないのが難点ですね。

■てことで逆引き本2冊

というワケで、やりたいことがサクっと調べられるよう、いわゆる逆引き本をObjective-CとiOSで1冊ずつ買って見ました。これらはまだ活用には至ってないので、(「原則として自分で使ってみたものをレビューする」という本ブログの主旨には反しますが)紹介まで。

1冊目はObjective-Cという言語に関するもの。「文字列を文字列で分割する」とかそういうレベルの調べもの用。おそらく現時点で日本語で読める逆引き本としては唯一なんじゃないかと。先日立ち寄った書店でも2010年のプログラミング関連書籍ランキングで3位になってました。

もう1冊はiOS特化の方で、「アプリ内から写真撮影をするには」とかいったAPIレベルのノウハウが数多く収録されているようです。世代的にもiOS4.x対応なので心強いです。

 

当面この後マスターしたいのはテーブルビュー(リスト画面)とCoreData(データの保存関係)ですね(フルグラフィックなアプリを作ることはないだろうし)。それを習得できれば簡単な実用アプリは書けるようになる気がします。なんか手頃なお題を物色中。

iOS対応高機能MP4を簡単に作るdgMP4Muxer完成

世間は三連休だったようですが、σ(^^)的には発生イベント皆無だったので、家に籠もって手持ちソフトをこないだ習得した方法でiOS対応MP4にしこしことエンコードしていました。

で、さすがにDOS窓でコマンドを手打ちするのに嫌気がさし、フロントエンドGUIツールdgMP4Muxerを作成、公開してみました。

画面写真

例によって我が家のローカルルールに特化した部分があるのであまり汎用性はないかも知れませんが、逆にそのルール(素材ファイルの命名規則)に従っておけば、簡単確実にiOS(iPhoneやiPad)で認識する音声多重、チャプター入りMP4ファイルが作れます。

mp4boxやmp4chapsに渡すオプションを自由に設定できるようにしてあるので、細かく指定した人にはyambより便利なんじゃないかと思います。

ただ、字幕系についてはほとんど考慮してません。現状でも適当なオプションを書いてやれば使えるかも知れませんが、それでもダメな時は要望として挙げてもらえれば対応してみます。

MP4タグ一括書き込みツールを公開しました

前エントリでも触れた、MP4にタグ情報をAtomicPersleyを使って一括で書き込むGUIフロントエンドツールを公開してみました。我が家ルールでの運用を前提にしてあまり汎用性がない作りなので、どれくらい役に立つかわかりませんが、、、

現状、日本で役立たずなiTunes/iPhone/iPadの「テレビ番組」画面を自炊動画で活用した方はお試し下さい。

”画面写真”

 

かんたんな利用イメージはこちらのマニュアルにて。

VBアプリでmy.settingsを上書きアップデート後に引き継ぐ方法

Visual Studio 2008で作成したセットアップで新バージョンを上書きした場合に、my.settingsに保存された設定が初期化されてしまう件に対処する方法を調べました。

ここの掲示板のスレッド(英語)にナイスな情報がありまして、上書きインストールした場合、設定はAppData下に新規に作成され、旧バージョンのものが上書きされるワケではないと。で、それを引き継ぐメソッドがMy.Settings.Upgrade()のようです。メソッドについてはこちらが詳しいです。。

ただ毎回これを実行してしまうのも無駄だし一抹の不安もあるので、上記スレッドに書いてあるコード、

If My.Settings.UpdateRequired Then
           My.Settings.Upgrade()
           My.Settings.UpdateRequired = False
           My.Settings.Save()
End If

では、

  • my.settingsの中に「UpdateRequred」というBoolean値を作っておきTrueにしておく
  • まっさらな設定では当然Trueなのでこのルーチンが実行される
  • Upgradeメソッドを実行し、上記Boolean値をFalseに変更した後保存
  • 2回目移行は実行されない

という仕組みです。

ナイスです!