2011/03/31

UserLocationには障るべからず

MKMapViewにピンを刺して遊んでいると、
刺しすぎたピンを削除したい衝動に駆られる事がある。
それこそちゃぶ台返しのごとく、一気に全部ひっくり返したいほど。

そんなときは、以下のコードが有効だ。


[mapView removeAnnotations:mapView.annotations]; (1)

これでMKMapViewの上から邪魔っけなピンは一掃される。
めでたしメデタシ……ではない。

このときもし、[mapView setShowUserLocation:YES]; (2)を実行済みであった場合、
ちょっと面倒な事が発生したので、備忘録として記載する。

まず、結論から言うと、(1)を実行した場合、現在位置の青点は、以降MKMapView上に表示されない。
消えたものは、もう一度設定してやればいいだろうと、
再度、(2)を実行しても、MKMapViewはヘソを曲げてしまって現在地は表示されなかった。

最初の対処は、mapView.annotationsの中から、userLocationを司るインスタンスを取り出して、再度[mapView addAnnotation:userLocation];で登録し直す方法。
だが、一度削除されたUserLocationはどうやら地図上への再表示がウマく行かないらしい。

ならば、(1)を展開し、以下のコードで実行したところ、
ウマく行った。


for ( id<MKAnnotation> annotation in mapView.annotations ) {
  if ( [annotation isKindOfClass:[MKUserLocation class]] )continue;
  [mapView removeAnnotation:annotation];
}

要はUserLocationは削除しないというだけ。

実際は削除したUserLocationを復活させる方法があるのかもしれないが、
そもそも自分が登録した訳でもないインスタンスを勝手に削除してしまうというのは、
ちょっとイタダケナイので、この方法でとりあえずは納得しておく。

2011/03/28

しまなみ海道縦走計画(物欲一覧)

しまなみ海道の縦走にあたり現在のマイ自転車の装備では、
ちょっと足りない部分がある事が判ってきた。

基本、通勤の足+休日のポタリング用の装備なのだが、
それではちょっと足りない装備がある。

まず、安全装備であるところのヘルメットが無い。
車道を走るのが基本である自転車では、これは一歩間違えると命取りである。
自分が間違えなくても、車側でちょいと間違えただけで、エライ目にあうのは自転車側だ。

次に、各種修理セットだ。
長距離ライドの場合は必須なのだが、今まではアパートを中心に行動していたために、
「いざとなれば、引きずってでも帰れる」という気分で、
予備のチューブや、工具一式は部屋に置きっぱなしである。
おまけに、スプロケ外しとかは持っているくせに、タイヤレバーは持っていない(汗
遠出するとなれば、最低限、対パンク用装備一式サドルバックにでも詰め込んでく必要がある。
もちろんサドルバッグも未装備だ。

さらに、アパートから起点となる尾道まで、公共交通機関を使用する事が必要になる。
このため輪行バッグが必須になってくる。

この時点で、足りない装備は
・ヘルメット
・サングラス
・タイヤレバー
・パンク修理キット
・サドルバッグ
・輪行バッグ
・輪行バッグ使用時の保護具

うっ、概算だけで諭吉さんが何人か旅立ってゆく…
できれば、現在のフラットバーのハンドル周りを、ブルホーン化したいし、
長距離を走るのであれば、最低限パッド入りのインナーは買っておかないと、
後半死んでしまうのが目に見えている。

これに、交通費+宿泊費(今治にて一泊予定)を含めると………
冷静に考えだすと、計画が頓挫しそうなので、金勘定はこの辺にしておく。

2011/03/24

しまなみ海道が呼んでいる

サイクリング雑誌を読んでいると、しばしば目にするのが記者おすすめのサイクリングコースの記事。
大半は首都圏近圏を中心にした記事で、地方にすんでいるワタシは指をくわえて眺めるだけ…。
しかし、そんな中にサンゼンと輝く記事がっ!
それが「しまなみ海道」。

本州四国連絡橋の最も九州よりの橋。
そこには自動車道に併設された自”転”車道があるとか。
幸いワタシは今、近畿在住。広島なら遠くない(!)

ならば、いくしか無いでしょう。しまなみ海道。

だがしかし、思い立ってもすぐにはいけない。

何しろ、しまなみ海道の本州側の起点「尾道」までの足。
全行程70km、高低差60〜70mを安全に走りきる装備。
(何しろ海の上に架かっている橋だから、船舶との干渉をさけるために、無駄に高いところにかかっている。)
そして、四国側の起点、今治からの帰りの算段。

これらをクリアにする必要がある。
今後は、息抜きがてら本格的な夏がくる前になんとか、実行に移せるように計画を練っていく。

2011/03/18

UnlockMe 1.0.0 リリースしました。

iPhone/iPod touch向けパズルゲーム、
UnlockMe 1.0.0 をリリースしました。


ダイヤルを一つづつ回して、鍵が外れるか試していきましょう。
暗証番号の桁数は 2〜6桁まで変更可能。
どうしてもだめな場合は、ヒントを最大二桁まで表示可能です。

がんばって、チェーンロックを外しましょう。

2011/03/17

XCode4 移行 備忘録

XCode4に乗り換えて、もうそろそろ一週間。

レイアウトや設定の変更に戸惑いながらも、なんとか少しづつなれて来た…とおもうので、ここらで備忘録としてXCode3→4をに移行するにあたって戸惑った点を軽くまとめておく。

1.Debug/Release(構成)の切り替え
Debug/Releaseだけでなく、(XCode3でいうところの)構成の変更方法はちょっと深い所に移動していた。
ToolBarのSchemeプルダウン、下の方の「Edit Scheme ...」を選択。
「Run XXX.app」を選択、「Info」タブ下の「Build Configuration」の値を変更すれば、対応するコンパイルオプションでビルドを実行できる。

2.では、どうやって「Build Configuration」の値を追加(もしくは削除)するか?
これまた、ずいぶんを深い場所に移動している。
「Navigators」の「Project」を表示し、プロジェクトアイコンを選択する。
開いた「Project Editor」の「PROJECT」を選択し、「Info」タブ下の「Configurations」の「+」「-」ボタンで構成の追加/削除が可能。
追加には、コピーもとをドレにするか選択が必要になるので、よしなに。

補足:
「Navigators」の「Project」を表示し、プロジェクトアイコンを選択した状態で、
メニューバーの「Editor」を選択すると、「Add Configuration」で、構成を追加できる。
(削除はできない。)

それにしても、XCode4日本語化しないかな。

2011/03/13

「In Review」っていつまでですか?

東北地方の地震があったり、自宅近くでも地震があったりと、
落ち着かない週末を過ごしていたら、
iTune Connectからメールが来ているのを見逃していた。

内容は
「申請中のアプリのステータスがアップデートされたよ」
という事で、今まで
Waiting For Review」だったものが、「in Review」に変わった。

いままでもちょっとドキドキしていたのだが、
どうやら、これからが本番らしい。

とはいえ、今更ナニができるわけでもないので、
こっちはこっちで粛々と次のアプリの仕込みを
すすめましょう。

ドキドキ

2011/03/10

XCode4 frameworkの追加方法

XCode4でのframeworkの追加方法が判明したので、
簡単にまとめる。

下の画像の(1)〜(5)の順に選択して、お望みのframeworkを追加すればOK。
(丸付き文字は機種依存の恐れがあるので、ここでは括弧表記)

(3)は「Build Phases」
(4)は「Link Binary With Libraries (n items) 」



なんだか疲れたので、今日はこれにて打ち止め。



XCode4 がやってきた。

仕事から帰ってきてみれば iOS 4.3がリリースされたいた。
予定では、3/11と聴いていたので1日前倒しということだろうか?

ということは、同時に開発環境であるXCodeもバージョンアップしたということで、
XCode3.2.6 and iOS SDK 4.3 が正式リリースだなぁ〜♪
などと、我らがiOS Dev Centerへおもむいていてみた。

だが、そこで待っていたのは、
「XCode 4 and iOS SDK 4.3」の文字……
XCode4がベータ提供されていたのは知っていたが、
まさかこのタイミングで正式版がリリースされるとは!
iOS 5あたりと一緒にリリースかと思っていましたよAppleさん。
(根拠はないですが……)

早速、iTunesとiOS4.3をアップデートしつつ、
XCode 4をダウンロード。
4ギガが落ちてくるのを飯を食いながら待ち、
インストール中に風呂を済ませる。

こざっぱりしたところで、XCode4さんとご対面だ、
噂では、ずいぶんとUIが変わっているらしいですが……

な、何ですかこれは…………

確かにXCode3の面影はあるが、これは全く別物だ。
interface BuilderがXCode内に取り込まれた事なんて些末なことだ。
そもそも昨日まで使っていた、そろそろなじんできたXCode3.x.xのUIは
所々に面影を残す程度しかない。(しかも中途半端にorz)


いやいや、見た目で判断してはいけない、
まずは触ってみなければっ。

手始めに、小規模なテストアプリを組んでみる。
ちょっと勉強がてら、GameKitを触ってみようかしらん、
などとプロジェクトを新規作成、
プロジェクトの作成は、今までと違和感は少ない。
強いていうなら、UnitTestsを最初からプロジェクトに含ませることができるようになっている点か?

プロジェクトを開始し、まずはframeworkを追加せにゃぁ〜
とframeworkのグループを触ってみるが、
frameworkの追加はどうするんだ?
Ctrl+クリックのメニューにそれらしい文言が無い。
片っ端から当たってみても、どれもはずれだ。
まさかこんなところでつまづくとは思わなかった。

現在も触っているが、frameworkの追加の方法は未だに不明(T-T)

いろいろ触っている最中だが、
なんだかこのツールで開発できる気がしないのは、
単に慣れていないせいだと思いたい。

そしてなにより、このXCode4メモりをバカ食いするようだ、
気がつけばmacの動きが重い気がして確認してみると、XCode4だけで700Mもメモリを喰っていた。
3の頃は体感として重いと思ったことはなかったので、これほど喰ってはいなかったのだろう。

はぁ〜〜

渋々だが、今後を考えると、
今のうちにXCode4に慣れておいた方が良さそうなので、
このまましばらく使ってみる事にする。


そうそう、XCode3.2.6は無かった事になった訳ではないらしい。
XCode4のダウンロードボタンの下にひっそりと、
「XCode 3」のダウンロードリンクが存在している。
どうしても気に入らなければ、こっちに戻る事も考えつつ、
標準2Gのメモリを4Gに増強した方が、いろいろと幸せか? と思案中。

アプリ登録までのハマりどころ。

アプリケーションのアップロードまで、
いくつかハマりそうな箇所があったので、
記載しておく。


ただし、これは2011/03/09時点での情報であり、
時間経過とともに、劣化することがある。
正しい情報は、iTune Connectのドキュメントを参照のこと。
(懇切丁寧に、日本語版もある)


ハマりどころ。
・EULAとは何ぞや?
・release版アプリのワーニングの消し方。
・iTune Connectへのアプリのアップロード方法

1.
まず「EULA」とは… google先生にお伺いをたてるのが吉。
iTune Connectでは、標準のEULAに独自の文言を追加できるらしい。
今回は、難しいことは何もしていないので、標準EULAのみで登録。

2.
次に、release版でコンパイルすると現れる下記のワーニング。


Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate. (-19011)


せっかく登録するアプリなら、きれいな身体で送り出したい。
だが、このワーニングはコード上でナニをドウしても消えない。
なぜなら、プロビジョニングファイルの問題だからだ。
通常、開発過程では、developer権限のプロビジョニングファイルを使用しているが、
配布時にはそうはいかない。
Distribution権限のプロビジョニングファイルが必要である。
入手先は、我らが「iOS Dev Center」「Provisioning Portal」
開発過程でお世話になっているのは、「Development」のタブだが、
その隣に「Distribution」のタブが存在する。
ここの「New Profile」でDistribution権限のプロビジョニングファイルを作成する。
作成方法はDeveloperとほぼ同じなのでカツアイ。


後は、DownloadしてXCodeに認識させ、
「プロジェクト」のコード署名IDを設定してやれば、解決するはず。


3.
iTune Connectへのアプリケーションファイルのアップロードは、
専用のソフト「Application Loader」を用いて行う。
ただし、このソフトはAppleからダウンロードできない。
3.2以降の場合、SDK内に同梱されている。
XCodeの標準的なインストール先であれば、
「/Developer/Applications/Utilities/」に
appファイルが格納されている。


あとはApplication Loaderにお任せ。
ただし、このとき、iTune Connectの
登録しようとしているアプリの状態(「Status History」のリンク先)が
「Waiting For Upload」になっていることが必要。


ついでに、この「Application Loader」
生のappファイルは送信ファイルとして選択できない
release版のappファイルをzipで固めたものが必要になる。
これで準備完了、最後に「Send」ボタンを押せば、
「Status History」に「Upload Received」と「Waiting For Review」が追加され
無事Appleの審査にかけられることになる。


さてさて、あとはリジェクトを食らわないことを祈りつつ、
次のアプリに着手ちゃくしゅ。

2011/03/09

アプリサポート用のWebページは必須です。

mac bookを購入して1ヶ月。
ようやくアプリらしいアプリが一本仕上がったので、
早速 iTune Connectに申請をかけようと思ったら、

アプリサポート用のWebページは必須です

とツレナイお言葉をいただいた。

大慌てで、このブログを立ち上げる。

今後は、開発したアプリのサポート、iPhoneアプリ開発のメモ、
日々のいろいろをアップしてゆく場になるだろう。

なるべくマメに更新してゆきたい。