2011/07/07

XCode4.2は遅効性の毒ですか?

本記事XCode4.2とは、XCode4.2 Beta版のことです。(2011/10/22 追記)

アプリ公開準備を進めているが、XCode 4.2がヨクワカラナイワーニングを吐いてくれる。
公開用のコードはきれいな身体でアーカイブしたいので、ちょっとこれはなんとかしたい。

と思って、試行錯誤してみたがどうもうまく行かない。
正式版のXCodeの再インストールや、別ディレクトリへのインストールも試してみたが、どういう事かXcode 4.2が出しゃばってきて、古い版のXCode 4が起動しない。(XCode 3.x.xは起動するのに)

おいおい。

ちなみに、ワーニングの内容は下記。
warning: iPhone apps with a deployment target lower than 4.3 should include an armv6 architecture (current IPHONEOS_DEPLOYMENT_TARGET = "4.0", ARCHS = "armv7").
これに付随するワーニングがあと2つ。

一応の解決をみたので、方法だけ簡単に記載する。

まず、XCode 4.2を完全に除去するべく、下記コマンドをコンソールから実行する。
sudo /Developer/Library/uninstall-devtools -mode=all
必ず、XCode 4.2インストール先を指定する事。

実行すると、macの管理者パスワードを要求してくるので、おとなしく入力。
しばらく放置。

コンソールにプロンプトが戻ってきたら、macちゃんを再起動、その後、お好みのXCodeをインストールしなおす。

これで、めでたくワーニングは消えた。

さーて、公開準備を進めよう。

2011/07/01

多言語化の手順メモ(XCode4向け)

アプリ公開に先立って、やっておきたい作業の中に、多言語化がある。
可能な限り文字ではなく、アイコン化を行ってもどうしても文字での説明が必要な部分というのは、なくならない。

だから、広く薄くアプリをばらまこうと思うと、多言語化は必須の作業だと言える。

ここからはワタシの多言語化の手順をまとめておく。

1.アプリを作る。
 これが無くては始まりません。
 とにかく、公開できる直前(スプラッシュなどのオオモノ画像とかは多言語化後に用意する事が多いので、この段階では必須ではない)のアプリまで仕上げる。

2.InterfaceBuilderで作ったxib(nib)ファイルの日本語を含む部分をviewDidLoadで動的に設定するように変更する。
 nibファイルを言語毎に用意する方法もあるが、あまり好きではないので、この方法で。

3.コード中の文字列をNSLocalizedString()の関数に置き換える。
 このとき、第二引数のコメントに、元の文字列を入れておくと、第二、第三言語を設定するときにちょっと楽。

4.Localizable.stringsファイルを生成する。
 コンソール上で、プロジェクトのディレクトリまで移動し、下記のコマンドを実行する。
  genstrings -a $(find . -name "*.m")
 これで、コード中のNSlocalizedString()関数を元にLocalizableS.stringsファイルが生成される。
 
5.言語を追加する。
 Project -> Info -> Localizations -> "+" -> 言語を追加する。
 このとき、nibファイルの多言語版が生成される事があるので、右ペイン、左端のファイルっぽいアイコンのLocalizationから、主言語以外の言語を削除しておく。

6.Localizable.stringsの登録。
 プロジェクトに4.で生成したLocalizable.striongsを追加する。
 この時点で、Localizable.striongsをXCodeで開くと、文字列がバケバケの焦るが落ち着く事。
 右ペインを開き、左端のファイルっぽいアイコンを選択。
 Localizationに、対応する言語を「+」で追加してゆく。
 ここまでくると、ファイルの中身がちゃんと見える。ハズ。

7.言語毎に文言を修正。
 6.の言語を追加すると、対応する言語版のLocalizable.stringsファイルが生成されるので、文字列を各国語に置き換える。
 とにかくがんばって翻訳して置き換える。
 血反吐を吐きながらでも、翻訳する。

8.完了
 コンパイルして、iPhone側の言語設定を替えながら、表示文字が正しく置き換わっている事を確かめる。

おまけ.
 各言語毎にアプリの表示名を変更する場合、infoPlist.stringsに下記の1行を追加する。
  CFBundleDisplayName = "表示名称";

これで、多言語化は完了。

2011/06/29

サコッシュが欲しい。

サコッシュが欲しい。

ハンドルのブルホーン化が完了して、一旦は物欲に歯止めがかかったかなぁ〜などと思っていたが、どうやら甘かったらしい。
ワタシの物欲はとどまる事を知らないよ。(Amazonさんの欲しいモノリストは増加傾向)
唯一のブレーキは財布の中身のみ。
危ないよ。ものすごく危ないよ。

で、最近暑くなってきた事もあって、バックパックを背負っての自転車が億劫になってきた。特に背中発で!
すこーし遠出しようモノなら、ちょっと人様の前でバックパックを降ろせない身体になってしまっている。
こりゃヤバい。
そこで白羽の矢がたったのが「サコッシュ」。
必要最低限の荷物を、必要最低限の袋に詰めて持ち歩く。うん、無駄が無くてイイッ!
前々から気になってはいたが、なかなか手が出なかった。というか、ほかに欲しいものがありすぎて資金が回らなかった。
で、今、資金のめどは相変わらず立っていないが、実質的な要求から非常に欲しい。

早速、google先生にお伺いを立ててみると、サコッシュの自作をされている方が結構いらっしゃる。
考えてみれば、サコッシュなんざただの小袋です。
ちょっとがんばれば、作れるんとちゃいますか?
つまり「お金がないなら自分で作ってしまえばいいじゃない」とそういう事か。

という訳で、サコッシュを作ってゆこうかと思います。
二番煎じどころか、出がらしもいいところだが納得のいくものを作ってゆきたい。

ただ、今の住居にはミシンやら裁縫道具やらが全く無い。その手の作業は夏期休暇の8月半ばをメドに行うとして、それまでに下準備を整えたい。

とりあえず、要件を定義しよう。それからモックアップ(型紙)作り。

「iPhoneアプリ開発からの現実逃避なんかじゃナインダカラネ」