Moments Studio

Mac OSX用ビデオキャプチャーアプリBear`s Hand開発のことやMac関連の勝手なはなし

全体表示

[ リスト ]

iPhoneアプリでtwitter関連のアプリを組む場合のパーサーとして、ポピュラーらしい?YAJLをMacで使う時のノウハウ。
コンパイルリンクしてフレームワークまでは作れたのだけどどうやってそれを自分のアプリの中に同梱させるの?という時の説明。元のgithubのページには手順が書いてあるんだけど、英語だしちと説明が簡略でXcodeの深い所慣れてないので迷ったりググったりして探って分かったことを書きました。


参考HP github  "gabriel / yajl-objc"
     https://github.com/gabriel/yajl-objc (英語)

<HPの内容と自分の実行結果>

Install (Mac OS X)

There are two options. You can install it globally in /Library/Frameworks or with a little extra effort embed it with your project.

Installing in /Library/Frameworks

Copy YAJL.framework to /Library/Frameworks/
In the target Info window, General tab:
Add a linked library, under Mac OS X 10.5 SDK section, select YAJL.framework
Installing in your project
Copy YAJL.framework to your project directory (maybe in MyProject/Frameworks/.)

  →(1)すでにインストールしてあった/Library/Frameworks/YAJL.framework を
開発中のxcodeprojファイルのある所の1つ上のフォルダにFrameworksというフォルダを作り
その下にYAJL.frameworkをコピー(下記(3)のパスを適宜直せば実際はどこでも良いであろう)

Add the YAJL.framekwork files (from MyProject/Frameworks/) to your target. It should be visible as a Linked Framework in the target.

  →(2)(1)のYAJL.frameworkを"グループとファイル" ペイン内に下記の様にドラッグ&ドロップで配置
       (アプリ名)
         FrameWorks
           Linked Frameworks
              YAJL.framework

Under Build Settings, add @loader_path/../Frameworks to Runpath Search Paths

→(3)ターゲット"(ターゲット名=自分のアプリ名)"の情報 > ビルドタブ で「実行パス」で検索
「実行パスの検索パス」に @loader_path/../Frameworks を入れる

Add New Build Phase | New Copy Files Build Phase.

→(4)"グループとファイル" ペイン内ターゲット下の(ターゲット名)で右クリック>追加
>新規ビルドフェーズ>新規コピーファイル

Change the Destination to Frameworks.

→(5)出て来た""(ターゲット名)"のファイルをコピーするフェーズ”の情報パネル
というタイトルのパネル内で
ディスティネーション: フレームワーク 
を選択。
(重要)ここでパスは空白のまま。インストール時のみコピーはチェックしない。
これで、"グループとファイル" ペイン内ターゲット下のBirdsComebacksの下が次の様に
バンドルリソースをコピー
ソースをコンパイル
バイナリをライブラリにリンク
ファイルをコピー ←追加された

Drag YAJL.framework into the the build phase
→ (6)"グループとファイル" ペイン内の
Frameworks > Linked Frameworks下のYAJL.frameworkを
(5)の「ファイルをコピー」の上(配下に出来る)にドラッグ&ドロップ

Make sure the copy phase appears before any Run Script phases

→ 多分、Run Script(「スクリプトを実行」フェーズ)をターゲットの
下に作っている場合に気をつけるのだと思う。「スクリプトを実行」フェーズ
無い場合、意識しない。

(確認)
ビルドしてみる。
できたアプリケーションで右クリック>パッケージの内容を表示。
次のフォルダが出来ている事を確認。

Contents/Frameworks/YAJL.framework/以下もろもろのファイル...

これが出来ていないと、他のマックに実行ファイルをコピーして
アプリ起動時に、ライブラリが無いとかのエラーが表示される。

これを使ったアプリを現在開発中で、詰めの当たりにようやくたどり着きました。
12月のどっかに公開したいな。

しかしたまに自分のブログ見に来るとスパムコメントだらけで消すのが面倒。

この記事に

閉じる コメント(0)

コメント投稿

顔アイコン

顔アイコン・表示画像の選択

名前パスワードブログ
絵文字
×
  • オリジナル
  • SoftBank1
  • SoftBank2
  • SoftBank3
  • SoftBank4
  • docomo1
  • docomo2
  • au1
  • au2
  • au3
  • au4
投稿

.


みんなの更新記事