Xcode活用メモ

Xcodeを使うために知っておくと便利なこと。
 

覚え書き

1.Xcodeの入手/2.言語とライブラリ/3.C++ソースコードを使うには/4.開発中のアプリにアイコンを追加する/5.ビルドスタイル/6.ライブラリ やフレームワークのリンク方法/8.Xcode上でライブラリのコンパイル方法/9.Xcode用テンプレートの作成/10.その他

Xcodeを入手する


OSX10.3 を使っている人ならこちら。
  • Xcode1.1 (日本語対応) MacOSX Panther 10.3 のインストールディスク
  • Xcode1.5 (英語のみ) Apple の開発者向けサイトからダウンロードする。

    残念ながら、Xcode2 は OSX10.4 以降にしか対応していません。
  • Xcode2.1 (英語のみ)、MacOSX Tiger 10.4 のインストールディスク
  • Xcode2.2 (日本語対応)、Apple の開発者向けサイトからダウンロードする。

    OSX 10.3 なら Xcode1.1、 OSX10.4 ならXcode2.2が日本語化されています。
    Xcode2.2では、Xcode のマニュアル部分もかなり日本語訳されており、かなりお得。

    ダウンロード
    アップルの開発者向けサイトでログインするには、アカウントが必要です。
    アカウントは Appleのデベロッパ(ADC)に登録するともらえます(個人でも無料で登録できます。要メールアドレス)。
    アカウントが発行されたら、ログインしてXcode のdmg(ディスクイメージ)ファイルをダウンロード(800MB程度)します。

    dmgファイルを開き インストーラの指示に従って、 インストールが完了すると、usr/local/、Developerディレクトリ等が作成されます。
    Xcodeアプリケーションは、 /Developer/Applications/Xcode.app にあります。

    簡単なXcode1.x と Xcode2.x系 との違い
    プロジェクトテンプレートが、application support ディレクトリの中に入るようになった。
    ターゲットの設定等、ダブルクリックで別ウインドウでやたら開くようになっています。その他インターフェイス部分は多少デザインが変わった。
    Xcode 2.2 では build/development に実行ファイルが作られるので、読み込む画像ファイル等もそこに置かなければいけません。


    Xcode2.2ユーザーガイド・デベロッパマニュアル日本語版
    基本的な使い方や、この項目やアイコンは何を意味するのか?等、Xcodeの操作法を調べる場合は、Applebの Xcode2.2ユーザーガイド・デベロッパマニュアル(日本語)が役に立ちます。 これはPDF版(49.7MB)も用意されており、アップルのサイトからダウンロードできます。PDF版ユーザーガイドの「表、図、リスト」という項目を見るとスクリーンショットを使った説明箇所を重点的に読む事ができます。

    ほかの手段では、Xcodeインストール起動後に、メニューから「ヘルプ>マニュアル」を選択します。ヘルプビューアが表示されるので、Xcode Helpを選択。

    最低限読んでおきたい部分は…
    ADC Home > Reference Library > Documentation > Tools > Xcode > Xcode 2.2 User Guide > プロジェクトウインドウ >
    ▼プロジェクトウインドウ
  • プロジェクトウインドウおよびそのコンポーネント(スクリーンショット付き)
  • プロジェクトウインドウのレイアウト(スクリーンショット付き)
  • プロジェクト項目と操作に関する追加情報を表示する

    ADC Home > Reference Library > Documentation > Tools > Xcode > Xcode 2.2 User Guide > Xcode設計ツールの共通機能 >
    ▼Xcode設計ツールの共通機能
  • ダイアグラム表示(スクリーンショット付き)
  • ブラウザ表示(スクリーンショット付き)
  • 情報ウインドウ(スクリーンショット付き)
  • ワークフロー (スクリーンショット付き)

    ADC Home > Reference Library > Documentation > Tools > Xcode > Xcode 2.2 User Guide > ファイルを開く/閉じる/保存する >
    ▼ファイルを開く/閉じる/保存する
  • ファイルを開く/閉じる
  • ファイルを保存する

    ADC Home > Reference Library > Documentation > Tools > Xcode > Xcode 2.2 User Guide > Xcodeのエディタ >
    ▼Xcodeのエディタ
  • Xcodeのエディタのインターフェイス(スクリーンショット付き)
  • ソース・コード・ファイル間を移動する
  • コードエディタの外観を変更する

    ADC Home > Reference Library > Documentation > Tools > Xcode > Xcode 2.2 User Guide > プロダクトをビルドする >
    ▼プロダクトをビルドする
  • エラーと警告を表示する
  • ユニバーサルバイナリをビルドする

    ADC Home > Reference Library > Documentation > Tools > Xcode > Xcode 2.2 User Guide > リンクする >
    ▼リンクする
  • 作成するバイナリのタイプを指定する
  • 外部シンボルの検索順序を指定する
  • プレバインドしない
  • システムフレームワークにリンクする
  • 非標準の場所にある動的ライブラリにリンクする
  • ゼロリンクを使用する

    ADC Home > Reference Library > Documentation > Tools > Xcode > Xcode 2.2 User Guide > Xcodeのデバッガでプログラムを実行する >
    ▼Xcodeのデバッガでプログラムを実行する

  • 言語とライブラリ

    Mac OSX でのプログラミングは はじめはC言語から入っても構いません。
    Xcodeやターミナルを使ってC言語学習を補助する 「Friendly-C」 や 「Cで遊ぼう! 」等の 補助的なアプリケーションがあります。 

  • Web一工夫 の FriendlyC
  • MacSoftOSX の Cで遊ぼう!
  • 猿から始めるC

  • そのうち、もっと画像や音楽で派手派手なのを作りたくなってきたら、フリーのライブラリを探してみよう。

    ライブラリをリンクするには、「gcc コンパイラオプション」を知っておくといいです。
  • Manpage of GCC (Linux のサイトにも、 OS Xで応用できる情報もあったりします)
    -I includeファイルを読み込むディレクトリ、-L ライブラリのあるディレクトリ、-llibrary ライブラリファイルのリンク
    -o 出力するファイル、-w 警告メッセージの表示、-O -O2 -O3 -O0 最適化

    Xcodeを使う場合でも、コマンドラインからビルドする方法を知っておくと便利です。また、もっとOSに近いことがしたくなればなるほど、CocoaやObjectiveCを知る必要があります。 XcodeやInterfaceBuilderを使った開発手順を知るには「Xcode2入門」(柴田文彦 著)が助けになりました。

    MacOSX で 何かを作るための道具は、ObjectiveC言語やXcodeやターミナルだけではありません、他のプログラミング言語、スクリプト言語、作成ツールを使ってみるのも手です。

    プログラミング言語、ライブラリ

    Xcode で、C言語をはじめるには、SDLとかAllegroライブラリのプロジェクトテンプレートから新規作成すると何かと楽です。
    また、C++言語を使うには、 .cpp の ソースコードをXcodeで使うために、拡張子を .mm にしてObjective-C++ として扱います。

    クロス開発
    Windows や Linux 向けに書かれた C/ C++言語の ソースコードでも、 SDLや Allegroライブラリを使用しているものは、
    Xcode でビルドができるものがあります。


    アイコンを追加する

  • プロジェクト内で開発中のアプリケーションにアイコンを追加する方法

    Xcode の ビルドスタイル Deployment と Development

    一番左のグループとファイル(Groups&Files)のペインの一番上の「▼ プロジェクトファイルの青いアイコン」を選択した状態で、情報(info) アイコンを押して、Project"プロジェクト名"info ウインドウを出す、タブメニューから Styles を選択。 Active Build のプルダウンメニューで変更。

  • Develop:バイナリ配布する場合はこちらを選択。
  • Deployment:リンクしないでビルドする (ゼロリンク)

    配布向けにビルドする場合はDeploymentを指定する、Development はファイルがリンクされないので、配布しても他の人はプログラムが実行できない。また、デバッグ用のコードが埋め込まれるのでサイズが大きくなるらしい。

    Xcode を使って ライブラリ やフレームワーク をリンクする方法

    ■configure が用意されていないライブラリをインストールした後、Xcodeで使えるように設定する
     ターミナルを使う場合はオプションコマンドを設定するが、Xcode でも方法は違うものの設定することができる。
  • 日本語版の場合

  • 英語版の場合

  • Xcode で、ライブラリをリンクさせる 方法
    「グループとファイル」>「ターゲット」>ターゲット名称 をダブルクリック>
       「リンカ設定」>「その他のMach-Oリンカフラグ」で設定

    gccのコンパイルオプション例:
      -L/usr/local/lib -lalleg-main -ljpgal
    /usr/local/lib ディレクトリ以下の
    liballeg-main.a と ljpgal.a をリンクするという意味。


    下でGUI画面からフレームワークを登録する方法を紹介していますが、
    フレームワークもこのリンカフラグの項目で、リンクすることができます。
    例: -framework Cocoa

  • local/lib/ のライブラリをリンクする -L/usr/local/lib
  • local/canna/ の以下のライブラリxxxをリンクする -L/usr/canna/ -lxxx
  • fink で入れたライブラリをリンクする。
    ※例えば、 fink インストールした iconv をリンクするなら -L/sw/lib -liconv

    参考: GCCオプション一覧
  • 日本語版の場合

  • 英語版の場合
  • Xcode で フレームワークをリンクさせる 方法
    「グループとファイル」>Frameworks
    (右クリック長押しコンテキストメニュー)
     「追加」 >「既存のフレームワーク」 で、場所を指定

    Xcode上から、ライブラリをコンパイルする場合

    通常は各ライブラリのReadme に書かれているように、コマンドラインから打ち込むのですが、これをXcodeから行う方法。
  • 予備知識:OSXで使われる ライブラリの種類
  • 新規プロジェクト作成から、
     BSD Static Library (lib〜.a ライブラリを作成する)
    または
     BSD Dynamic Library (lib〜.dylib ライブラリを作成する)
    を選択する。
    今回の例は、AllegroでGIF形式の画像を読み込むalgif ライブラリをXcodeでビルドしようというものです。 この比較的小さなライブラリをコンパイルするにはAllegroライブラリにリンクする必要もあるので、その設定も説明します。
    (ちなみに、コマンドラインからコンパイルするには gcc -c *.c , ar -rcs libalgif.a *.o と打ち込むだけです。)


    プロジェクト名は、作成するファイル名にあわせて設定しておきます。
    「グループとファイル 」ツリーに、コンパイルに必要なヘッダファイルやソースファイルを登録しておきます。

    ライブラリのターゲット設定ウインドウを出すには
    ターゲット>bsdstatic をダブルクリックすると、情報ウインドウが表示されます。その、「ビルド」タブを選択します。設定項目は「コレクション」メニューにまとめられています。

    ※Cocoa アプリケーションのターゲット設定ウインドウと、かなりインターフェースが違うので、以下のスクリーンショットを参考に設定してください。

    「Mach-O タイプ」で生成されるライブラリの種類が決まります。
    今回の例では、静的ライブラリを作成するので、Mach-0タイプは「静的ライブラリ」に設定されています。


    ヘッダ検索パスと、ライブラリ検索パスはここで設定できます。
    コマンドラインから打ち込む場合は、-I/usr/local/include 、 -L/usr/local/lib/ と書いていた所です。


    他のリンカフラグ
    -lxxx など、ライブラリ名をオプション渡す場合。ライブラリを作成するのに他のライブラリにリンクする必要がある場合、この設定を忘れるとビルドが失敗します。


    それで、ビルドを行います。
    ビルドが成功したら debug フォルダの中に libbsdstatic.a が生成されます。
    動的ライブラリを作る場合は、ターゲットのビルド設定と、リンカフラグの設定が違うだけであとはほとんど一緒のようです。

    静的ライブラリと、動的ライブラリを作る時の違い

  • 静的ライブラリの lib〜.a の場合は、他に静的リンクするライブラリlibxxx.aがある場合は、リンカフラグを -lxxx にしておきます。
  • 動的ライブラリの lib〜 .dylib の場合は、他に動的ライブラリlibxxx.dylibをリンクする場合は、リンカフラグは -lxxx

  • 静的ライブラリの場合は、「グループとファイル」ツリーにDocumentationグループが存在する。
  • ターゲットのビルド設定の違いは以下の通りです。
    【コレクション】設定項目 static dynamic
    【一般】 Mach-O タイプ 静的ライブラリ 動的ライブラリ
    【一般】 実行可能ファイルの拡張子 a dylib
    【リンク/一般】 現在のライブラリのバージョン 1
    【リンク/一般】 現在の互換バージョン 1
    【デプロイメント】 個別の除去を使用 strip(1) チェック  
    【コード生成】 インライン関数は隠す チェック
    【リンク】 他のリンカフラグ
    (他のライブラリとリンクが必要な場合)
    リンク対象ライブラリの
    静的ライブラリ(lib〜.a)へのフラグ
    リンク対象ライブラリの
    動的ライブラリ(lib〜.dylib)へのフラグ

    Xcode用テンプレートの作成

  • Xcode テンプレートに関するメモ
    テンプレートディレクトリの解説とか

     テンプレートを作った人の数だけやり方があるので、正攻法はありません。
    使用する言語や、依存するライブラリ、用途によって用意するテンプレートが違ってきます。
    Xcodeがデフォルトで対応していない言語やライブラリを導入した時に…。

    その他のXcode関連情報要約

  • wchar_tとwstringのサポート: C/C++のワイドキャラクタ、wchar_t と wstringは、Panther10.3 以降で対応してます。標準機能ですが、定義は若干不明確なので、これを使うよりAppleが用意した Unicodeキャラクタとワイドキャラクタ両方を扱える CFString API を使うことをおすすめします。

  • CおよびC++ライブラリ: Mac OS Xには、システムが提供するC/C++ライブラリが用意されていて、静的/動的の2種類がある。 Appleは動的ライブラリとして使うことを強くおすすめします。Mac OS X 10.3.9 以降、標準C++ライブラリは動的共有ライブラリlibstdc++.dylib(要gcc4.0)になってます。それ以前の環境で使うには、libstdc++.a に静的リンクをする必要があります。 Xcodeでリンク可能な 静的ライブラリは、libではじまり、拡張子.aで終わるファイル名になっている必要があります。

  • 環境のカスタマイズ 、Xcodeの「Preferences(環境設定)」ウインドウで カスタマイズできます。 プロジェクトウインドウレイアウトというのがあって、ウインドウ分離型のCondensed(コンデンス)、ウインドウ一体型のAll-In-One(オールインワン)、Default(デフォルト)があります。オールインワンか、デフォルトのほうが使いやすいです。 レイアウトを変更する前にはすべてのプロジェクトウインドウを閉じておいてください。

  • 作成するバイナリのタイプを指定する ターゲットによって作成されるバイナリファイルは 実行可能ファイル、バンドル、静的ライブラリ、動的ライブラリの4種類がある。 「Mach-Oタイプ」(MACH_O_TYPE)ビルド設定で可能。

  • プロジェクトテンプレートを選択する
  • 新規プロジェクト作成
    ▼Application
     Carbon Appilication
     Cocoa Aplication

    (Allegro関連のライブラリをインストールした場合)
     Allegro Application
     Adime Application

    (Ruby/Cocoaをインストールした場合)
     Cocoa -Ruby Application
     Cocoa -Ruby Document-based Application

    (SDLをインストールした場合)
     SDL Aplication
     SDL Cocoa Aplication
     SDL Custom Cocoa Aplication
     SDL OpenGL Aplication

    ▼Static Library
     BSD Static Library (lib〜.a ライブラリを作成する)
     Cocoa Static Library
     Carbon Static Library

    ▼Framework
     Cocoa Framework
     Carbon Frameworks

    ▼Bundle
     Carbon Bundle
     Cocoa Bundle
     CFPlugin Bundle (Core Fundation framework plugin)


    ▼Loadable Bundle
     Cocoa Bundle
     CFPlugin Bundle (Core Fundation framework plugin)

    ▼Dynamic Library
     BSD Dynamic Library (lib〜.dylib ライブラリを作成する)
     Cocoa Dynamic Library
     Carbon Dynamic Library

  • Last modified 2006.3.26
    Tsukubado