iPhone」カテゴリーアーカイブ

Xcode 3.0/toolchain 0.3用テンプレート

Xcode 3.0/toolchain 0.3用テンプレートですが、ちょこっとやってみたら、ちゃんと動いているみたい。先の記事と同じようにMakefileを書き換えただけです。このテンプレートは、以下のリンクからダウンロードしてください。

Xcode3 iPhone Template for toolchain 0.3

テンプレートは、従来とは置き場所が変わったので、

/Developer/Library/Xcode/Project Templates/Application/

にコピーします。これで、最新バージョンでの開発体制が整うことになります。

xcode3-iphone-template.png

toolchain 0.3は最新のヘッダファイルを揃えているし、Xcode 3.0は便利な機能満載なので、これを使わない手はありませんね。後は、toolchain 0.3の簡単インストーラが登場すればイイのにね!(他人任せ)

ちなみに、従来のtoolchan 0.2用に開発していたXcode 2.0用のプロジェクトも、Makefileを書き換えるだけで、そのまま動作するようです。ヘッダ・ファイルが最新のものになっているので、多少の修正が必要になるかもしれませんね。aka.iphoneの場合は、Makefile以外の修正はナシで大丈夫でした。

当然のことながら、toolchain 0.2な人やXcode 2.xな人はこちらを使ってください。

Leopardでtoolchain 0.3

iPhoneが1.1.1、Mac OS Xが10.5となれば、iPhoneの開発環境も最新版のtoolchain 0.3でなきゃね〜ってことでセットアップしてみました。ただし、toolchain 0.2ならワンタッチ・インストーラがあるので簡単ですが、現時点では自分でtoolchain 0.3をビルドしなければなりません。軟弱者にとってはトホホです。しかも、toolchain 0.2のビルドでは丸3日間ハマリまくったので、イヤな予感(もしくはトラウマ)に満ち溢れていました。

ところが、実際には0.3のビルドは、自分でも驚くくらいスムースでした。総作業時間は3時間くらいだったので、24倍速ですね。3時間と言っても、その大半はソースコードのダウンロード(svn)とコンパイルの時間なので、ターミナルを叩いている時間はちょっとだけです。

iphone-toolchain03.jpg

具体的な手順は、HOWTO build the toolchainに載っています。Leopardでは上手く行かない箇所が2点ありましたが、Issuesにおいて既に解決済みでした。今後のアップデートによって、問題が解消するかもしれませんが、今回のトラブル・シューティングを書いておきます。

【トラブルその1】Build odcctoolsのmakeで、

..//include/libkern/machine/OSByteOrder.h:51: error: redefinition of ‘_OSSwapInt16’

などのエラーが出る。

【解決方法】ターミナルで、

export INCPRIVEXT=”-isysroot /Developer/SDKs/MacOSX10.4u.sdk”

と環境変数を設定した後、makeする。(Issue 31より)

【トラブルその2】Configure and make LLVM-GCC.の
make LLVM_VERSION_INFO=2.0-svn-iphone-dev-0.3-svnで、

/usr/local/bin/arm-apple-darwin-ld: can’t locate file for: -ldylib1.10.5.o

というエラーが出る。

【解決方法】llvm-gcc-4.0-iphone/configureをテキスト・エディタで開き、4970行目の、

FLAGS_FOR_TARGET=

FLAGS_FOR_TARGET=${FLAGS_FOR_TARGET-}

と変更し、ファイル保存した後、configureする。
さらに、ターミナルで、

export FLAGS_FOR_TARGET=”-mmacosx-version-min=10.1″

と環境変数を設定した後、makeする。(Issue 92より)

残るはMakefileの書き換えで、少々試行錯誤した結果、次のような設定でHelloWorldのビルドができるようになりました。これが必要十分にして最適解かどうかは分からないんだけどね。

CC=/usr/local/bin/arm-apple-darwin-gcc
CXX=/usr/local/bin/arm-apple-darwin-g++
CFLAGS=-fsigned-char
LDFLAGS=-lobjc -ObjC -mmacosx-version-min=10.1 -framework CoreFoundation -framework Foundation -framework UIKit -framework LayerKit -framework CoreGraphics -framework GraphicsServices -framework Celestial -framework MusicLibrary
LD=$(CC)

といったあたりで力尽きたので、今日はここまで。さらには、Xcode 3.0用のプロジェクト化なども必要ですが、そのうちね!…ってか、どなたか作ってください。

【追記】Leopardでのtoolchain 0.3の修正版ビルド方法が公開されました。上記のトラルブ・シューティング2点が反映されているようです。これが1日早く公開されてたら、私のビルド時間は1時間くらい短縮できたんじゃないかな(笑)。いずれ、大元の説明も更新されるでしょうね。

AppSnappでWeb経由で脱獄

何でもありの勝手iPhoneワールドだから、少々のことでは驚かなくなってますが(笑)、今回は久々にビックリさせていただきました。なんと、iPhoneまたはiPod touchのSafariからWebサイトにアクセスすれば、ワンタッチで脱獄(Jaibreak)できちゃうAppSnappが登場したからです。これでInstaller.appも同時に入るので、その後は勝手アプリもインストールできちゃいますね。URLは、http://jailbreakme.com/です。

セキュリティ命のWebブラウザから、デバイスの根幹に関わるような操作をしちゃうんだから、これをビックリと言わずして何て言えばいいんでしょう。少し前に問題(標的)になっていたTIFFライブラリの脆弱性も修復するそうだけど、これ自体はどんなメカニズムで動いているのかな?

アクティベーション自体は、iTunesや勝手アクティベータで行なう必要があるものの、その後はコンピュータ要らずになります。Appleは戦略的にコンピュータなしのiPhoneは思い描かないでしょうけど、これはコンピュータ無しの世界へ突入している訳です。未来ですね〜これだからiPhoneは面白い!

US特派員は既に2台とも脱獄させているので、敢えて再トライする気がないみたいです。なので、Webサイトのスクリーン・ショットを送ってもらいました。ちなみに、このサイトはiPhone/iPod touch以外からアクセスした場合は、表示が異なります。

iphone-appsnapp.png

【追記】その後、FAQページも追加されました。スクリーン・キャプチャを撮り直すのも面倒なので、各自確認してください。

【追記】そのFAQから推測するに、AppSnappもTIFFライブラリの脆弱性を利用しているみたいです。

iPhoneで純正日本語入力

US特派員は、2台目のiPhoneをバージョン1.1.1にアップデートしたそうです。それで、我々的に気になるのは日本語入力機能ですね。デフォルトでは限定的なんだけど、プロパティをひとつ変更するだけで、システム・ワイドに日本語入力が可能になるそうです。日本語だけでなく、ハングルや中文など合計17言語がサポートとか。

そのプロパティとは、/System/Library/CoreServices/SpringBoard.app/M68AP.plistにあるRootのcapabilitiesのinternationalで、これをYESにするだけ。後は、iPhoneをリスタートして、SettingsのGeneralでInternationalやKeyboardを好きなように設定してください。

m68applist.png

これでメデタシメデタシですけど、何故これがオフになっているのかが不可解。現時点でiPhoneを販売しているのがUSだけ(もうすぐ英独仏)とは言え、USにも英語以外の言語を使いたい人は沢山いるでしょうからね。わざわざオフにする理由が分かりません。

ともあれ、純正の日本語入力は結構快適です。変換効率も上々じゃないでしょうか? いわゆるケータイで日本語入力をしたことがないので、他機種との比較はできませんけどね。目的の言葉が予測候補に現れれば、さっさと確定するのがイイみたいです(当たり前?)。

それから、変換候補を表示するエリアがあるために、キーの縦幅が2/3程度に縮小される(横幅は同じ)ので、狭苦しい印象を受けるものの、意外とタイプ間違いはないですね。aka.iphoneのボタン・デザインを試行錯誤していた時に実感しましたが、横幅が狭いとタッチ・ミスが多くなりますが、縦幅は狭めでも大丈夫みたいです。

写真は、次期aka.iphoneに日本語を入力しているところ。IPアドレス欄だから、まったく意味がないです(笑)。自分のアプリでも日本語入力ができる(=システム・ワイドに使える)確認ってことで。

iphone-japanese-input.jpg

【追記】問い合わせがあったので追記。US特派員は、できるだけ古いと思われるパッケージを2週間程前に購入したそうで、実際のFirmwareは1.0.1だったとか。結局1.1.1にアップデートしたのだから、どのバージョンでも良かった訳ですが、当時は勝手アプリが起動せず、暗雲が立ちこめていましたからね。

iPhoneのヘッダー情報

Appleの公式SDKはまだまだ先の話ですが、勝手開発チームの進撃は続いているようで、「iPhone Headers Documentation」が公開されました。これまでの勝手SDKでは、class-dumpでドドっと作られた.hファイルが単純に詰め込まれていましたが、これらのヘッダー情報が整理整頓され、検索機能などが付いたWebインターフェースとしてまとめられています。

iphone-headers-doc.png

Firmware 1.1.1からのヘッダーらしいので最新ピカピカだし、欲しかったクラス・ツリーもあります。知らなかったクラスや見落としていたクラスが恐ろしく沢山ありますね。すべてを読み解くには膨大な量ですが、宝の山であることは間違いないです。これでまた夜も眠れない人が続出しているハズ。

ちなみに、この情報はiPhone勝手ワールドで一躍有名になった女流計算機科学者のErica Sadun氏のサイトにあります。トップページのブログも要チェックね。

Phone Fingersで指紋ナシ

米Gizmodの記事で知りましたが、Phone Fingersなる製品があるそうです。その記事では茶化してますけど、指にゴム(?)製カバーを付けることで、iPhoneに指紋が残らないよ〜ってことらしいです。25ピースでUS$9.90、お試し版5ピースならUS$3.00、サイズはSmallからExtra Largeまでの4種類。

phone-fingers.jpg

これを常時付けるのは、ラバー・フェチ以外の人には抵抗がありますよね。でも、こいつの先端が尖っているものが欲しいです。先端が尖っていたら、細かなポインティングができますから、少なくとも演奏用に使いたい。どなたか、作ってください(懇願)。

ご存知のように、iPhoneは指(皮膚)でないと操作できないので、爪を尖らせてもダメなんですね。以前のDSPBoxプロジェクトでは、圧力感知型のタッチ・スクリーンを使っていたので、琴のツメ(山田流がオススメ)を削って使っていました。だから、iPhone細密ポインティング用アタッチメントって需要があると思うな〜(ないか?)。

iPhone公式SDKは来年2月

AppleがiPhoneのSDKを来年2月に提供すると発表しました。追伸ながら(笑)iPod touchでも同様となっています。iPhone Human Interface Guidelinesで予見されていたので、ビックリはしませんが、ついに!とうとう!待ってた!という感じです(でも、Leopardには間に合わなかったのでガッカリ)。

2月までかかる理由として、オープンなプラットフォームを提供することと、ウィルスやマルウェアからプラットフォームを守ることとを両立させるために、必要な作業があるからだとしています。

まぁ、それはそうなんでしょうけど、ガチガチのサンドボックスを作られても困るなぁ。あるいは、Nokiaの例を挙げているように、デジタル署名認証になって契約や審査を経なければ公開できない(動作しない)ってことになるのかも。「an advanced system」がどうなるか、お手並み拝見ですね。

iphone-sdk-announcement.gif

ともあれ、私は2月までiPhone関係の開発を中断します(笑)。

【追記】ちゃんと伏線がありました。コレですね。特に2番目の「署名入りアプリケーション」はピタリと照準が合ってます。

iNdependence 1.2.2

Appleによる勝手iPhoneレンガ化作戦Firmware 1.1.1に対抗すべく、アクティベーション&脱獄(およびイロイロ)ツールのiNdependece 1.2.2がリリースされました。同様のコマンドライン手法はすでに公開されていましたが、今後はGUIアプリケーションとして手軽に実行できますね。もちろん、各説明を熟読した上で自己責任で試してください。

independence122.png

SIMロック解除ツールanySIM 1.1.1のリリースももうすぐだそうです。Steve Jobs自身が自虐的に「イタチごっこ(a cat-and-mouse game)」と言うように、不毛な労力の繰り返し第2回戦もほぼ終了って感じですかね。それに、ウィルス・スパム開発者と防御フィルタ開発者が根っこでは繋がっているという伝説(?)がありますが、同じような妄想が沸き起こっちゃいます。はい、妄想ですよね、根拠はありません(笑)。

ちなみに、US特派員は2台目のiPhoneを手に入れたらしいので、1台は1.1.1用の実験機にしようかと考えているそうです。ただ、無茶苦茶忙しいので、当面1.0.2でも構わないとも言っていました。

Preview of next aka.iphone

Here’s a preview of the next version of aka.iphone.
I can’t say about the release schedule but it will have:
– Multiple screens
– Transition effect
– Accelerometer
– XY slider
– Vertical and horizontal sliders
– Large and small buttons
– OSC port configuration
– Sending and Receiving values
– New protocol (over OSC)
– Multiple iPhone support

– No multi-touch support
– No GUI configuration

akaiphone3-preview.jpg

aka.iphone / experiment 2に最小限の機能しか持たせていないせいだと思いますが、いろいろと問い合わせが多いので、次期aka.iphoneはこんな雰囲気ってのを載せておきます。

iWPhone WordPress Plugin and Theme

iPhoneのSafariでは、このサイトの表示がチョイとおかしい(=デフォルト表示では左右余白が多過ぎる)んですが、その対処となる(と思われる)WordPress用プラグインがiWPhone WordPress Plugin and Themeです。結構早い時期から出ていたみたいですが、最近になって気が付きました。

iwphone-wordpress-plugin.jpg

このプラグインは、iPhoneやiPod touchに最適な表示になるようコンテンツを整形したり、専用テーマに切り替えたり、大きな画像を縮小したりといったことを、自動的に行なってくれるみたいです。他のブラウザに対しては影響を与えず、通常のフォーマットやテーマとして動作するそうです。

ただ、このプラグインはWordPress 2.2.1対応で、このサイトはWordPress 2.0.7なのですね。WordPressをバージョンアップすればいいんだけど、その場しのぎでイロイロと手を加えているので、少々面倒かもしれないんです。なので、Leopardサーバがリリースされた頃に、マシンも入れ替えて総リフレッシュしたいなって思っています。

ともあれ、WordPress 2.2系をお使いのサーバ管理者様は、iWPhoneプラグインをインストールされるといいんじゃないでしょうか?(って旧聞にしてジョーシキかも?)