Hatena::ブログ(Diary)

Seasons.NET

2011-07-13

Titaniumの自作モジュールをバンドルさせたくない時の対処法

| 21:34 | Titaniumの自作モジュールをバンドルさせたくない時の対処法を含むブックマーク Titaniumの自作モジュールをバンドルさせたくない時の対処法のブックマークコメント


Titaniumでモジュールを作成してプロジェクトで利用する場合、

最近ではプロジェクトフォルダにmodulesフォルダを配置してビルド

することが推奨されていました。

f:id:Seasons:20110713213118j:image


しかし、私にとってこれは問題のある結果をもたらしました。

できあがった .appファイルの中にmodulesフォルダ以下が

コピーされてバンドルされているのです。


これは、モジュールがアプリケーション実行時リンクで動作するため、

このような仕様になっているのですが、この .aのモジュールを

他のアプリにコピーすることで簡単に利用できてしまいます。

モジュールは、otoolで調べたところ静的リンクされているようでしたので、

モジュールそのものがバンドルされてしまうことが問題となります。


フリーなモジュールなら問題ないかもしれませんが、

有償のモジュールの場合にとても困ります。

ライブラリ内のメソッド名が分かってしまうと、

このライブラリを他のプロジェクトにコピーして自由に使えてしまうのです。


静的にリンクしてくれれば問題ないわけですが

これを解決するにためには、modulesの配置場所を

変更する必要があります。


以下の場所に作成したモジュールを移動してください。

/Library/Application Support/Titanium/modules

f:id:Seasons:20110713213116j:image

こちらに移動することでTitanium Studioなどで

ビルドした時に静的にリンクしてくれます。


バンドルがうっかりアプリ内にバンドルされてしまうと

違法コピーの可能性がでてしまうため、ビルドの際には気を付けましょう。

SeasonsSeasons 2011/07/13 23:41 @atsusyさんのご指摘で記事を修正しました。