iPhoneSDKでframeworkを使いたいんだけど・・・?
最近はiPhone/iPod touch向けアプリを作ってみようとがんばっています。
Cocoa/Objective-Cのプログラミング自体をちゃんと勉強していないので、色々と怪しいのですが、ひとつアプリを完成させられたら良いなあと少しずつ進めています。
今作っている(作ろうとしている)アプリケーションには、MacOSX 向けに作られたとあるアプリケーションの機能を使おうとしています。
どうせなら、このアプリケーションの機能をライブラリにしてしまえば他のアプリケーションにも利用できて便利なんじゃないかと考えました。
そのため、ライブラリと同時進行で開発する事になりました。
XCodeにはframeworkというコードだけでなく、リソースも含める事ができる仕組みがあるようなので、このページを参考にframeworkを作ってみました。
http://www.macmacmac.mydns.jp/modules/tinyd0/index.php?id=11
しかし、iPhoneのアプリから作成したframeworkを利用しようとプロジェクトに追加すると、ビルドは成功しますがアプリの起動直後に落ちてしまいます。
デバッグコンソールの表示
dyld: Library not loaded: @executable_path/../frameworks/*****.framework/Versions/A/*****
Referenced from: *****.app/*****
Reason: image not found
無いって怒られているらしい。
frameworkをiPhoneアプリのパッケージに入れてしまい、利用する事はできないのかな。
http://lists.apple.com/archives/xcode-users/2008/May/msg00282.html
このスレッドを見るとframework使うな静的リンク使えって書かれてるな・・・。
iPhoneアプリで使いたいためにライブラリを作り始めたんだから、静的ライブラリとして作り直してみた方が良さそうだ。
参考になりそうなページもありました。
静的ライブラリの作成と利用 - It_lives_vainlyの日記
参考にさせてもらいます。
MacOSX版 Inkscapeで日本語を入力する
今まではInkscapeに直接日本語を入力する事ができないので、コピー&ペーストでがんばってきました。
この作業が手間で、なんとかならないものかと考えていました。
調べてみると、ちょろちょろと設定すればできることがわかったので、まとめてみました。
ちなみに今回作業を行う環境は MacOSX 10.5 Leopard を想定しています。
まず、MacOSXのInkscapeはX11を使っているのでX11で日本語が入力できるようにしなければなりません。
日本語入力方式には、kinput2 と かんなを使います。
本当は ことえり が使える kinput2-MacIM を使いたかったのですが*1、うまくいかなかったので かんな で行きます。
kinput2 と canna を使って X11 で日本語を入力できるようにする。
kinput2 と canna をインストールする。(MacPortsを使います。)
かんなが自動的に起動するようにlaunchdに登録する。
sudo launchctl load -w /opt/local/etc/LaunchDaemons/org.macports.canna/org.macports.canna.plist
.xinitrcをホームディレクトリにコピーする。(すでにある人は必要なし)
cp /usr/X11/xinit/xinitrc ~/.xinitrc
~/.xinitrc を編集する。
ここから追加
if [ -f "/opt/local/bin/kinput2" ]; then
/opt/local/bin/kinput2 &
fi
ここまで追加# start the window manager
exec quartz-wm
~/.MacOSX/environment.plist を編集する。(無い場合はディレクトリとファイルを作る。)
ディレクトリとファイルの作成
mkdir ~/.MacOSX
touch ~/.MacOSX/environment.plist
ファイルを編集し、 XMODIFIERS と LANG を指定する。
新しくファイルを作った場合は以下の内容を任意のテキストエディタで記述すれば良いでしょう。
このファイルを編集したら、有効にするために再ログインする必要がある。
次にInkscapeのファイルを一部書き換える。
Inkscapeのバージョンは0.46を使っています。
/Applications/Inkscape.app/Contents/Resources/bin/inkscape を任意のテキストエディタで開き、以下の変更を行います。
既に書かれている三行をコメントアウトし、一行追加します。
#export LANG="`grep \"\`defaults read .GlobalPreferences AppleCollationOrder \
# 2>&1\`_\" /usr/share/locale/locale.alias | tail -n1 | sed 's/\./ /' | \
# awk '{print $2}'`.UTF-8"export LANG=ja_JP.UTF-8
書き換えたら Inkscape を起動してみましょう。
kinput2への接続許可を問われたら許可します。
Shift+Space や Ctrl+O、 ⌘+Space で日本語入力を切り替えてテキストボックスに日本語が入力できるようになっているはずです。
文字オブジェクトを選択した状態でCtrl+Shift+Tを押すと、テキスト/フォントのウインドウが出てきてそこで日本語が入力できるはずです。
別のアプリケーションで文字を入力し、コピー&ペーストをするよりは、日本語の入力が楽になると思います。
参考サイト
http://cat.therese.name/index.php?categ=5&id=1141423274#top
OSSを使いたいけど… - int main(int argc, const char **argv)って何?
Macの環境設定いろいろ - ぷよの日記
http://www.sol.dti.ne.jp/~kikuyan/macosx/x11kotoeri.html
http://homepage1.nifty.com/daemon/MachTen/sonoda/
http://journal.mycom.co.jp/column/osx/274/index.html
*1:ここではLeopardでも動くように書いてあるんだよなぁ。http://journal.mycom.co.jp/column/osx/274/index.html
10ヶ月ぶりの記事投稿
これからはがんばって日記かこう。
LeopardでEthna
Ethnaを使えるようにする。
PEARのインストール
curl http://pear.php.net/go-pear > go-pear.php
sudo php -q go-pear.php
いくつかの質問に答える。
Installation prefixには/usr/share/pearを指定した。
PEARコマンドを使えるようにする
~/.zshrc を編集してpathに以下を追加する。
/usr/share/pear/bin
編集した.zshrcを反映させる
source ~/.zshrc
pearコマンドが使えるようになった。
Smartyのインストール
Ethnaの依存ライブラリであるSmartyをインストールする。
sudo pear channel-discover pearified.com
sudo pear update-channels
sudo pear install pearified/Smarty
Ethnaのインストール
Ethna公式サイトのドキュメントを参考にPEARチャンネルを利用してインストールする。
sudo pear channel-discover pear.ethna.jp
sudo pear update-channels
sudo pear install ethna/ethna
スケルトン作成
ethna add-project sample
ethnaコマンドがこけた。
/usr/share/pear/bin/ethna: line 37: /usr/share/pear/bin/php: No such file or directory
素直にphpにしよう。
~/.zshrcに追加する。
試しにスケルトンを作成して表示を確認するとエラーが発生。
Fatal error: require_once() [function.require]: Failed opening required 'Smarty/Smarty.class.php'
Ethna公式サイトのドキュメント脚注にこうある。
include_once 'Smarty/Smarty.class.php' で読み込めるようにinclude_pathを設定するか、 ethna/class/Renderer/Ethna_Renderer_Smarty.phpの該当行をSmartyがインストールされている位置に書き換える必要があります。
シンボリックリンクを張ってみた。
正常に動作しました。
LeopardのX11で日本語キーボード配列
Inkscapeで絵を描いていて,ファイル名に下線を使おうとしたらアレ?入力できない。
もしやと思って他の記号を入力してみたらやっぱりキー配列が変わってる・・・。
ということで調べてみたらさくっと情報が見つかりました。
助かった〜参考にさせていただきます。
Inside Leopard: X11.appと日本語環境の問題: JavaFlavor Weblog
Leopard X11のMacBook Pro JISキーボード用Keymap | Acanthopanaxの日記 | スラド
zshを使い始める
今までシェルはtcshを使っていたのですが、補完が強力らしいということでzshを使ってみる事にした。
Leopardを使ってるので
http://d.hatena.ne.jp/nagaton/20071105/1194281542#20071105f1とか
http://journal.mycom.co.jp/column/zsh/001/index.html
を参考に設定してみた。
設定してみたというか、漢のzshが長い・・・。
いや、コラムが長いというよりもzshが多機能すぎるのか。
ひとつひとつ読みながら、おぉー。とかすげー。とか言いながら試しているのだが、疲れたw
じっくり触っていく必要があるんだろうなあ。
でも使いこなせたらかなり便利そうなことがわかった。がんばろ。