Hatena::Groupiphone-dev

Ni chicha, ni limona - 平均から抜けられない僕

2009-03-31

[iTunesConnect] Primary Languageは一度設定したら二度と変更できない 09:40  [iTunesConnect] Primary Languageは一度設定したら二度と変更できない - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク -  [iTunesConnect] Primary Languageは一度設定したら二度と変更できない - Ni chicha, ni limona - 平均から抜けられない僕  [iTunesConnect] Primary Languageは一度設定したら二度と変更できない - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

前回の日記でも書いたように、アプリをリリースするときのデフォルト言語は一度設定すると2度と変更できません。

電話でも、メールでも確認したのですが「ダメ、ぜったい無理」だそうです。

皆さんがPrimary Languageを設定するときは、必ずEnglishにしてくださいね。

ウワーン。

[iTunesConnect][Tips] それじゃあ各国のiTunesStoreは何語で表示しているのか 11:21  [iTunesConnect][Tips] それじゃあ各国のiTunesStoreは何語で表示しているのか - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク -  [iTunesConnect][Tips] それじゃあ各国のiTunesStoreは何語で表示しているのか - Ni chicha, ni limona - 平均から抜けられない僕  [iTunesConnect][Tips] それじゃあ各国のiTunesStoreは何語で表示しているのか - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

そんなこんなで泣きを見ているわけですが、私も男です。こんなことに負けていられません。

それならばと、各国のサイトでは何語で表示されるのかを調べてみました。

表示される言語
AustriaEnglish
BelgiumEnglish
CanadaEnglish
SwitzerlandGerman
GermanyGerman
DenmarkEnglish
SpainSpanish
FinlandEnglish
FranceFrench
GreeceEnglish
IrelandEnglish
ItalyItalian
JapanJapanese
LuxembourgEnglish
NetherlandsDutch
NorwayEnglish
PortugalEnglish
SwedenEnglish
United StatesEnglish
AustraliaEnglish
New ZealandEnglish
Rest of WorldEnglish

こんなになってました。

上記の太字で示した言語のローカライズ情報を持っていない場合にPrimary Language(ええ、日本語ですよ)が適用されるわけですね*1

でもこれは言い換えると、以下の言語に対するローカライズを行えばPrimary Languageのハンディキャップをカバーできる、というわけです。

  1. English ←必須!
  2. German
  3. French
  4. Spanish
  5. Italian
  6. Dutch
  7. Rest of World

言語別の優先度もこんな感じなのかしら?*2

最後のは、上の表以外の国に対する言語です。

ちなみにPrimary LanguageでEnglishを選択したときはEnglishとJapaneseの2言語なので、3倍強の作業量。これを多いと見るか少ないと見るかは個人の自由ですが、私は多いと思います。だって、言語を追加するときはPrimaryのコピーで作られるから、英語のスクリーンショットとかアップロードし直しになるんだもん。

ウワーン、めんどくさいよー。

*1:日本語、外国人にはどんなイメージで見えているんだろう?

*2:たぶん暴言。

horigoodhorigood2009/03/31 10:22どうも。
どう言って、なぐさめたらいいのか…。
とりあえず私の場合、日本ローカルルールのゲームなので、paellaさんの情報がなければ日本語にしてしまっていたかも…です。
本当に助かりました。ありがとうございました。
って、全然慰めになってませんね。すいません。

paellapaella2009/03/31 11:23いいえ、ぜんぜん妬んだり疎んだりしていませんよ。
追記でローカライズがどう適用されるのかも書いておきましたので、良かったらどうぞ。

horigoodhorigood2009/03/31 13:14ええと…言いにくいんですが…
表中にはもう1つ、Spanish があるような…。

paellapaella2009/04/01 01:33おおお、ありがとうございます。それと、はてなダイアリーでも同じ記事を書いたら指摘された「Rest of World」が抜けていました。
ローカライズ、やっぱりけっこう大変な作業ですね。面倒くさい・・・

2009-03-29

[][] これからiPhoneアプリを作ろうと思っている人へのアドバイス 17:38  これからiPhoneアプリを作ろうと思っている人へのアドバイス - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク -  これからiPhoneアプリを作ろうと思っている人へのアドバイス - Ni chicha, ni limona - 平均から抜けられない僕  これからiPhoneアプリを作ろうと思っている人へのアドバイス - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

・・・なんて仰々しいタイトルですが、アプリを初めて申請する時に聞かれてくる「あなたのPrimary Languageは?」という質問には絶対にEnglishと答えてください

でないと、

  • 各国に表示されるアプリの説明文に、デフォルトでPrimary Languageを使われてしまう

という事態になります。つまり日本には日本語で、それ以外の国には英語で説明を書こうとしても、Primaryが日本語なので

  1. 日本語の説明文を書く
  2. 英語の説明文をEnglishとしてのローカライズ情報として書く
  3. スペイン語の説明文を英語ローカライズ情報からコピペ
  4. フランス語の説明文を英語ローカライズ情報からコピペ
  5.  :

という、非常に面倒くさいことになるわけです。

ココとか、ココとか、ココで皆さん苦労しています)

しかもこの情報はアカウント全体で有効になってしまい後から変更できない(!!)ため、以降は全アプリで同じことを繰り返さなければいけません。

Primary LanguageでEnglishを指定しておけば、

  1. 英語の説明文を書く
  2. 日本語ローカライズを書く

の2ステップで済むのですが・・・。

はい、私がそれをやってしまいました(泣)。

こんな無駄なことはやっていられないので、とりあえずAppleにプライマリの変更依頼をメールしています。

はたして変更してもらえるかどうか。

→ 2009/03/31追記。「システムの仕様上ダメです」の一点張りでダメでした。今後の面倒くささを考えると涙がちょちょ切れます。

2009-03-28

App Store向けビルド時の注意事項 23:38 App Store向けビルド時の注意事項 - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク - App Store向けビルド時の注意事項 - Ni chicha, ni limona - 平均から抜けられない僕 App Store向けビルド時の注意事項 - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

1点目

アプリ.appはzip圧縮してから送付しましょう。.appは(ご存知のとおり)ディレクトリです。

2点目

Distribution向けでビルドする場合、デジタル証明書にDeveloper用ではなくDistribution用のものを使わなければいけません。でないとアプリをアップロードするときに「認証に失敗しました(Application failed codesign verification)」と言うメッセージが出てしまって先に進めません。

ただ、ここに落とし穴がありました。

ビルド構成で設定する証明書、これは以下の2カ所で設定しておかないといけません*1

  • プロジェクトの「情報を見る」→「コード署名ID」
  • 《重要》ターゲットの「情報を見る」→「コード署名ID」

重要なのが、デフォルトでは後者の設定が使用されてしまうという点。

プロジェクト情報とは異なる設定が行えてしまうので、ついつい忘れてしまいます。そうするとコードサインにDeveloper用の証明書が使われてしまい、アップロードしても不正だと弾かれてしまうはめに。

普通は上位であるプロジェクトの設定が継承されるんでしょうが、ボクの場合はそうなっていなくて、xcodeprojファイルの中にあるproject.pbxprojファイルをテキストファイルで確認して、初めて違いに気付きました。分かりにくい!

以上2点、ボクはハマりまくって数時間うなされていました。

気を付けましょう。

*1:厳密には後者のみ設定すれば良いのですが、念のため。

RINGORINGO2011/02/07 01:31こちらの記事本当に助かりました。
ありがとうございました。

paellapaella2011/02/07 04:22お役に立てて良かったです!

simon64simon642011/05/08 02:02情報ありがとうございました。この記事を見なければ、何時間うなってもわからなかったです。

KenKen2011/06/01 09:38自分も何らかの理由でtargetのinfoが変わって、同様の問題を経験しました。ありがとうございます。

2009-03-24

Subversionでローカライズ用文字列ファイルをcommitするときの注意点 20:06 Subversionでローカライズ用文字列ファイルをcommitするときの注意点 - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク - Subversionでローカライズ用文字列ファイルをcommitするときの注意点 - Ni chicha, ni limona - 平均から抜けられない僕 Subversionでローカライズ用文字列ファイルをcommitするときの注意点 - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

stringsファイルをローカライズするときの文字コードはUTF-16でないといけない。でもSubversionでこれらstringsファイルを扱おうとすると、

  • バイナリファイルとして扱われてしまう
  • UTF-8に変わってしまう

という問題が起きてしまいました。なのでstringsファイルを扱う場合には

$ svn propset svn:mime-type 'text/plain;charset=UTF-16' Localizable.strings

としてからコミットしないといけないようです。豆メモでした。

2009-03-19

EIN取得。 01:11 EIN取得。 - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク - EIN取得。 - Ni chicha, ni limona - 平均から抜けられない僕 EIN取得。 - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

取らなくてもよい、と言う情報もあったりするEINですが、何より自分の尻をひっぱたくため(=根性を入れるため)にもEINを電話で取得しました。

 取らなくても良いという記事:http://iphone.longearth.net/2009/03/04/%E3%80%90app-store%E3%80%91%E6%9C%89%E6%96%99%E3%82%A2%E3%83%97%E3%83%AA%E9%85%8D%E5%B8%83%E3%81%AE%E3%81%9F%E3%82%81%E3%81%ABein%E3%81%AF%E5%BF%85%E8%A6%81%EF%BC%9F/

事前にFaxしておいた情報で、名前と住所をこちらから読み上げて伝えて、即EIN取得完了。

緊張した。でも良い経験でした。

Xcodeのエラーで"This view overlaps one of its siblings”と出る理由と、その対策 23:17 Xcodeのエラーで"This view overlaps one of its siblings”と出る理由と、その対策 - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク - Xcodeのエラーで"This view overlaps one of its siblings”と出る理由と、その対策 - Ni chicha, ni limona - 平均から抜けられない僕 Xcodeのエラーで"This view overlaps one of its siblings”と出る理由と、その対策 - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

Interface Builderを使ってUIを作成していると、ビルドした時の「エラーと警告」欄に以下のメッセージが出ることがあります。

 This view overlaps one of its siblings

これは、UIにおいて兄弟のview同士が重なっているせいで発生している警告(Issue)です。View同士の描画が重複するのでパフォーマンスが落ちますよ、というメッセージという意味なのだそう。

たとえばUIImageViewの背景をセットしていて、その上にUIImageViewで部品画像をセットしていると、このIssueが発生します。UISliderなどでも同様です。

これは正直どうしようも無い問題ですので、気持ち悪くても放っておくのが良いみたいです。もしくはソースコードでビューを配置してエラーを出さなくするなど。「Warningは残してはならない」という気持ちは分かりますが、ぐっとガマンしましょう。

Tips

  • IBでLayout-Show Layout Rectanglesを選択すると、各オブジェクトの領域を視覚化することができます。
  • IBでxibを開き、Infoボタンで情報を見ると、上記エラーが何のオブジェクトで発生しているかを確認することができます(便利!)。

Thanks

今回の件で。物書堂さん(http://www.monokakido.jp/)には有益な情報を色々と教えていただきました。本当にありがとうございました。

この方はiPhoneアプリとしてのUIをとにかく追求していて、どのアプリもものすごく参考になります。こんな考え抜いたソフトを作りたいですし、こんな考え方の出来る開発者になりたいです。

horigoodhorigood2009/03/20 14:21EIN取得おめでとうございます。
その場で即取得っていうのは、いいですねー。私の場合、待たされている4日間が精神的に結構きつかったですから。

paellapaella2009/03/20 22:10ありがとうございました。おかげで取得できました。
W-8BENはiTunesコネクトサイトの準備ができた時の記入用サイトで書かされるみたいです。
それを印刷する必要があるのか分かりませんが、ご参考まで。

caiarmupvbcaiarmupvb2014/05/07 12:12vudzzjqipof.efw, <a href="http://www.pkquvboqzq.com/">npjtlxwoty</a> , [url=http://www.ipjcvxbzoy.com/]hyulotcpdf[/url], http://www.bvwnmvztly.com/ npjtlxwoty

2009-03-15

21:33 2009-03-15 - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク 2009-03-15 - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

NSMutableArrayで高速列挙できませんと怒られたその理由 21:33  NSMutableArrayで高速列挙できませんと怒られたその理由 - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク -  NSMutableArrayで高速列挙できませんと怒られたその理由 - Ni chicha, ni limona - 平均から抜けられない僕  NSMutableArrayで高速列挙できませんと怒られたその理由 - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

NSMutableArrayを[NSMutableArray arrayWithCapacity:kMaxNumber]で初期化して使おうとしたところ、イベント処理でループをしたとたんに「高速列挙のメソッドが無い」と怒られた。

なんでなんで?と調べてみたら、何のことはなくNSMutableArray arrayWithCapacity:はautorelease付きでretainしていたので、初期化したイベントの終了時にrelease&deallocされていただけだった。

今回は、

  • arrayWithCapacityはautoreleaseされる
  • 現在のretainカウントを取得するのはretainCountメッセージ
  • いつreleaseされるか分からずに困った時は、目的の変数を当該クラスの子クラスとして作ってしまい、そこでreleaseメソッドを以下のようにオーバーライドしてあげれば分かる
- (void)release {
	NSLog(@"released(%d -> %d).", [self retainCount], [self retainCount]-1); // 下の[super release]でカウントダウンするため
	[super release];
}

ということを学んだ。

通りすがり通りすがり2009/03/19 14:34自分でalloc&initXXXXしないものはautoreleaseされているというのが基本だと思います。
arrayWithCapacityとかNSStringのstringWithStringのようなクラスメソッドはみんなそうですね。

paellapaella2009/03/20 00:40コメントありがとうございます!
「このメソッドはautoreleaseされている/されていない」の判断が、Objective-C(Cocoaフレームワーク)を学んでいく上での1つの壁になっているような気がします。リファレンスカウンティングは所有権の明示には優れた方法ですが、デメリットもあるかなと感じています。
ありがとうございました。参考にさせてもらいます。

2009-03-12

[iPhone][develop] iPhone開発者必見のサイトを発見(要英語力) 18:54  [iPhone][develop] iPhone開発者必見のサイトを発見(要英語力) - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク -  [iPhone][develop] iPhone開発者必見のサイトを発見(要英語力) - Ni chicha, ni limona - 平均から抜けられない僕  [iPhone][develop] iPhone開発者必見のサイトを発見(要英語力) - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

インターネットサーフィンをしていたら、iPhone関係のリソースが揃ったリンク集を見つけました。

 iPhone Resources:

 http://docs.google.com/Doc?id=dkhkqj4_20dmzf4wgz

開発者のブログ、Twitter、見つけた良記事、レビューサイトなどなど、iPhone開発をしていたら必要になるであろう情報がおよそ全て揃ったサイトです。

すごく有益な情報源なので(随時更新されているみたいですし)、ここでも紹介しておきます。

※このサイトを見つけたときのはてなブックマーク数がまだ0だったんですが、Twitterに流したら一気に広まりました。開発と全然関係ないけれど、みんなが良い情報だと言ってくれて、ちょっと嬉しかったです。これで日本の開発力の底上げになると良いなあ(自分もね)。

2009-03-10

乱数の生成についついrand()関数を使ってしまうけれど 22:08 乱数の生成についついrand()関数を使ってしまうけれど - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク - 乱数の生成についついrand()関数を使ってしまうけれど - Ni chicha, ni limona - 平均から抜けられない僕 乱数の生成についついrand()関数を使ってしまうけれど - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

種をきちんと指定してあげないとアプリの起動から得られる値は常に一定になるみたい。

とりあえずsranddev()でランダムにできるから、それで逃げておこう。

でもキチンとした乱数が必要ならOpenSSLの乱数生成用APIを使うべき。

GracelinGracelin2011/09/16 00:14Glad I've finally found smoetihng I agree with!

nhefmstnhefmst2011/09/16 16:47voV5Qe <a href="http://syawlwzntrei.com/">syawlwzntrei</a>

mqnkgucerpmqnkgucerp2011/09/17 01:15ZDWgG8 , [url=http://pyciesadtgwf.com/]pyciesadtgwf[/url], [link=http://yzpayducjeof.com/]yzpayducjeof[/link], http://zpvjoxokisgq.com/

bkhczgsduejbkhczgsduej2011/09/19 20:34iV9LMQ , [url=http://icrlqoilmfus.com/]icrlqoilmfus[/url], [link=http://genqygjmnqfe.com/]genqygjmnqfe[/link], http://iazqzohyakoy.com/

2009-03-02

[][][] アニメーション中のボタンに対するイベントハンドリングは出来ないみたい 18:25  アニメーション中のボタンに対するイベントハンドリングは出来ないみたい - Ni chicha, ni limona - 平均から抜けられない僕 を含むブックマーク はてなブックマーク -  アニメーション中のボタンに対するイベントハンドリングは出来ないみたい - Ni chicha, ni limona - 平均から抜けられない僕  アニメーション中のボタンに対するイベントハンドリングは出来ないみたい - Ni chicha, ni limona - 平均から抜けられない僕 のブックマークコメント

アニメーション中のボタンに対するイベントハンドリングは出来ないみたい。

UIButtonを定期タイマイベントの中で

	CGContextRef context = UIGraphicsGetCurrentContext();
	[UIView beginAnimations:@"moving" context:context];
	[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
	[UIView setAnimationDuration:1.0];
	float hoge;
	if (flag) {
		hoge = 30.0f;
		flag = NO;
	} else {
		hoge = 160.0f;
		flag = YES;
	}
	[button setCenter:CGPointMake(hoge,hoge)];
	[UIView commitAnimations];

と書いて、実行中に動いているボタンを必死になって押したけどダメでした。

止まっているときはイベントを受信できるけれど。

移動中のボタンの座標はどうなっているのだろう?調べてみたら、

  • アニメーションの開始と共に終了する座標に変化

という状況になっていることが分かった。あくまでアニメーションしているのは画像だけで、フレームそのものは移動前・後の2状態しか持たないんだ。

SexoricoSexorico2012/08/08 22:05Thinking like that is really impresisve

cuoescmmcuoescmm2012/08/09 16:04JNSE3C <a href="http://ekxgubjetmvq.com/">ekxgubjetmvq</a>

ywhfwcywhfwc2012/08/09 20:389tSx51 , [url=http://dcentpyrpihb.com/]dcentpyrpihb[/url], [link=http://bgqnzewryccy.com/]bgqnzewryccy[/link], http://lhrhmtbnulnb.com/

gxnvmtgxnvmt2012/08/10 03:56FuFyvc <a href="http://udhzyfynhrkg.com/">udhzyfynhrkg</a>

zfhfxhzfhfxh2012/08/12 10:07UFWw5u , [url=http://fczciqqjbdxe.com/]fczciqqjbdxe[/url], [link=http://gsgslefqyfvl.com/]gsgslefqyfvl[/link], http://sagehlmbxlsl.com/