- "Xcode 4.6"ではiOS6.1 SDKでの開発のためのサポートが追加され、パフォーマンスと堅牢性への一般的な改善とともに、コンパイラやデバッガのための新しい機能が含まれています。
- "Xcode 4.6.1"は、 OS X10.8.3 SDKでの開発をサポートしており、OS X 10.6のターゲットプロジェクトでのARCの互換性を提供します。
- "Xcode 4.6.2"は、アップルQAのテスト入力と開発者への対応メンテナンスのリリース。
- "Xcode 4.6.3"は、iOSシミュレータでデバッグすると、OS X10.8.4上でハングする問題を修正しています。
コンパイラでは:
- コンパイル警告はARCと弱い参照を使用するときにバグを見つけるのに役立つようになっています。
- otool コマンド は Intel AVX 命令を逆アセンブルするように拡張されています。
- LLVM コンパイラは C++11 をサポートし、"ユーザー定義リテラル"と "無制限結合"の機能をサポートしています。
- ソースエディタのヘルプの静的アナライザ は、C++ と Objective-C のメソッドのクロス機能解析を強化しています。この機能拡張により、静的アナライザは Objective-C と C++ のコードで呼び出すクロスメソッドの、より深いバグを見つけることができます。この新しい機能は、Xcode 4.5 で導入された C 関数のクロス機能解析を拡張します。
デバッガでは:
- LLDB は、Objective-Cのランタイムからメタデータを読み込むように拡張されました。この機能拡張により、引数をキャストする必要性とメッセージの結果送信を大幅に低減し、(特にシステムクラスから)property がもっと使用可能になります。
- LLDB は、インライン関数を使うためのサポートが改善されました。この改善されたサポートで、 libc++ や NSMakeRange や always_inline機能がぐんと使いやすくなりました。
- LLDB は、デフォルトでバックトレースでの関数の引数の情報を出力します。
- LLDB は現在、 "スレッドの復帰"や一時的なブレークポイント、GDBからの共通のショートカットを追加するための、様々なエイリアスのサポートができるようになりました。
- NSArray と NSDictionary のオブジェクトの要素は Xcode のデバッガで検査することができるようになりました。
Xcode 4.6.1は、開発者側から寄せられた問題とApple認定試験への対応メンテナンスリリースです。このリリースの主な特徴は次のとおりです
- Xcode 4.6.1は新しいOS X v10.8.3のAPIをサポートして、含まれているOS X SDKのアップデートを提供します。
- ARCの互換性はOS X 10.6のターゲットプロジェクトのため確保されています。
- Xcode 4.6.2リリース開発者側から寄せられた問題とApple認定試験への対応メンテナンスリリースです。
- Xcode 4.6.3リリースには、iOSシミュレータでデバッグすると、OS X10.8.4上でハングする問題を修正しています。
Xcodeの堅牢性と信頼性への付加的な改善が組み込まれています。詳細については、Xcode の公開ノートを参照してください。
Xcode 4.5 では iOS6 SDK での開発のためのサポートを追加し、これらの追加機能が含まれています。
- LLDBが現在、デフォルトのデバッガになりました。
- LLDBはiOSデバイス上のハードウェア·ウォッチポイントをサポートしています。
- iOSアプリのためのOpenGLのデバッグとパフォーマンス解析はXcodeに統合されています。
- 自動レイアウトが、iOS 6でサポートされています。
- .xib ファイルの基本言語を使用したローカリゼーションワークフローは、iOSストーリーボードとOS X10.8でサポートしています。
- NSNumber、NSArrayと、NSDictionaryのクラスでObjective-Cのリテラル構文はiOSの向けにサポートされています。
- NSDictionaryとNSArrayの'[ ]'シンタックスがサポート、iOS5にも戻ってサポート。
- 標準C ++11との互換性が改善され、、ラムダ表現のサポートが追加されています。
Xcode 4.5には下記のようにXcode 4.4にリリースされた新機能も拡張します。
Objective-Cの言語機能の可用性、ツール、および展開機能の詳細については、Objective-Cの機能の可用性インデックスを参照してください。
Xcode 4.4ツールセットにはOS X v10.8とiOS5.1をサポートするための機能と、他の拡張機能が追加されます。
Xcodeは、次の機能拡張と最新LLVMコンパイラ、バージョン4.0を含んでいます。
- リテラル構文は NSString のリテラルと同様の'@'演算子を使用して、NSDictionary、NSArray、NSNumber オブジェクトに対してサポートされています。
- 添字は、 NSDictionary と NSArray を含む Objective-C のインスタンスに、有効になっています。 '[ ]'の構文規則を使用します。
- 明示的に実装されていないときに Objective-C の @property(複数)はデフォルトで合成されます。
Xcodeは、以前開発したこれらの機能、添字リテラル構文とオブジェクトが利用できるように OS X v10.7 以降では OS X v10.8 SDK を使用する必要があります。デフォルトの @ synthesize の特徴は、特別な SDK またはランタイムサポートを必要としません。
- ラムダ式は Objective-C ++ の API との相互運用を可能としています。
- 一般初期化リストがサポートされています。
- 一般定数式( constexpr の)がサポートされています。
Product メニューの analyze コマンドで起動される Xcode に内蔵のソースコード解析ツールは、API と malloc の使い方の共通セキュリティの誤りを避けるために強化されています。
- 静的アナライザエンジンは、手続き間解析を使用して複数の関数にまたがる複雑なバグを見つけることができます。
- もっと徹底的なメモリのチェックはmalloc関数関連のメモリ管理と安全でないAPIの使用の検出の為に作られています。
XcodeのInterface Builderには、新規のAppKit機能のサポートが含まれています。
- 自動ローカライズ(Autolocalization)
- 改善されたトラックパッド API
- 自動レイアウトの改善
- CoreUI ベースの UI のカスタマイズ
- NSView の API
- ページング制御
- ページ制御ビュー(Page Control View)の追加
Xcode 4.4 はシーンキット API の使用をサポートする Collada の DAE ドキュメントなど、プロジェクトに含まれている 3Dシーンファイル用のビューア、エディタを紹介します。シーンキットエディタはプレビューと 3Dシーンを微調整することができ、組み込みアニメーションを再生できます。ソースコードで使用する3Dシーンを検査することができます。シーンキットエディタは、プロジェクトナビゲータで DAE ファイルを選択することにより起動されます。
コード補完はドキュメントまたは特定のコードスニペットに基づいて、リスト内の各項目の簡単な説明とクイックヘルプ(QuickHelp)の統合された形を持っています。コード補完ウィンドウ内に統合されて、コード補完リストの上下のどちらかのセクションに表示されます。
Xcodeはまだ含まれていたり、(フレームワークをプロジェクトに追加したものの、#importがファイルに含まれていないような場合)現在のファイルでインポートされていないコード補完時にシンボルを提供することができます。可能な場合、Xcodeは自動インポートの完了のためにアンブレラヘッダーを使用し、バイナリをリンクする必要があるかを示す #error で、まだリンクされていないシンボルを指示します。現在のワークスペース内で少なくとも1つのファイル内に表示されているシンボルに対して自動インポート完了が利用可能である事は既知の制限です。必要であれば、これはテキスト編集の環境設定でオフにすることができます。
発見と検索には、次の3つの新機能が強化されました:
- 正規表現の代わりに簡単な表現のパターンを発見する発見バーと検索ナビゲーターを追加しました。検索フィールドでは、虫眼鏡のアイコンをクリックして、挿入パターンを選択します。
- 発見ナビゲーターは、インデックス付きシンボルへの参照のために検索をサポートします。 Find Navigatorのスタイルポップアップメニューからシンボリックを選択して下さい。検索のこの形式は、テキスト検索よりも非常に高速で、コメントとソース以外のファイルから結果を除外します。
- codeは、現在の関数またはメソッドの呼び出し元と呼び出し先を表示することができます。この機能は、[表示関連アイテム]メニューから、またはアシスタントエディタを使用していて、ジャンプバーポップアップメニューの[呼び出し元]や[呼び出し先]を選択することによってアクセスされます。
ソースエディタのジャンプバーのポップアップメニューは、TODOやメソッドや関数の内部にあるの #pragma mark のコメントを一覧表示出来るようになりました。
ピンチ·ツー·ズームして、以下のエディタとビューアのズームレベルを変更する2本指ダブルタップ:
- ユーザーインターフェイスエディタ
- 16進エディタ
- コアデータモデルエディタ
- クイックルックエディタ
- OpenGL ESのビューア
- インストルメントトラックビュー
三本指シングルタップはクイックヘルプを呼び出します。
二本指スワイプは、Xcodeの使用歴を前後に移動します。
Xcode 4.4は、OS X v10.8システム全体の通知システムを構築し、警告通知を表示することができます。
- Xcode 4.3 は、ツールセットに iOS5.0 と OS X v10.7 だけでなく、他の拡張機能をサポートするための機能が追加されています。マイナーリビジョンの更新:
- Xcode 4.3.1 および 4.3.2 には iOS SDK5.1のサポートの更新を追加します。
- Xcode 4.3.3 は、OS X の SDK に含まれるアップデートを提供
Xcode のこのバージョンは直接 MacのApp Store からアプリケーションフォルダにインストールされる、単一のアプリケーションバンドル、Xcode.appとして配布されています。 Xcode 4.3 をインストールすると、もはや Xcode 用のインストールアプリケーションを必要としません。これらは、標準の Mac App Store のメカニズムを使用して Xcode をインストールし、更新するために変更されました。
Xcode 4.3 のインストールは、他の主要な開発ツールを再編成し Xcode > Open Developer Tool メニューを使用して起動することができます。便利がよいように、あなたも直接アクセスできるように Dock にこれらのツールを追加することができます。
コマンドラインツールは、デフォルトではXcodeの4.3にバンドルされていません。その代わりに、必要に応じてダウンロード設定パネルの[コンポーネント]タブを使用してインストールできます。
シングルアプリバンドルとしての Xcode4.3 の再パッケージによる単純化は Xcode の以前のバージョンを含む /Developer のディレクトリが不要になります。その結果、インストールXcode 用のインストールアプリおよび uninstall-devtools コマンドラインスクリプトは、もはや必要ありません。
注意:Xcode 4.3 の初回実行時に、Applications ディレクトリに Xcode インストールアプリケーションがあればそれを削除するように、また Xcode の古いバージョンを削除するようにとダイアログが表示されます。これらのアクションはオプションですが、Xcode 4.3 は、同じ Mac 上の Xcode の古いバージョンと共存することができます。一部の操作では、別の Xcode のバージョンに切り替える場合、管理者パスワードが必要な場合があります。
Xcode 4.3 の最初の起動時にこれらの項目を削除しないことを選択した場合、いつでも/Developer フォルダと XCode インストレーションアプリをゴミ箱にドラッグして削除することができます。
/Developer ディレクトリは、もはや Xcode 4.3 で存在していないので、以前の Xcode のインストールのいくつかの部分が移動してしまっています。
サンプルコード。以前利用可能だった3つのサンプルプロジェクト、TextEdit, Sketch 及び CircleView は、developer.apple.comの iOS と OS X のサンプルコードのセクションに移動されています。
プラグイン、テンプレートやサブコンポーネント以前 /Developer のサブディレクトリにあった開発者向けツールのコンポーネントのための全てのパスは Xcode 4.3 アプリケーションバンドルの内部にあります。例えば、 Automation.tracetemplate のファイルのように以前 / Developer のサブディレクトリ、すなわち /Developer/ Platforms/ iPhoneOS.platform / ...にあったインストルメントテンプレートは、似たようなパス、すなわち /Application/ Xcode.app /Contents/Developer/ にあります。他のスタンドアロン・ユーティリティアプリとアドオンの技術。 いくつかの追加のツールは、もはやデフォルトの Xcode のインストールの一部ではなく、別のパッケージとしてダウンロード可能です。"More Developer Tools"メニューコマンドは、 Safari でこれら開発ツールを見つけることができる developer.apple.com/downloads で直接ジャンプします。
利用可能なダウンロードが含まれます:
- オーディオツール:AULab、HALLab、およびオーディオユーティリティのソースコード
- アクセシビリティツール:アクセシビリティインスペクタ、アクセシビリティの検証ツール
- ハードウェアの IO ツール:Bluetooth のツール、IORegistryExplorer、USB プローバ
- グラフィックツール:CI フィルタブラウザ ウィジェット、OpenGL のツール、ピクシー、クォーツデバッグ、クォーツコンポーザーツール
- 補助ツール:クリップボードビューア、CrashReporterPrefs、ヘルプインデクサ、PackageMaker、音声認識ツール、SleepX
- Dashcodeを:Dashcode アプリケーション
自動レイアウトは、すべての新しいココアプロジェクトのデフォルトです
Xcode 4.3 で作成した新しいココアプロジェクトは、デフォルトで、Interface Builderの自動レイアウト機能を使用します。それは、Interface Builder のデザインキャンバス内のオプションの選択を解除して無効にできます。
Xcode 4.3.1および 4.3.2
Xcode 4.3.1 および 4.3.2 では、iOS5.1 のサポートを追加して、Xcode 4.3 の新機能が含まれています。
Xcode 4.3.3
Xcode 4.3.3 は新しい OS X v10.7. 4の API をサポートし、OS X SDK への更新を提供しています。それ以外は、Xcode 4.3.3は、新機能はありません。
Xcode の堅牢性と信頼性の改善が組み込まれています。より詳細な更新情報は Xcode のリリースノートを参照してください。
Xcodeの4.2の新機能
Xcode 4.2 には、iOS5だけでなく、他のアプリケーションへの拡張機能をサポートする事が出来ます。
Automatic Reference Counting
Xcode 4.2 には Objective-C のオブジェクトのためのメモリ管理を自動化する自動参照カウント(ARC)を使うようにターゲットを変換するためのメニュー項目が含まれています。 ARC は、あなたのプログラムがメモリリークがある可能性を減らすことにより、メモリ管理が非常に容易になります。まず、Xcode は変換できない項目があるかどうかを判断する(それで、あなたは、手動で変更しなければならない)ようにプロジェクトを見直します。その後、Xcode はソースコードを、 ARC を使用するように書き換えます。
プロセスを開始するには、一般環境設定ペイン内で「エラーの後継続的にビルドする」を可能にして、[編集]> [リファクト]> Objective-C の ARC に変換]を選択します。変換したターゲットはアップルの LLVM コンパイラを使用してビルドするために更新されます。 Xcode は、ターゲットをビルドし ARC を使用するための変更を試みます。それが変換されるのを防ぐ問題を見つけた場合、Xcode はイッシューナビゲータでエラーを確認見直すように指示するダイアログが表示します。エラーを修正した後、Objective-C の自動リファレンスカウント (ARC)-変換のワークフローを再起動し、再びメニュー項目から 「ARC に変換」を選択します。
Xcode があなたのアプリケーションをビルドするときに成功した場合は、後で元に戻すことができるように、XCode は現在のコードのスナップショットを取得します。その後、Xcode はそれをビルドするために起こっている変化を示すプレビューダイアログがを表示します。あなたが変更を受け入れると、Xcodeは、コードが ARC を使用するように変換されます。
ARCの詳細については、ARC への移行のリリースノート を参照してください。
Default Compiler (標準のコンパイラ)
Xcode 4.2 の iOS の開発のためのデフォルトのコンパイラはLLVM3.0です。 Xcode 4.0 のデフォルトの GCC コンパイラと Xcode 4.1 の LLVM-GCC コンパイラと比較すると、LLVM は、GCC に比べ Objective-C の ARC のサポートを含む、新しい C++ 標準,C++0x の LLVM-GCC 新言語サポートよりも、良いコードの生成と最適化を提供します。
ストーリーボード
Xcode 4.2では、iOS アプリの UI デザインのための Interface Builder のユーザー·インタフェースは、ストーリーボードを使用しており、つまり、ユーザインタフェースオブジェクトに基づいたビューコントローラのイメージに、切れ目なく続いています。ストーリーボードは、あなたのアプリで全てのシーンを具体化し、それらとトリガするために使用されるコントロール間の遷移を含めて、Interface Builder を使用することで可能です。ストーリーボードを使用すると、複雑なマルチスクリーンアプリケーションのために書く必要のあるコードの量を大幅に減らし、グラフィカルにアプリケーションで多くのパスをレイアウトすることができます。
View Controller を使用するプロジェクトを作成するには[ファイル]> [新規]> [新規プロジェクト]を選択し、オプションダイアログで[ストーリーボードを使用する]のチェックボックスを選択します。
最初のシーンでは、View Controller オブジェクト(初期ビューコントローラ)で始めましょう。ストーリーボードのビューコントローラを取得するには、オブジェクトライブラリからオブジェクトとコントローラを選択し、必要なビューコントローラをキャンバスのの上にドラッグします。各ビューコントローラは、1つのシーンを管理します。 iPhone 上では、各シーンは、単一の画面の内容を表しています。iPad のアプリケーションの場合、画面は、複数の画面の内容から構成することができる。
アプリケーションでストーリーボードでは、ビューコントローラ内の各オブジェクトを、ディスプレイで変化するだろう新しいシーンを実装し構成するる別のビューコントローラへ、リンクして下さい。下の図を見るとわかるように、最初のビューコントローラは、緑色のアウトラインを持っています。コントロールとビュー·コントローラ間を、コントロール+ドラッグして Interface Builder で色々な View Controller をリンクして下さいv。他のビューコントローラのヘッダへの出力を持つ任意のコントロールからドラッグもできます。Xcode 3 や Xcode 4.0 アプリの nib ファイル内のウィンドウやビューにオブジェクトを追加するのと同じように、各 View Controller のビューにコントロールやビューを追加することができます。
ビューコントローラ間の矢印は、1シーンから別のシーンへ切れ目なく移る(セグエ)事を表しています。この移行(セグエ)を設計するには、たとえばシーンの間に使う推移の種類を指定し、矢印をクリックし、アトリビュートインスペクタを開きます。推移のカスタマイズの定義は、[カスタム]でセグエのスタイルを選び、カスタムセグエクラスの名前を記入してください。標準セグエクラスは(UIKit フレームワークリファレンス を参照)UIKit フレームにあります。UIViewController クラスのメソッドを実装する方法については、UIViewController のクラスリファレンス を参照してください。
その結果がグラフィカルにアプリケのすべての画面と画面間での制御の流れを表しているストーリーボードと言う事になるです。全体のストーリーボードを見るためにはキャンバスをダブルクリックし、ズームアウトします。
Open GL ES のフレームキャプチャ
デバッグの経験値を iOS の OpenGL ES アプリケーションをデバッグするための新しいワークフローを含むように更新しましょう。フレームキャプチャはアプリのスキームで有効にされると、デバッグバーが、OpenGL ES のフレームのデバッグビューを入力するための新しいコントロールを提供します。
この機能を有効にするには、iOS 5.0 以降のデバイス上でアプリケーションを実行する必要があります。 iOS デバイスへのスキームメニューで目的機を設定し、ツールバーの方式選択から「スキーム 編集」を選択します。「実行」アクションを選択し、[オプション]タブをクリックし、「OpenGL ES のフレームキャプチャ」チェックボックスを有効にします。
あなたが構築した OpenGL ES のアプリを実行すると、デバッグバーは、フレームキャプチャボタンが含まれています。フレームキャプチャするには、そのボタンをクリックしてください。
Xcode 4.2 を次のように使用できます。
- OpenGL ES の情報を点検します。
- OpenGL ES オブジェクトを、ビューテクスチャやシェーダなどのように点検。
- 描画呼び出しをステップ実行し、各呼び出しを使用した変更を監視します。
- イメージが構築される方法を正確に点検し、各描画呼び出しし、状態の各呼び出しをステップ実行します。
デバッグナビゲーターは、フレームに関連するすべての描画呼び出しと状態、コールのリストがあります。フレームに関連付けられているバッファはエディタペインに表示され、状態情報は、デバッグペインに表示されます。
あなたは、デバッグナビゲーターで、またはデバッグバーの二重矢印とスライダを使用して描画呼び出しをステップ実行することができます。
描画呼び出しの矢印や、スライダを使用すると、Xcode は、デバッグナビゲータでドローコールの中へステップトゥーできます。そのためには、キャプチャされたフレームの下でコントロールクリックし、ショートカットメニューから[デバッグナビゲータで解明]を選択します。
また、図面の標準ビューとワイヤーフレームビューを切り替えるには、ショートカットメニューを使用することができます。ワイヤフレームビューでは、選択した描画呼び出しで描画されている要素が強調表示されます。
キャプチャされたフレームに関連付けられたオブジェクトを参照するにはアシスタントエディタを開きます。アシスタントエディタでは、すべてのオブジェクトか、バインドされたオブジェクトのみか、またはスタックを参照するかを選択できます。同時にフレームのオブジェクトとスタックの両方を見るには、第二のアシスタントエディタペインを開きます。
そのオブジェクトの詳細を表示するにはアシスタントエディタでオブジェクトをダブルクリックします。テクスチャオブジェクトをダブルクリックすると、テクスチャの詳細を見ることができます。
模擬ロケーション
Xcode 4.0 および 4.1 では、アプリケーションの中では現在の位置だけをシミュレートできます。 Xcode 4.2 の時点で、あなたは、Core Location 機能を使用して、iOS アプリ内で現在の場所以外の場所をシミュレートすることができます。場所を設定するには、ツールバーのスキームセレクタから[スキーム編集]を選択し、[実行]アクションを選択して [オプション]タブをクリックします。その後、 [場所]メニューから場所を選択することができます。
それに加えて、iOS 5.0 かそれ以降用のアプリを実行しているか、Core Location を使用している場合は 、デバッグバーは、同じ場所にドロップダウンメニューがあります。
コンポーネントのダウンロード
XCode 4.2 では、ダウンロード時間とインストレーション効率を向上させるために、標準の Xcode のインストーラは、現在の開発ツールセットには必須ではないような古いシミュレータなどいくつかの大規模なツールのコンポーネントを、含みません。XCode はシミュレータをダウンロードする必要があるとき、ダイアログを提示します。ドキュメントの環境設定は、結果的にドキュメントおよびコンポーネント(シミュレータとSDK)の両方を含むダウンロードの設定に置き換えられました。ダウンロード環境設定ペインの[コンポーネント]タブを使用して、利用可能な各コンポーネントの説明を表示するには、それをダウンロードしてインストールして下さい。
Xcode 4.1 の新機能
Xcode 4.1には、アプリへの OS X v10.7 ライオンだけでなく、他の拡張機能をサポートするための機能が追加されています。
この記事では、Xcod 4.1 の新機能について説明します。これらの機能を使用する方法の詳細については、Xcode の概要 を参照してください。
プロジェクトの近代化
プロジェクトを開くと、Xcode 4 は、更新されるべき設定があるかどうかを評価します。この機能は、プロジェクトが最新の SDK とベストプラクティスに準拠していることを確認する簡単な方法を提供します。
プロジェクトで何かを更新する必要があるかどうかを確認するためには発行ナビゲータを開いて下さい。また、プロジェクトナビゲータでプロジェクトを選択し、[エディタ]>[検証設定]を選択することができます。
発行ナビゲータが近代化の問題をリストしている場合、なされるべきアップデートを説明し、それらのいずれかを実行するためのダイアログを表示するには、問題をクリックします。
すべての変更を行うかどうかを選択して、[変更を実行]をクリックした後は、Xcode は警告を再び表示しません。チェックを再実行するには、プロジェクトナビゲータでプロジェクトを選択し、エディタのメニューから[検証設定]を選択します。
標準コンパイラ
Xcode 4.1 で iOS を開発するための標準のコンパイラは LLVM-GCC4.2 です。 GCC4.2 とsソース互換性を正確に保ちながら、Xcode 4.0で標準であった GCC コンパイラと比較して、LLVM-GCC は、よりよいコード生成と最適化を提供します。
カスタムビヘイビア
[ビヘイビア]環境設定ペインでは、様々なイベントが発生したときにどうするかを指定できます。 Xcode 4.1 は、新しい[ビヘイビア]オプションを導入し、スクリプトを実行し、ナビゲーターとユーティリティペインとツールバーを拡張したり畳んだりし、フルスクリーンモードへの切り替えなどの新しい動作オプションが導入されています。この機能により、スクリプトを実行したり、多くのトリガーに応じてさまざまなアクションを実行するように Xcode を設定でき、Xcode の行動のパワーを拡張します。
また、メニュー項目やそのキーの等価物によってトリガされるビヘイビアを定義することで、カスタム動作を設計することができます。この機能を使用すると、いつでも呼び出すことができるビヘイビアを作成することができます。あなたがビヘイビアを一度作成したら、それは Xcode>ビヘイビア・メニューに表示されます。
カスタムビヘイビアに対応するキーを割り当てるキーバインドの設定ペインで、キーを割り当てたいビヘイビアを見つけるには[カスタマイズ]タブを選択してください。
プリプロセッサとアセンブリ出力
Xcode 4.1 は、ソースファイルを処理し、前処理された出力またはアセンブリ出力を生成するために、「Product > Generate Output 」メニューのコマンドを導入しました。
プリプロセッサは、ソースコード内のディレクティブを評価し(include や define や、条件付きロジックのシャープ記号(#)で始まる命令) C コードに変換してコンパイラに送ります。コンパイルされたコードの問題をデバッグするために、期待したようにプリプロセッサによって解釈されたことを確認するためにプリプロセッサの出力を調べることができます。
アセンブリ出力は、コンパイラがプリプロセッサ出力から生成された命令のセットです。アセンブリ出力を調べて、命令が形成され、順序立てられて、また最適化されるより良いパターンを探したりコンパイラのバグを発見するのも一興です。
出力タイプは、選択されたプライマリファイルのアシスタントエディタではまた新しいカテゴリです。
自動レイアウト
Xcode 4.1 の Interface Builder は、新規の AppKit 自動レイアウト機能のサポートを追加しています。自動レイアウトは、OS X v10.7 ライオン以降で利用可能であり、ユーザインタフェースにオブジェクトのレイアウトを支配するための制約と呼ばれる関係を使用しています。この機能は、自動サイズ変更マスクのための完全な代替品です。Interface Builder でビューやコントロールへの変更をすると(サブビュー追加、属性の変更、サイズの変更、動き回るなど)、Interface Builder は自動的に、新しいレイアウトに基づいて制約を追加したり除去したりします。この機能を有効にすると、作業中に、Interface Builder は制約を示します。
自動レイアウトは、nib ファイルごとに有効になっています。自動レイアウトを開始するには、各 nib のファイルインスペクタの[自動レイアウト]チェックボックスを選択します。自動レイアウトを有効にすると、必要であれば、Xcode はターゲットが OS X 10.7 以降であることを保証するために、ビルド設定を更新します。自動レイアウトを有効にすると OS X 10.6 以前を対象としていたプロジェクトの nib ファイルの場合は、Interface Builder は自動的にあなたの nib ファイルに制約を追加します。
あなたは、自動制約を編集したり、独自のものを追加することができます。制約を追加するには、ビューを選択するか[エディタ > 制約を加える]メニューから制約を選択して追加します。
あなたは、ユーザー制約は削除できますが、自動制約を削除することはできません。自動制約を削除しようとするよりも、必要な制約を作成して下さい。
スキームのビルド設定値のプリアクション及びポストアクションスクリプト
プリアクションとポストアクションスクリプトが(フェイズワークをビルドするシェルスクリプトと同様に)ターゲットのビルド設定値にアクセスする必要性がしばしばあります。この拡張機能は、プリアクション、ポストアクションスクリプトでの、スキームエディタからそれらのポップアップメニューから使用できるように、ターゲットのビルド設定を定義することができます。
OS X のアプリサンドボックス
アプリサンドボックスは、アプリがシステムの他の部分と相互作用可能な方法についての権利として知られている制限を、強制します。サンドボックス化されたアプリは、妥協が困難であるため、ユーザーのためのセキュリティが強化されます。アプリがネットワークへのアクセスの必要がない場合などには、アプリのサンドボックスは、ネットワークアクセスを禁止するように指定することができます。敵対的なハッカーがユーザーのコンピュータ上でアプリの制御を引き継ぐようにしたとしても、ハッカーは、インターネットに電子メールを送信したり、接続するためにアプリを使用することはできません。
iOS のプラットフォームは、OS X ライオンと同じようにしばらくの間、エンタイトルメントをサポートしています。 Xcode 4.1 では、プロジェクトエディタは、OS X アプリのために資格を得るための UI を提供します。プロジェクトエディタでターゲットごとに資格を設定することができます。コード署名資格がユーティリティペインでファイルテンプレートで使用できるファイルのデフォルトもあります。
アプリのサンドボックスを有効にすると、既に持っている場合は、資格ファイルを選択できます。そうしないと、Xcode は、プロジェクトの名前と拡張子 entitlement を持ったものを作成します。 Xcode でプロパティリストエディタでこのファイルを表示し、編集することができます。
デバッガと逆アセンブル
デバッガの逆アセンブル機能は、デバッグの時何を見たいかによって選択の可能性を提供する、すなわちソースのみ(使用可能な場合)、逆アセンブリのみ、またはソースおよび逆アセンブリから選べる。逆アセンブリは、プログラムの実行中にはデバッガから見るとアセンブリ言語命令のセットである。逆アセンブリを表示すると、ブレークポイントで停止しているときにコードが何をしているか、より深い理解を与えることができます。一緒に逆アセンブリとソースコードを表示すると、より簡単にあなたが書いたコードと実行中の命令を関連付けることができます。
逆アセンブルのみの表示を可能にするには、Product>Debug Workflow を選択します。ソースおよび逆アセンブリを同時に表示させるのは Assistant のカテゴリで実現されています。
Gitのリモート管理
Git のリモートレポジトリのサポートは、Xcode 4.1 で追加されました。(プッシュまたはプルなどの)適切な SCM ワークフローからリモートリポジトリを選択することができます。この機能は、ソースコントロール管理に使用する時 Xcode の能力を増強します。
インプレーススナップショットの復元
Xcode 4.0 リリースでは、スナップショットは現在のプロジェクトの内容の上には復元できませんでした。スナップショットに保存されたバージョンを使用してあなたの作ったアプの現在のバージョンをワークフローで置き換え、スナップショットを復元してから、現在のバージョンを Finder で削除し、適切なフォルダにスナップショットのバージョンを移動して下さい。 Xcode 4.1 では、特に指定しない限り、スナップショットは自動的に、現在のバージョンの上に復元されます。
XCode 4.1 では、[ファイル]メニューから[スナップショットを復元]を選択し、スナップショットを選び選択したときには、 Xcode は、プロジェクトの現在のバージョンとスナップショットのバージョン間の違いを確認できるプレビューダイアログが表示されます。[復元]をクリックすると、 Xcodeは、スナップショット内のバージョンと、プロジェクトの現在のバージョンを置き換えます。 Xcode は、それを置き換える前に、現在のバージョンのスナップショットを作成します。
現在のプロジェクトの上に復元する代わりに、新しい場所でスナップショットを復元するには、復元したいプロジェクトを選択し、オーガナイザウィンドウの [Projects ] ペインでスナップショットを選択し、ウィンドウの下部にある[エクスポートスナップショット]ボタンをクリックしてください。
リポジトリの内部プロジェクトファイル
この機能は、SCM 引き渡し及び SCM の詳細を見たときには、ワークフローを更新(スキーム、ユーザーインターフェイス設定など)の内部プロジェクトファイルの可視性を提供します。あなたは、ソースファイルを追跡したのと同じ方法で、プロジェクトファイルのバージョンを追跡・保存し、維持するために、この機能を使用できます。
スキームと実行先の選択
スキームと実行先を選択するためのポップアップメニューは、パスコントロールへと変更され、スキームか実行先を独立して選択できるように変更されました。まだ(スキームのサブメニューを使用して)、一つのジェスチャーの両方を選択することができます。たくさんスキームや実行先を持つプロジェクトやワークスペースは、このパスコントロールは、メニューを大幅に短くし、対処しやすくなります。
プロジェクトやワークスペースを閉じるキー組み合わせ
Xcode 4.0 では、プロジェクトまたはワークスペースを閉じるには、キー組み合わせはデフォルトのキーがありませんでした。ワークスペースウィンドウの左上隅にあるクローズボックスをクリックしたときに Option キーを押し続けていた場合、プロジェクトを再度開くと、すべてのタブ、ウィンドウ、プロジェクトは、閉じられ、以前のウインドウやタブの組み合わせは再び開きませんでした。 Xcode 4.1では、コマンド + Option + W キーの組み合わせで、プロジェクトまたはワークスペースを閉じます。Optionキーを押しながらクローズボックスをクリックすると、プロジェクトまたはワークスペースは、すべてのウィンドウとタブを閉じずにプロジェクトかワークスペースだけが閉じます。このように、あなたのウインドウの設定は保存され、プロジェクトを開いたときに復元されます。
Interface Builderのプラグインのサポート
あなたは Xcode 3 に Interface Builder のプラグインを使用していても、Xcode 4 でプロジェクトをビルドし実行し続けることができ、あなたは Xcode 4 であなたの nib ファイルを編集可能にしプロジェクトを更新できます。
Xcode 4 は、Interface Builder 3 のプラグインを限定的にサポートします。具体的には、Interface Builder プラグインの依存関係を持つプロジェクトをビルドすることができますが、nib ファイルを編集することはできません。あなたは、プラグインと依存関係にあるnib ファイルを開こうとすると、XCode 4 は、ファイルを更新することを示唆するダイアログを表示する。同意する場合は、Xcode は、最寄りの AppKit クラスへのプラグインを使用してビルドされるカスタムオブジェクトのクラスに変換されます。変換が不可能な場合は、Xcode 4 は、詳細なエラーメッセージを提供します。あなたは Xcode 4 中の nib ファイルを編集する前に、Interface Builder 3 を使用したプラグインの依存関係を削除する必要があります。
前の章 次の章