eclipse 3.5 + Parallels Desktop 5.0 + CentOS 5.3 x64

On 2010 年 1 月 19 日, in Apache, Mac OS X, by まこ

ローカル開発環境を表題の様にする際に引っかかったメモ。

OSX環境にXAMPPとか入れるのすごく嫌なので、Parallels DesktopにLinux入れてそこにApacheとMysqlとPHP入れればいいんでない?って事で。

1. Parallels DesktopにCentOS入れる。これは特に問題なく。

linux text

2. Parallelsにフォルダ共有機能があるからeclipseのworkspaceを共有してApacheのhtdocsにシンボリックリンク張ればよくね?

3. X-windowとか入ってないとParallels Tools(フォルダ共有機能とかを提供するドライバみたいなもの)がインストールできない。ひどい。

4. 嫌々GUIインストール。

5. CentOSインストール完了。あれ、Paralles Toolsがインストールできない。なんでだ。

6. 気晴らしにアプリケーションアップデートしたらParallesl Toolsインストールできた。何かのモジュールが足りなかった模様。何かは忘れた。

7. 共有フォルダは

/media/psf

らしい。

ln -s /media/psf/workspace /var/www/

8. あるぇー?forbiddenだぞ。試しに

ln -s /media /var/www/

アクセスできる。

9. まさかParallelsの共有フォルダはrootじゃないとアクセスできない?

sudo -u hoge ls /media/psf

問題ないじゃないか。なんだこれ。

10. とりあえず(セキュリティ的に当然だが)Apacheはそのままだとrootで起動できないので環境変数CFLAGSに-DBIG_SECURITY_HOLE付けた状態でApacheリコンパイル。

env CFLAGS=”-DBIG_SECURITY_HOLE” \

./configure –prefix=/usr/local/apache-2.2.3 –with-ssl=/usr/local/ssl –enable-so –enable-shared –enable-rewrite=shared –enable-ssl=shared

11. root:rootでApache起動。ローカルじゃなきゃ出来ない暴挙。

User=root

Group=root

12. 無事ブラウザからhttp://hogehoge/psf閲覧できました。

もしかしてCentOS GUIログインをroot以外にしたら共有フォルダそのユーザで見れたのかもしれないけどとりあえずはこれでいいや。ローカルだし。

Tagged with:  

Linux のログイン画面の解像度を変更

On 2010 年 1 月 15 日, in Linux, by まこ

/etc/X11/xorg.conf

Section “Screen”

SubSection “Display”

Virtual <holizontal pixels> <vertical pixels>

EndSubSection

EndSection

Tagged with:  
Tagged with:  

Objective-C のクラスでクラスメソッドとインスタンスメソッドの定義 ・ 実装は、

+ foo;
+ foo() {

}

– bar;
– bar() {

}

となる。

クラスメソッドは静的なメソッドでインスタンスを生成せずに直接コールできる。
他言語の static な function と同義。当然メンバ変数は使えない。

id hoge = [ NSString alloc ];

インスタンスメソッドはその名の通りインスタンスを生成してからそのインスタンスに対してコールできる。

hoge = [ hoge init ];

Tagged with:  

name って名前の NSString インスタンスを作って遊ぶ。

NSString *name; // name 変数を NSString ( 文字列 ) クラスの型として定義。オブジェクト用変数 ( インスタンス ) はポインタで。
name = [ NSString alloc ]; // name に NSString を生成。メソッドを呼ぶ場合はインスタンス名の後ろにスペース空けてメソッド名。
name = [ name init ]; // name を初期化。 init メソッドはどうやらインスタンス自身を初期化したインスタンスを返す模様。
name = @”mako”; // name インスタンスに文字列定数 “mako” のアドレス ( @ ) を指定。文字列定数 “mako” の実体は NSString 型としてどこかメモリ上にあるらしい。回りくどい。
NSLog( @”中身 : %@ / 長さ : %d”, name, [ name length ] ); // NSLog は printf() みたいなもの。インスタンスを出力 ( 他の言語で言う toString とかみたいなもの ? ) できる “%@” が使える。他のフォーマットとかはこことか参照。
NSLog( @”%d”, [ name compare: @”mako” ] ); // メソッドの引数は ” : ” で連結。 [ name xxx: @”foo”: keyword1 @”bar”: keyword2 @”hoge” … ]; みたいな。

ちなみにオブジェクト操作を示す “[ … ]” は、その結果がオブジェクトであればネストできる。
例えば上記のサンプルコードだと、

NSString *name;
name = [ [ NSString alloc ] init ];

って感じで。

ちなみに、 型を指定しないインスタンスも作れるみたい。

id name; // id がバリアント型 ( って Objective-C でも言うのか ? ) インスタンス。たぶんこの後に alloc した時点で型が確定するの

だろう。あんまり使いたくないし、使う理由も無いと思うけど。

あと、生成したオブジェクトを解放するのは、


[ name release ];

だそうな。これの管理がどうなってるかはこのへん参照。蛇足だけど自動的に解放するよう宣言する事もできる。


name = [ [ [ NSString alloc ] init ] autorelease ];

Tagged with:  

あれからいろいろ Google 先生に教えを請うてもぞもぞしてたんだけど、プロビジョニングファイルを実機デバイスの登録からじゃなく、直接 ( ファイルダをブルクリックで ) Xcode に読み込んだら使えるようになった…。

なんかよくわからんなぁ。
各種設定の確立した方法が知りたい。

とりあえず現状 ( SDK 3.0 GM ) 自分の中で確定してる手順を以下に。

— 手順 ここから —
1. OSX のキーチェーンアクセスアプリで証明書要求ファイル ( CertificateSigningRequest.certSigningRequest ) を作成。
2. iDPP で [1.] の証明書要求ファイルを登録して証明書 ( AppleWWDRCA.cer, developer_identity.cer ) を取得。
3. OSX のキーチェーンアクセスアプリに [2.] で取得した証明書をログインで設定。
4. iDPP でデバッグに使うデバイスを登録。
5. iDPP で AppID を発行。
6. iDPP でプロビジョニングファイルを作成、取得。
7. Xcode に [6.] で取得したプロビジョニングファイルを登録。
8. Xcode のプロジェクト設定で [7.] で設定したプロビジョニングファイルをプロジェクトに関連付け。
9. 実機用ビルドで実機に転送してデバッグ。
— 手順 ここまで —

Tagged with:  

iPhone SDK 3.0 GM で証明書が使えない

On 2009 年 6 月 14 日, in iPhone, Xcode, by まこ

近々 iPhone OS も 3.0 になり、 iPhone 3G [S] が発売になる事や、 iDP から 「 デベロッパなんだから OS 3.0 で動くようにアプリ作れよ 」 的なメールとか来てたので仕方なく iPhone の OS を 3.0 GM にアップして、 iPhone SDK も 3.0 GM にアップして開発してたんだけど…実機デバッグビルドしたら証明書が無効ですエラーになるじゃねーかおい。ちなみに証明書を iDP で作り直したり実機に入れ直してみたりしてみたけどダメ。

ちらっと Google 先生に訊いたところどうや他でも同様な事になってる blog とかちらほら…。 仮にも GM ( Gold Master ) の名を冠しているんだから…頼むよ Apple さん。

SDK と iPhone 2.2.1 にもどさにゃいかんのか…?

orz

Tagged with:  

iPhone でXML

On 2009 年 6 月 5 日, in iPhone, by まこ

iPhone で XML を利用する場合…またエミュレータと実機で差違があるんですが…。

・ iPhone エミュレータ : NSXMLDocument や NSXMLElement みたいな NSXMLNode クラスのサブクラスが利用可能。
・ iPhone 実機 : NSXMLParser クラスまで使える。

※ NSXMLParser は NSXMLNode のスーパークラス。

…うへえ。

Tagged with:  

iPhone Developer Program

On 2009 年 6 月 5 日, in iPhone, by まこ

を、申請しますた。

とりあえずひどく手間かかるので手続きメモ。

— ここから iPhone Developer Program の登録 —

1. iPhone SDK ( with Xcode ) をダウンロードする為の Apple Developer Connection アカウントを 「 US アカウントで 」 発行。 ( ※ US アカウントじゃない ( 既存の 日本語 iTunes Store アカウントとかだ ) と名前とかが文字化けしてエラーになる。 )

2. iPhone Developer Program を [ 1. ] で作ったアカウントで購入手続き。

3. 途中で日本語版 iTunes Store に切り替わるので、決済。

4. [ 1. ] の US アカウントで登録した半角アルファベットな情報だと日本語 iTunes Store では 「 フリガナ 」 と 「 都道府県 」 の欄が エラーになるので、それぞれを全角で入力。 ( 例 : フリガナ → ヤマダ タロウ / 都道府県 → 東京都 )

5. 決済が完了してアクティベート画面。後に送られてくるメール待ち。

6. 決済完了 & 注文確認しましたよメールが届くので次はライセンス発行完了メール待ち。

7. アクティベート用のライセンス ID がメールで届くので、それを使ってアクティベート。

8. 予定通り ( かなりの確率で ) この ( ↓ )
e38394e382afe38381e383a3-1
エラーが出るので、 iTunes Store の iPhone Developer Program を購入した履歴画面をスクリーンショット撮って、 Apple にアクティベートでエラー出たので何とか汁メールに添付して送信。

9. しばらくしたら Apple からアクティベート ID 調整したから再度アクティベートしてみて的メールが届くので、 [ 7. ] で届いてたメールからもっかいアクティベートする。

10. アクティベートが完了後、この
e38394e382afe38381e383a3-11
画面に遷移するので、これでやっと iPhone Developer Program に登録完了らしい。ちなみに iPhone Dev Center も右カラムにそれっぽいのが追加されてる。

— ここまで iPhone Developer Program の登録 —

— ここから実機デバッグの手順 —

11. 証明書を発行する。

11.1. 開発機 ( Mac ) で 「 キーチェーンアクセス 」を起動する。

11.2. 「 キーチェーンアクセス 」アプリのメニューから 「 キーチェーン 」 → 「 証明書アシスタント 」 → 「 証明局に証明書を要求… 」 を選択。

11.3. 証明書アシスタントウィンドウが表示されるので、以下の設定をして 「 続ける 」 ボタンを押下。
・ ユーザーのメールアドレス : iPhone Developers Program を取得したメールアドレス ( Apple ID )
・ コモンネーム : iPhone Developers Program を取得した氏名 ( 例 : Taro Yamada )
・ CA のメールアドレス : 必須って書いてあるけど空欄でいいみたい。
・ 要求の処理 : ディスクに保存 , 鍵ペア情報を指定
e38394e382afe38381e383a3-12

11.4. 鍵ペア情報を聞かれるので、
・ 鍵のサイズ : 2048ビット
・ アルゴリズム : RSA
を指定して続けると ‘CertificateSigningRequest.certSigningRequest’ ってファイルが保存される。
e38394e382afe38381e383a3-2

12. iPhone Developer Program に証明書の登録

12.1. iPhone Developer Program Portal の左カラムにある Certificates を開く。

12.2. Development タブで 「 Request Certificate 」 ボタンを押下。

12.3. Create iPhone Developer Certificate 画面が表示されるので、 [ 11. ] で取得した証明書ファイルを選択して Submit 。

12.4. 登録した証明書が一覧に表示されるので、 Approve ボタンを押下。

12.5. しばらく待ってリロードすると登録した証明書の Status が Issued になってるので一覧の Action カラムにある Download ボタンを押下して ‘developer_identity.cer’ キーチェーンファイルをダウンロード。

12.6. 証明書リストの下に ‘*If you do not have the WWDR intermediate certificate installed, click here to download now.’ と書かれている所から ‘AppleWWDRCA.cer’ キーチェインファイルもダウンロード。

13. キーチェーンアクセスに [ 12. ] で取得したキーチェインファイル 2 つを登録。 ( それぞれを開けば登録できる )

14. デバッグ用の iPhone / iPod Touch の登録

14.1. iPhone Developers Program Portal の左カラムにある Devices を開く。

14.2. Manage タブで 「 Add Device 」 ボタンを押下。

14.3. Add Device 画面が表示されるので以下の設定で Submit 。
・ Device Name : 適当。 foobar’s iPhone とかで。
・ Device ID ( 40 hex characters ) : iPhone を開発機に接続した状態で xcode を起動し、オーガナイザウィンドウを開いて 該当のデバイス情報の Identifier の欄の 16 進 40 バイトの文字列。

15. App ID の登録

15.1. iPhone Developer Program Portal の左カラムにある App IDs を開く。

15.2. App IDs 画面から 「 Add ID 」 ボタンを押下。

15.3. Create App ID 画面が表示されるので以下の設定で Submit 。
・ App ID Name : 適当。アプリ名とかでいいんじゃないですか。 ( 例 : TestApp )
・ App ID (Bundle Seed ID + Bundle Identifier) : ここは設定例が ‘com.domainname.appname’ とかになってるけど、どこに書いてあるのか判らないけど、色んな所を見た限りでは文字列の末尾が ‘*’ じゃないといけないらしいので、素直に ‘*’ だけ入力する。一度試しに ‘test*’ という ID を設定してみたんだけど、コンパイルの時に 0xE800003A エラーが出たので ‘*’ のみの方が無難だと思う。ホントはちゃんと設定したいのだけど。

16. プロビジョニングプロファイルの取得

16.1. iPhone Developer Program Portal の左カラムにある Provisioning を開く。

16.2. Development タブに Development Provisioning Profile が表示されるので、 「 Add Profile 」 ボタンを押下。

16.3. Create iPhone Development Provisioning Profile 画面が表示されるので、以下の設定で Submit 。
・ Profile Name : 何でも。今までで登録された証明書、 App ID 、 デバイス ID を結びつけるプロファイルなのでそれらの総称とかでいいんじゃないですか。 ( 例 : Taro’s TestApp debug by foobar … 長ぇ )
・ Certificates : 使用する証明書。複数証明書があればどうなるか判らないけど、とりあえず [ 12. ] で登録した証明書が表示されているのでそれにチェック。
・ App ID : 関連づけたい App ID を選択。 [ 15. ] で登録したもので。
・ Devices : 関連づけたいデバイス名。 [ 14. ] で登録したもので。

16.4. プロビジョニングプロファイルリストに登録した内容が表示されるのでしばらく待ってリロードすれば Status が Pending から Active になる。

16.5. Active になったプロビジョニングプロファイルをダウンロード。

17. プロジェクトにプロビジョニングプロファイルを登録

17.1. Xcode のオーガナイザウィンドを開いて、該当のデバイスの Provisioning に [ 16. ] で取得したプロビジョニングプロファイルを登録。

17.2. Xcode のメニューから 「 プロジェクト 」 → 「 プロジェクト設定を編集 」 を選び、ビルドタブのコード署名 ID に ‘Any iPhone OS Device’ の値に iPhone Developer: Taro Yamada(xxxxxx) を設定する。

18. 実機デバッグ

18.1. Xcode のプロジェクト画面のアクティブ SDK が Device – < OS version> ( プロジェクト設定 ) になっている事を確認した上でビルド。

18.2. 特に証明書等やビルドに問題がなければ iPhone に作成中のアプリが USB 経由で転送され、実機でアプリが起動する。

18.3. テスト。シミュレータと同様でホームボタンでアプリを終了するとデバッグが終了する。

— ここまで実機デバッグの手順 —

ちなみに 、 [ 2. ] から [ 5. ] までは一気に ( 多分セッション切れるまで。 ) やらないと決済終わってないのに [ 5. ] まで ( 正確に言うとセッションが切れる前まで表示されてた手続きが完了されてるとみなされて、再度ログインすると次の手続きの画面が表示される ) 手続きが済んでるとみなされてアクティベート待ちになって Apple に直接問い合わせないとどうしようもなくなるので注意。

あと、これ US の iTunes Store で決済してたらどうなるんだろう。
…登録したアプリが US の iTunes Store にリリースされたりして。

に、しても。今回 iPhone Developer Program を登録するにおいて先駆者の blog をいくつか確認させてもらって、それにも書いてあったですが、 iPhone / iPod Touch アプリには多言語対応を推奨しておきながらここまで登録システムに不具合があるってどうなのよ、 Apple さん。正直これのせいでデベロッパーになる敷居をかなり高めてる気がするんですが。

余談だけど AppStore で販売 / 配布するのは有料でいいとんだけど、せめて実機テストまでは無料でやらせて欲しい。もしくは MobileMe 使ってる人はちょっと割安とか。

Tagged with:  

やられた…

On 2009 年 5 月 26 日, in Mac OS X, by まこ

MacOS X の Finder 標準機能にある FTP サーバーのマウントは読み取り専用でしかマウント出来ないんですね…。

取り敢えず MacFuse 経由の MacFusion で解決したけど…通信遅い…普通 FTP マウントって言うと書き込みも出来るだろなにやってんの Apple 。

Tagged with: