Xcode 4 公開ノート
Xcode 4.6.3 公開ノート
解決済みの問題
デバッグ:LLDB
- OS X 10.8.4 上で iOS シミュレータでデバッグするとハングします。13722320
Xcode 4.6.2 公開ノート
変更点
ビルド:カーネル拡張機能
- Xcode 4.6.1 および 4.6.2 でビルドされたカーネル機能拡張(kexts)は OS X 10.6 および 10.7 にロードするのに失敗し、このエラーメッセージがコンソールに表示されます。
kernel: kxld: The Mach-O file is malformed: Invalid segment type in MH_KEXT_BUNDLE kext: 42
OS X10.6 および 10.7 にロードした kexts をビルドするのに、kexts をビルドするターゲットで、OS X の配置ターゲットは OS X10.6 への設定しビルドします。13645170
解決済みの問題
一般
- 実装の安定性が修正されます。13518419、13518436、13518436、13518526、13611415
新たな問題
コード署名:カーネル拡張機能
- OS X 10.8.3 上でコードサイン入りの kexts をビルドする場合は(kext をビルドし、ターゲットにコードサインをオンにする)、その kext は、OS X10.7.x 以前ではロードに失敗し、以下のエラーメッセージがコンソールに表示されます:
- OS X 10.7.x 以前のバージョンで、サインの無い kext をロードしビルドするには、kext をビルドするターゲットで、コード署名 ID のビルド設定を「サインしない」にします。
- OS X 10.7.x 以前のバージョンで kext をロードしビルドするには、OS X 10.8.2 以前を実行中の Mac で kext にコードサインします。13428950
kernel: kxld: The Mach-O file is malformed: Invalid segment type in MH_KEXT_BUNDLE kext: 29
回避方法:
kext のサイン付きとサインなしのバージョンをビルドする必要がある場合は、一つを kext をコードサインして構成し、もう一つはそれにサインしないように設定し、同じ kext をbビルドし、プロジェクトの別々のターゲットにすることができます。
既知の問題
ビルド
- Xcode 4.6.1 以前のバージョンでビルドされたプロダクトをビルドする場合、ビルドは、以下のようなエラーで失敗します:
PCH file built from a different branch ((clang-425.0.27)) than the compiler ((clang-425.0.28))
この問題に対処するには、プロダクトをビルドする前に、[プロダクト(Product)] > [クリーン(Clean)]を選択します。13663167
Xcode 4.6.1 公開ノート
新機能
一般
- SDK は:
OS X SDK 10.8.3です(13130441)
解決済みの問題
コンパイル
- ARC を使用して Xcode4.6 でビルドされたアプリでは OS X 10.6 での起動時にクラッシュします。(13129783)
ヘルプとマニュアルへのアクセス
- ドキュメント doc set の更新は、以下のメッセージと共に失敗します。
Install path < path_1 > points to a different documentation package < path_2 > than expected < path_3>
13292012
既知の問題
ヘルプとマニュアルへのアクセス
- 複数の Xcode の doc set は、ドキュメントのオーガナイザーに記載されています。13207501
- Xcode の環境設定ウインドウを開き、ダウンロードボタンをクリックし、ダウンロードの環境設定を表示します。
- ドキュメントのボタンをクリックします。
- Xcode の doc set (「Xcodeの...」というタイトル)を選択します。
- (+ ボタンの左側にある)[表示文書セット情報]ボタンをクリックして、文書セットの情報を明らかにします。
- doc set のバージョンが 509.12 より前の場合は、[削除](-)をクリックしてドキュメントを削除します。
この問題を避けるためには、バージョン番号が 509.12 より前の全ての Xcode の doc set を書類の環境設定から削除します:
Xcode 4.6 公開ノート
新機能
一般
- SDK は:
- OS X SDK 10.8
- iOS SDK 6.1
- デバイスのサポート (追加):
- iPad ミニ
- Retina ディスプレイの iPad (第4世代)
機能強化
コンパイル
- LLVM:自動リリースカウント(ARC)と弱い参照を使用する際に微妙な行動のバグを見つけるのに役立つ新しいコンパイラの警告。
- LLVM:C++ 11 のユーザ定義リテラルと無制限組合のサポート。
- LLVM:ばらばらのスタックオブジェクトをマージするためと、割り当てられたスタックメモリのサイズを小さくするための高度な最適化。
- LLVM:型ベースエイリアス解析(TBAA)コードの最適化がデフォルトで有効になっています。
- LLVM:i386 と x86_64 版の Microsoft 形式のインラインアセンブリのサポート。
- LLVM:スタティックアナライザは、C++と Objective-C のコードの深いクロス機能解析をサポートしています。
- otool:インテル AVX 命令のディスアセンブルをサポートしています。
- otool:テキストセグメント内のデータエントリ上のすべての命令をスキップし、正確に全ての命令をデコードします。
llvm -fno-strict-aliasing オプションを指定して、この最適化を無効にすることができます。
Xcode プロジェクトでは、[Enforce Strict Aliasing]ビルド設定がこの機能管理します。
デバッギング
- Xcode UI:NSArray と NSDictionary のオブジェクトの要素を検査します。
- LLDB:Objective-C ランタイムからメタデータを読み込みます。
- LLDB:インライン化機能をステップオーバーするサポートを改善します。
- LLDB:デフォルトでは、バックトレースで機能の引数の情報をプリント。
- LLDB:「スレッドの戻り」と、「一時的なブレークポイントコマンド」、および一般的な GDB のショートカットを追加する、様々なエイリアスのサポート。
変更点
一般
- 旧式:LLVM-GCC コンパイラおよび GDB デバッガ。
- 旧式:パッケージメーカーのアプリ。
- 旧式:ATS.framework(OS X SDK 10.8)。
Xcode 4.6 は LLVM-GCC コンパイラおよび GDB デバッガを含む最後のリリースです。
LLVM コンパイラや LLDB デバッガを使うには、https://bugreport.apple.com で LLVM-GCC と GDB が必要な問題をファイルレポートしてください。
インストーラパッケージを作成するには productbuild コマンドを使用して下さい。
ATS API を使用すると、コンパイル警告を生成します。
OS X v10.8 の機能が失われることはありませんが、パフォーマンスが低下する領域ができる可能性があります。
コア·テキスト·コール(詳細は、コアのテキスト·プログラミング·ガイド を参照)(ATSUIを含む)で、ATS コードを変換してください。
Xcode 4.5.2 公開ノート
解決済みの問題
一般
- 以下の問題を修正しました:Xcode 4.5 で報告されていた、Xcode アプリと LLDB デバッガがクラッシュする、以下の報告: 12482521、12482518、12481393、12481829、12481363、12481302、12481396、12482364、12514294、12364375、12481322、12481370、12481398、12481373、12489094、12483605、12481863、12482083、12482540、12481426、12482542、12481390、12482362、12481885
ユーザーインターフェイス編集
- ストーリーボードを編集している時に、自動レイアウトを使用する場合に、安定性を改善しました。12482514、12482536、12482526、12482548
デバッギング
- LLDB のメモリリークを修正しました。12483722
- 直接 iOS シミュレータを終了したときの動作を改善しました。12481405
アプリの配布
- iOS App Store にアプリを提出する際に、時折 Xcode がハングすることを改善。12482847
Xcode 4.5.1 公開ノート
機能強化
一般
- [すばやく開く]ダイアログの応答性を改善しました。12251666
- Xcode アプリのタブ間のスイッチング反応を改良しました。12364395
デバッギング
- シミュレータ上でアプリを実行している時の安定性と応答性を改善しました。12388056、12364385、12364295
解決済みの問題
ユーザーインターフェイス編集
- ユーザーインターフェイスの文書を編集している時にクラッシュしました。12364019、12389062、12388854、12389040、10261299
プロパティリスト編集
- プロパティリスト・ファイルにキーを追加することの問題。12377407
デバッギング
- デバッグコンソールには、すべての入力文字が表示されません。12364400
ソース管理
- Xcode のアプリによって知られている作業コピーとの相互作用の問題。12364258、12389205、12389198
Xcode 4.5 公開ノート
新機能
ユーザーインターフェイス編集
- Interface Builder のキャンバスは、iPhone の画面レイアウトを切り替えるための新しいボタンがあります。ボタンをクリックすると、Xcode は、選択された iPhone の画面サイズに合わせて、フルスクリーンビューのサイズに変更します。トップレベルのビューのサイズが変更された場合、Xcode は、レイアウト制約で示されたサイズ変更ルールを使うか、サイズスペクタでのスプリングや見せびらかしがコンテインド・ビューに流れ込みます。12290237
レイアウトをボタンを使って切り替え、新たな Retina 4 の画面と、以前の画面サイズの両方で期待どおりにサイズ再変更ルールが仕事を定義することを確実にできるようにします。
ユーザーインターフェース編集:ストーリーボード
- ストーリーボードは現在、ビューコントローラの封じ込めをサポートしています。ストーリーボードの親ビューコントローラに子 View Controller を追加することができます。実行時に viewDidLoad メソッドが親コントローラ上で呼び出されると、(その子のコントローラのビュー階層で構成される)ビュー階層がすでにロードされています。9630246
別のビューコントローラの子としてビューコントローラを追加するには:
- オブジェクトライブラリからのコンテナビューを追加します。
- 埋め込みセグエと子ビューコントローラにコンテナビューを接続します。
機能強化
一般
- Xcode は、スキームを自動的に作成するとき、それは今プロジェクトの順序に(ワークスペース内に)、新しいスキームを追加し、ターゲットの順(各プロジェクト内で)に追加します。7996506
ユーザーインターフェース編集:ストーリーボード
- これでモーダルセグエを、アニメーションなしで提示されるように指定することができます。10384049
- これで、ストーリーボード内にシーンの既存のインスタンスに移行できるように、アンワインドセグエを作成することができます。9211697。
Xcode の以前のリリースでは、プログラム的にアンワインドセグエを実装している場合があります。詳細については、「iOS SDK の使用方法」を参照してください。
iOS SDK の使用法
- アプリが iOS 6.0 以降で実行している場合、お使いの UIViewController のサブクラスの shouldPerformSegueWithIdentifier:sender メソッドの中で、セグエのアトリビュータ・インスペクタで設定された特定の識別子とセグエをトリガするかどうかを決定できます。9447109
Subversion のソース管理
- Subversion で管理しているプロジェクトを更新すると、コンフリクトがない場合には、Xcode は自動的に更新プログラムを適用します。11913482
それらを適用する前に、リポジトリからの変更を見るには、[ファイル]>ソース管理]> [更新]を Control キーを押しながら選択して下さい。
変更点
一般:iOS
- Xcode のこのバージョンは、armv6 のバイナリを生成しません。12282156
- 最小配置ターゲットは iOS 4.3 です。12282166
- この Xcode のリリースでは、自動レイアウトは、新しいユーザーインターフェイスのドキュメント(ストーリーボードと nib ファイル)がオンになっています。自動レイアウトは iOS 6.0 を必要とするため、以前の iOS リリースに基づいたユーザー·インターフェース文書を使用すると、クラッシュしたり、他の未定義の動作となります。12289644
アプリが以前の iOS リリースで実行するには、そのユーザー·インターフェース文書では自動レイアウトをオフにしてください。
配布アプリ:iOS
- Xcode のこのリリースを iOS の配置ターゲットが iOS 4.3 より前にして App Store のアプリへ提出することはできません。検証プロセスは、メッセージ「このバンドルは無効です。Info.plist の中のキー UIRequiredDeviceCapabilities は、以前のバージョンでサポートされたデバイス上でこのアプリケーションを実行される事から、妨げる値が含まれない場合があります。」12309358
iOS 4.3 以降をアプリの iOS 配置ターゲットに設定します。
プロジェクトの作成
- この Xcode のリリースで作成されたプロジェクトは、標準 C++ ライブラリの新しい libc++ の実装を使用している。libc++ ライブラリは、iOS 5.0 以降および OS X10.7 以降上で、利用可能です。12221787
プロジェクト内の iOS と OS X の以前のリリースでの展開を可能にするには、C++ 標準ライブラリビルド設定を libstdc++(GNU C++ 標準ライブラリ)に設定してください。
デバイスの管理
- iOS デバイスへアプリのデータファイルをアップロードするには、OS X v10.7 および v10.8 で正しく動作します。12017933
ソース管理
- RCS と CVS は、この Xcode のリリースでは旧式になっています。12252058
インストール
- Xcode 4.3 以降、Xcode.app ファイルパッケージは、すべての Xcode デベロッパツーをが含んでいます。コマンドラインツールの Xcode の使用については、マニュアルのページも、このパッケージ内にあります。しかし、これらのマニュアルページは、man コマンドによって検索される場所には含まれません。これらのマニュアルページにアクセスするには、man コマンドで使用されるマニュアルページの索引に追加する必要があります。 10658081
- 以下のシェルコマンドを実行することにより、使用している Xcode.app パッケージの MANPATH を構築します:
- コマンドシェルで MANPATH 環境変数を設定します。
- C シェル
- Bourne シェル
- 新しいシェル·ウィンドウを開き、MANPATH のリストが、使用している Xcode.app パッケージへのパスを表示していることを確認します。
- 以下のシェルコマンドを実行して、man ページに印を付けてください:
マニュアルページインデックスに Xcode の man ページを追加するには:
#!/bin/tcsh set xcodeManPathsTmp=/tmp/Xcode # Expect to find Xcode.app in /Applications find /Applications/Xcode.app -name man >! $xcodeManPathsTmp sudo cp $xcodeManPathsTmp /etc/manpaths.d
/etc/csh.login を編集して、if(-x/ usr/ libexec/ path_helper)then 行の前の < code > の前に以下の行を追加します:
/etc/profileを編集して、if[-x/ usr/ libexec/ path_helper/span]; 行の前に以下の行を追加します:
path_helper コマンドは、PATH (パス)と MANPATH 環境変数に manpaths.d ファイル内のパスを追加します。
代替: このコマンドを実行するには、ホームディレクトリ内のシェル起動ファイルを編集します。
sudo/usr/libexec/makewhatis
新たな問題
ユーザーインターフェイス編集
- ストーリーボードにジェスチャ認識機能を追加すると、それが誤ってターゲット·ビューの、システムが提供するジェスチャー認識機能を上書きしてしまいます。たとえば、テーブルビューに、タップジェスチャ認識を追加すると、テーブルビューがスクロールしない結果になります。12200238
ストーリーボードでのジェスチャ認識の接続を外し、コード内でそれを適用します。
パフォーマンスの測定と分析:インストルメント
- お使いの Mac が、Xcode の複数のコピーを含んでおり、Xcode のインストールパスが正しく設定されていない場合、インストルメント内のシミュレータのターゲットで実行されている UI 自動化スクリプトは失敗します。 12288632
- このコマンドで、 < path_to_the_Xcode_package > は 使用中の Xcode.app パッケージへのパスです:例えば
以下のシェルコマンドを実行して、実行中の Xcode のインスタンスへのパスを決定します。
返されたパスが実行している Xcode へのインスタンスを指していない場合、以下のシェル·コマンドを実行します。
/Applications/Xcode.app
既知の問題
一般
- Xcode は起動したとき何もウィンドウを表示しない場合があります。これは、https://developer.apple.comから Xcode をダウンロードした場合にこれは起こり、システム環境設定の「アプリケーションが終了時にWindowsを閉じる」を選択していない場合に発生します。11865559
別のアプリに切り替え、Xcode を再起動します。
コアデータモデル編集
- MobileMe の同期のサポートは廃止されました。しかし、syncable のプロパティは、まだ実体およびプロパティで「ユーザー情報の辞書」では、デフォルトで YES に設定されていますが、モデルエディタは、この設定を表示しません。10787672
- シンクロをオフにしたいモデルファイルの実体またはプロパティを選択します。
- データモデル・インスペクタのユーザー情報セクションで、以下のキー値のペアを追加します。
明示的に実体またはプロパティに、syncable を NO に設定するには、ユーザー情報辞書にキー値のペアを追加します:
キー | "com.apple.syncservices.Syncable" |
---|---|
値 | "NO" |
ソースコードの編集
- OS X v10.8 上のテキストやフォントのレンダリングは、Retina ディスプレイに最適化されています。Retina でないディスプレイで実行中の OS X v10.8 上で、いくつかのフォントの設定が、Xcode でぼやけて見えることがあります。11486875
Retina でないディスプレイに最適化された、Xcode でのテキストとフォントの外観に切り替えるには、ターミナルで次のコマンドを入力します。
ローカライゼーション
- プロジェクトエディタで「ベース国際化を使用」オプションを選択すると、Xcode は、各プロジェクトのユーザインタフェース文書の文字列のファイルを生成します。11462724
ユーザーインターフェイス文書から新しいコンテンツを使用して文字列のファイルを再同期するには、ibtool コマンドの --generate-strings-file オプションを使って、新しい文字列ファイルを作成します。その後、手動で既存のローカライズされた文字列に新しいファイルを合体させます。
自動レイアウト:ランタイム
- 実行時には、nib ファイルから両方のビューのロード中に分割されたビューにサブビューを追加するとき、分割されたビューペイン上のマスクの制約を自動サイズ変更している為、満足できない制約についてのメッセージのログを見ることがあります。分割ビューは自動的にサブビューを追加した後、問題を修正するため、これらは、良性のログメッセージです。11614767
コードでは、分割ビューにサブビューを追加する前に、setTranslatesAutoresizingMaskIntoConstraints:NO をサブビューに送信します。
LLDB でのデバッグ
- po、print、 および expression のコマンドが直接に列挙子にアクセスすることはできません。列挙型の名前を使用する必要があります。11485295
例えば、コードが enum MyEnum{E1、E2} を含んでいる場合は、print e1 を入力すると、LLDB はエラーを発します。代わりに、print MyEnum::e1 と入力して下さい。
Xcode 4.4.1 公開ノート
変更点
アプリの配布
- App Store に提出したときに Xcode はもはやアプリの指定された要件を保持していません。12006125
いくつかのアプリが、指定した要件のため提出を防がれました。
解決済みの問題
デバッギング
- 直接 iOS シミュレータを終了した後に、Xcode は、シミュレータ上で実行しているように起動したプロセスを表示し続けます。11998376
ソースコードの編集
- Xcode は、Objective-C++ ファイルではコード補完を提供していません。12006547
コンパイル:LLVM
- LLDB デバッガは、いくつかの変数で間違ったアドレスを取得します。12006552
- 自動参照カウント(ARC)に基づくベクターでの Objective-C のファイルを C++ 11 でコンパイルする場合、LLVM コンパイラは誤ったコードを生成します。12006560
- ARC の下で、サイズに最適化された Objective-C のコードは、実行時にクラッシュする可能性があります。12006567
ユニットテスト
- ユニットテストの実行中に Xcode は応答しなくなります。12017975
既知の問題
デバイスの管理
- iOS デバイスにアップロードするアプリのデータファイルが動作しない場合があります。12017933
- OS X v10.8 上で、.xcappdata ファイルを複製し、複製をアップロードしてください。
- OS X v10.7 ではこの問題への回避策はありません。
Xcode 4.4 公開ノート
新機能
一般
- プロジェクトナビゲータ、Finder ウィンドウ、および他のアプリにジャンプバーからファイル、ディレクトリ、グループアイコンをドラッグすることができます。7452760
- プロジェクトエディタの[ベース国際化を使用する]の設定は、OS X v.10.8 以降で展開する Mac 製品にのみ機能します。Xcode はまた、OS X v.10.8 以降で動作している必要があります。この設定は、iOS のプロジェクトではサポートされません。11712855
ソースコードの編集
- ソースエディタは、それを編集した後の行の末尾の空白を削除することができます。この動作を制御するには、[テキスト編集の環境設定]のオプション「自動的に末尾の空白を取り除く」で制御できます。2535591
- [テキスト編集の環境設定]で「自動的に閉じ括弧を挿入」オプションをオンにすると、開き括弧、中括弧、または引用符を入力すると、ソースエディタは、対応する終了文字を追加します。「タイプオーバー補完を有効にする」オプションをオンにすると、エディタは、文字を入力すると終了文字が追加されます。この機能は、すぐに開閉両方の文字を入力するときのように終了文字が重複して現れるのを低減します。3780948
Tab キーを押して終了文字の上をジャンプします。
コンパイル:ARM
- LLVM は、ARM アセンブラを統合しました。この新しいアセンブラは iOS 製品のコンパイル時間を改善させ、また ARM アセンブリコードのためのより良いユーザー·レベルの診断を提供します。このアセンブラは統一アセンブリ言語( UAL )アセンブリコードを使用しているため、手動で生成されたアセンブリ·コードを使用するプロジェクトを更新する必要があります。9136376
十分に分割された構文のアセンブリコードを UAL へ移行する時、プロジェクトで clang-no-integrated-as のコマンドライン・オプションを使用して下さい。
機能強化
ソースコードの編集
- コード補完の対話中に、Xcode は、最近使用した補完候補に高い優先順位を与える。9790948
プロパティリスト編集
- カスタム・プロパティ・リストファイルのルートオブジェクトを表示して変更することができます。8635494
プロジェクトの作成
- プロジェクトを作成するときには、ワークスペースに追加するか、スタンドアロンのプロジェクトを作成するかを選択できます。8032086
解決済みの問題
ユーザーインターフェイス編集
- オプションを押しながら、キャンバス内のビューの上にポインタを置くと、距離値は、サイズ変更ハンドルなどの他の要素によって隠されていません。8204499
ファイルシステム
- ファイル名の文字の一文字であっても、ファイルの名前を変更することができます、大文字と小文字を区別しないファイルシステム上でも。7846036
新たな問題
一般
- プリコンパイルヘッダ(PCH)ファイルを再構築に失敗すると、構文の強調表示、コード補完、Command+ クリックが正しく動作しなくなります。11538640
- 立ち上げだとき Xcode はウィンドウを何も表示しない場合があります。https://developer.apple.com から Xcode をダウンロードして、システム環境設定の「アプリケーションが終了時にウインドウを閉じる」が選択されていない場合に発生します。11865559
PCH のインデックスフォルダを削除します。
別のアプリに切り替え、Xcode を再起動します。
ソースコードの編集
- OS X v10.8 上のテキストやフォントのレンダリングは、Retina ディスプレイに最適化されています。OS Xのv.10.8 実行中の Retina でないディスプレイで、いくつかのフォントの設定は、Xcode ではぼやけて見えることがあります。11486875
ターミナルで次のコマンドを入力して、Xcode で Retina でないディスプレイに最適化されたテキストとフォントの外観に切り替えます。
コアデータモデル編集
- MobileMe の同期をサポートは旧式になりました。しかし、syncable プロパティは、まだ実体およびプロパティのユーザー情報の辞書では、デフォルトで YES に設定されていますが、モデルエディタでは、この設定を表示しません。10787672
- モデルファイル上で同期をオフにしたい実体またはプロパティを選択します。
- データモデルインスペクタのユーザー情報]セクションで、以下のキーと値のペアを追加します。
明示的に、実体またはプロパティには、syncable には NO を設定し、ユーザー情報辞書のキーと値のペアを追加します:
キー | "com.apple.syncservices.Syncable" |
---|---|
値 | "NO" |
ローカライズ
- プロジェクトエディタで「ベース国際化オプションを使用する」を選択すると、Xcode は、各プロジェクトのユーザインタフェース文書の文字列のファイルを生成します。11462724
ユーザーインターフェイス文書から新しいコンテンツを使用して文字列のファイルを再同期するには、ibtool コマンドの--generate-strings-file オプションを使用し、新しい文字列のファイルを作ります。その後、手動で既存のローカライズされた文字列に新しいファイルを合体します。
デバッグ:LLDB
- po,print 、および expression のコマンドは直接列挙子にアクセスすることはできません。列挙型の名前を使用する必要があります。11485295
例えば、コードが列挙 MyEnum{E1、E2}; を含んでいる場合は、print E1 を入力すると、LLDB はエラーを発します。代わりに、print MyEnum::E1 と入力します。
自動レイアウト:実行時
- 実行時には、nib ファイルから両方のビューのロード中に分割ビューにサブビューを追加するとき、分割ビューペイン上のマスクの制約を自動サイズ変更時の満足できない制約についてのログ・メッセージを見ることがあります。分割ビューは自動的にサブビューを追加した後、問題を修正するため、これらは、良性のログメッセージです。11614767
あなたのコードで、分割ビューにサブビューを追加する前に、setTranslatesAutoresizingMaskIntoConstraints:NO をサブビューに送信します。
Xcode 4.3 公開ノート
解決済みの問題
一般
- フルスクリーンモードでタブをドラッグすると Xcode はクラッシュします。9987358
- 同じフォルダの参照(青いフォルダ)を含む複数のワークスペースを開くと Xcode はクラッシュします。10079252
インストール
- OS X v10.7.3 以降で Xcode をインストールすると Xcode 4.3 インストルメント・アプリを壊します。10619572
ユーザーインターフェイス編集
- nib ファイル内の自動レイアウトを有効にすると、間違った制約が適用されます。8201103
- 自動レイアウトを使用するビューのサイズを変更する際、Xcode は、兄弟や先祖にでなく、サイズ変更されているビューの子孫に制約を適用します。9450655
- Xcode は、負の値で制約することはできません。9717632
- ユーザー制約を作成すると、Xcode は常に好ましくない、冗長な制約を削除します。9794979
- トップレベルのビューに幅と高さの制約を追加することはできません。9877773
ビルド
- 同じ名前の別のヘッダファイルを生成するターゲットを含むプロジェクト内に、Xcode は謝ったヘッダを インポートします。8201103
- Xcode が一般環境設定のオプション「エラーの後ビルドを続行」がオンになっていて、ビルドエラーが発生した場合、ビルドはハングアップすることがあります。10642885
既知の問題
一般
- そのディレクトリ内 には Xcode のベータ版があるので、App Store のアプリは /Applications ディレクトリには Xcode をインストールすることはできません。
/Applications ディレクトリ内 に Xcode のベータ版をインストールしないでください。10824869
iOS SDK のサポート
- サポートコンポーネントをデバッグする iOS 3.x のデバイスをインストールした後に Xcode は、デバッグのためのデバイスでアプリを起動することはできません。
お使いの Mac で一度デバイスを抜いて再度差し込み、armv6 のアーキテクチャのためのアプリをビルドしていることを確認してください。10538662
ソースコードの編集
- Xcode は一致しないかっこがある場合、コード補完候補を表示しません。
一致しない括弧の数を減らすためにテキスト編集の環境設定で「自動的に閉じ括弧"}"を挿入」オプションをオンにします。10775381Z
デバッギング
- LLDB デバッガを使用すると、 Xcode がデバッガのコマンドやログの表現を評価する時に間違ったフレームを使用しているため、デバッガのコマンドや、ログの表現がブレークポイントで失敗します。
デバッガコマンドやログの表現がどのスレッドで実行すべきか知っていれば、問題のあるブレークポイントのアクションの前に適切なものに現在のフレームを設定して、ブレークポイントアクションを追加します。10426977
デバッグ: LLDB
- デバッグ領域で変数のペインの変数が動的な型(Objective-C のオブジェクト·ポインタと仮想C++ のポインタ)を持つ変数の子の値を正しく表示しません。
- LLDB は iOS 3.x または iOS 4.x を実行しているデバイス上のアプリのデバッグに使用することはできません。
デバッグ領域でのコンソールペインを使用します:frame variable *self or frame variable *this とコマンドを値に入力します。10658091
アプリをビルドする方式ではデバッガとして LLDB の代わりに GDB を設定します。10776590
パフォーマンスの測定と分析
- お使いの Mac に、複数の Xcode リリースがインストールされているとき、インストルメントのためのクラッシュレポートとトレースデータを表示する際に、Xcode 4.3 は、アプリのシンボルを見つけられないことがあります。
- インスツルメントで、 [ファイル]> [文書で再 symbolicate]を選択します。
- アプリの名前を検索し、 ~/Library/Developer/Xcode/DerivedData/<MyApp> のように、アプリのビルドディレクトリを指定します。10552213
- ドックの中からアイコンを Control-クリックして、システム時間プロファイルを選択してインストルメントのアイコンからシステム時間プロファイルを実行することはできません。
トレースデータを表示する際に、アプリのシンボルを見つけるようにインストルメントを有効にするには:
Dock のインストルメントのアイコンを Control-クリックし、[任意のプロセスオプションのトレース許可]を選択します。10755622
ソース管理とスナップショット
- Xcode が、サーバ証明書の承認を必要とするサブバージョンリポジトリを認証しようとすると、1つ以上の svn がハングします。
ターミナルでサーバーを認証します。10042297
Xcode 4.2 公開ノート
インストール
- Xcode の以前のリリースを購入した場合にのみ、あなたは OS X10.6 Snow Leopard のために Xcode 4.2 をインストールできます。
- Mac App Store から Xcode を購入した場合は、Xcode をインストールしたボリューム上に Xcode のインストールアプリはインストールします。
購入または更新ペインを通して Xcode をインストールまたは更新します。
別のボリューム上に Xcode 4.2 をインストールするには、ファイルシステムからインストール Xcode アプリのすべてのコピーを削除する必要があります。
Xcode
- iOS 5 と Xcode 4.2 では、iOS 4.3 シミュレータおよび 4.2 より古い iOS のバージョンのデバイス上で動作し、アプリのデバッグをサポートするのはオプションで、オンデマンドでインストールされます。また、このサポートは、コアツールのパッケージの一部としては出荷されなくなり、代わりに Xcode の環境設定パネルの「ダウンロード」ペインからのダウンロードとインストールできるようになります。有効な iOS の開発者の ADC アカウントは、このコンテンツを得るために必要とされます。
- いくつかのケースでは、Xcode 4.2 オーガナイザーは復元モード内にあるデバイスを表示しません。回避策としては、復元するには iTunes を使用します。
- iOS 5 で、iOS シミュレータは、前回の OS X iCloud の開発者用種子と互換性がありません。互換性を確保する為に、iCloud の開発者用種子にアップデートすることを強くお勧めします。
- iOS 5 SDK には、iOS 4.3 と iOS 5.0 シミュレータ両方をサポートしています。
- -devtools アンインストール・スクリプトを開始する前に稼動中の Xcode を終了してください。
- ネットワーク・ リンク・コンディショナー・デーモンは最初にシステムを再起動せずにネットワーク・リンク・コンディショナー環境設定ペインをインストールした後は起動することができません。その結果、このツールは、システムの再起動なしでは機能しません。
- Xcode 4.2 で複数のタブを使用している場合は、実行が出力するアウトプットに依存しているいくつかの行動と、実行が完了するイベントがトリガされない場合があります。このバグは将来のバージョンで修正される予定です。
iOS 4.3 シミュレータを入手するには、メインツールバーの[実行先]のポップアップから[もっとシミュレータ]を選択します。こちらの項目は、環境設定のダウンロードのペインを提示し、シミュレータのインストールを開始するために UI を含んでいます。
iOS 4.2 以前のデバイス用の iOS デバイスのサポートを得るためには、デバイスを接続し、オーガナイザで、開発のためにそれをアクティベートします。Xcode は、デバイス・サポート・コンポーネントのダウンロードを開始するように求めます。
iOS 5 と Xcode 4.2 は、Xcode 4.2 ベータ以前のバージョンの上に、または Xcode 4.1 の上にインストールされている場合は、以前のインストールからの iOS 4.3 シミュレータとデバイスのサポートは、すでに存在する、と Xcode の環境設定のダウンロードのペインで「インストール済み」と追加コンポーネントは表示されます。
ダウンロードされたコンポーネントのインストール・パッケージは ~Library/Developer/Xcode に保存されます。Xcode の(ベータ版または GM)新しいバージョンをインストールすると、これらのコンポーネントをインストールするには、後続の要求は、新たなダウンロードを必要とせずに、ローカルパッケージを使用します。
システムを再起動したくない場合は、代わりに、ターミナルから以下のコマンドを入力します。sudo launchctl load /system/library/launchdaemons/com.apple.networklinkconditioner.plist
インターフェース·ビルダー
- プロパティの宣言から名前の変更操作をリファクタリングの開始をすると、そのプロパティを参照する任意の Interface Builder のファイルは正しく更新されません。その代わりに、プロパティの使用、または関連する @synthesize ステートメントで名前の変更操作を実行します。
- Xcode 4.2 で、ビュー(単一ビューまたは複数のビューのいずれか)を複製する際に、選択したビューや、ペーストボードに複製されるビューの間のユーザー定義の制約の両方をコピーします。
- Mac のアプリを開発して NSSegmentedControl オブジェクトのセグメントのスタイルを自動に変更すると、ココア自動レイアウトを使用している文書内ではクラッシュする可能性があります。この問題を避けるには、円形やテクスチャなどの明示的なセグメントのスタイルを使用して、実行時に、setSegmentStyle: メソッドを使用してセグメントのスタイルを自動に変更します。
インストルメント
- Xcode 4.2 からプロファイルアクションでの既知の問題があります。ソースファイルが変更されないでビルドした後、インストルメントは、ターゲット·アプリケーションのシンボルを収集することができません。
- リリース構成は、プロファイル·アクション用に選択されています。(デフォルト)
- ストリップ連携製品のビルド設定を「Yes」に設定するか、カスタムの実行スクリプトは、位相ストリップ製品をビルドしています。(デフォルト以外)
- プロファイル動作を開始する前に、プロダクトの「クリーン」を実行します。
- プロダクトのクリーンを行うと、一時的にプロファイリング上で「ストリップリンクの製品」のビルド設定を「No」に設定してください。
- プロファイルのアクションの構成をデバッグに設定します。
- 再ビルドする必要がない場合インスツルメント内から直接連続したプロファイルを実行します。
- インストルメントで GC モニターテンプレートを使用して、Mac のアプリを開発する際には、インストルメントがクラッシュする可能性があります。この問題を回避するには、アプリケーションを ARC へ移行する事を検討してください。
これはプロジェクトの以下の両方の場所に影響します:
この問題を回避するには、次のいずれかを行います。
iOSシミュレータ
- Mac OS 10.7 を実行している場合は iOS4.3 以前をシミュレーションする際に、位置情報サービスは iOS シミュレータでは機能しません。iOS 5.0 をシミュレートする場合と、Mac OS 10.6 を実行している場合、この問題は起こりません。
Xcode 4.1 開発者用プレビュー1公開ノート
新機能
nib ファイル編集
- ビューベースの NSTableView のインスタンスを作成と編集ができる。
- – (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView
- – (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
ただ、各テーブル列にオブジェクトライブラリから NSView のサブクラス(通常は NSTableCellView )をドラッグします。データソースとデリゲート・アウトレットを接続した後、少なくとも以下のメソッドを実装します:
Interface Builder で NSTableCellView インスタンスの objectValue プロパティをバインドすることができます。また、通常、テーブルビューのデリゲートであるセルのオーナーに、セルからアクションの接続を行うことができます。
ビューセルへの識別子を割り当てることで、テーブルビューのデリゲートメソッド -viewForTableColumn:row: の実装では、NSTableView のメソッド –makeViewForIdentifier:owner: を使用ができる。7465869
機能強化
一般
- Xcode または xcodebuild が起動に失敗した場合:
- Xcode を起動中に Shift キーを押し
- xcodebuild -clearPlugInCache オプションを使用します。9013457
nib ファイル編集
- Interface Builder 3 がプラグインを必要とするビルドプロダクトの場合、ibtool コマンドラインツールが必要な ibplugin プラグインを見つけることができないために、失敗することがあります。
お使いのコンピュータにインストールされている Xcode 3 のツールセットを使用している場合は、Interface Builder 3 の設定ウィンドウを使用してプラグインをロードします。それ以外の場合は、次のコマンドを使用します:
8920581
変更点
ビルド:xcodebuild
- xcodebuild-activetarget オプションはサポートされていません。8361726
パフォーマンスの測定と分析
- MallocDebug はAllocations (割り当て)と Leaks (リーク)のインストルメントに置き換えられ、そして libgmalloc(GuardMalloc)とリークのコマンドラインツールに置き換えられました。4388187
新たな問題
パフォーマンスの測定と分析
- OS X のコアデータテンプレートを使用する場合は、インストルメントがハングまたはトレース停止することがあります。9031942
- iOS シミュレータで実行中のアプリケーションをプロファイルすると、インストルメントはデータを収集しません。
記録を開始した後にインストルメントがデータを収集するようにするには、Dock のインストルメントのアイコンをクリックしてください。8909180
既知の問題
一般
- 明示的な Xcode 3 のファイルのタイプと nib のファイルが、Interface Builder の代わりにソースエディタで開きます。
アイデンティティとタイプインスペクタで nib ファイルのファイルタイプを「デフォルト」にして、プロジェクトナビゲータで選択を解除し、再びそれを選択します。8028406
nib ファイル編集
- Xcode はオブジェクトライブラリには、Interface Builder のキャンバス内のオブジェクトからドラッグする許可をしません。8656363
ユニットテスト
- Xcode 3 のユニットテストツールを使用するプロジェクトは、Xcode 4 のユニット·テスト・インフラストラクチャを使用することはできません。
Xcode 3 のプロジェクトでユニットテストを使用するには、「ビルド後テストする」ビルド設定番号を 8803198 に設定します
Xcode 4.0 GM 種子公開ノート
解決済みの問題
nib ファイル編集
- リファクタリング:Xcode のリファクタリング Cocoa バインディング。8423815
ソース管理とスナップショット
パフォーマンスの測定と分析
- Xcode 4.0 開発者プレビュー6 は、そのアップグレードを妨げるバージョン番号 9999 のカーネル拡張のセットがインストールされます。
- ターミナルで、以下のコマンドを実行します。
- Xcode をインストールします。
- コンピュータを再起動します。8844127
Xcode 4.0 GM 種子をインストールする前に、以下のアクションを実行します。
sudo rm -rf /System/Library/Extensions/AppleProfileFamily.kext/Contents/PlugIns/AppleIntelPenrynProfile.kext
sudo rm -rf /System/Library/Extensions/AppleProfileFamily.kext/Contents/PlugIns/AppleIntelNehalemProfile.kext
sudo touch /System/Library/Extensions
新たな問題
nibファイル編集
- Xcode はオブジェクトライブラリには、Interface Builder のキャンバス内のオブジェクトをドラッグする事を許可しません。8656363
ユニットテスト
- /Developer/Tools でのユニットテストのコマンドラインツールは、旧式です。
Xcode 3 のプロジェクトでユニットテストを使用するには、「ビルド後にテストする」ビルドの設定値を NO に設定します。8803198
既知の問題
一般
- 明示的な Xcode 3 の種類のファイルとインタフェースビルダのファイルが、ソースエディタの代わりに、Interface Builder で開きます。
- ログナビゲータでプロジェクトまたはワークスペースの最後のビルドタスクを選択した時、ログビューアーは空で、ビューアーは最近の操作のみを表示するように設定されています。
アイデンティティとタイプ・インスペクタのインタフェースビルダファイルのファイルタイプを「デフォルト」に設定し、プロジェクトナビゲータで一度選択を解除し、再びそれを選択します。8028406
すべての操作を表示するように、タスクのログビューアを設定します。8350930
nib ファイル編集
- Xcode は AppKit 以外のフレームワークからのオブジェクトで構成される、OS X 型インターフェイスビルダー文書を編集することはできません。
ただし、これらの文書をコンパイルして実行することはできます。7470836
Xcode 4.0 開発者プレビュー 6 公開ノート
新機能
パフォーマンスの測定と分析
- インストルメントのアプリケーションを起動せずに、アプリケーションのパフォーマンスを測定するための新しいコマンドラインツールがあります:iprofiler。測定を行った後は、インストルメントでそれらを分析することができます。新しいフレームワーク、DTPerformanceSession(/Library/Developer/4.0/Instruments/Frameworks にあります)がアプリケーションがそれ自体を測定したり、他のアプリケーションを測定することができます。7773305
機能強化
一般
- 管理スキームのダイアログで、 「自動作成スキーム」オプションを指定して、自動的にスキームを作成するかどうかを指定できます。自動スキームの作成があまりにも多くのスキームを作成するので、大きなワークスペースでは、自動スキームの作成をオフにすることもできます。この設定は、ワークスペースのすべてのユーザーと共有されます。
- Finder 上でダブルクリックすることにより、アーカイブ・オーガナイザーに Xcode のアーカイブファイル(.xcarchive)を追加することができます。8791305
- 導出されたデータのためのワークスペース相対位置を使用することができます。8242521
Xcode に、[自動作成スキーム Now]ボタンでスキームを作成させることができます。7952053
タスク情報と警告
- 警告スクリプトの実行の機能拡張:
- スクリプトは、 Xcode のユーザー環境変数にアクセスすることができます。
- PWD 環境変数の値は、現在のプロジェクトやワークスペースが含まれているディレクトリへのパスです。
- 新しい XcodeAlertAffectedPaths 環境変数は、影響を受けたファイルへの完全パスをコロンで区切ったリストを含んでいます。この変数は、IDEAlertAffectedURLs 環境変数を置き換えます。 8748528
解決済みの問題
一般
- Xcode は、実行スクリプト形式のスキームアクションでスクリプトから改行文字を削除しません。8230045
- スキームを複製することは壊れたターゲットの参照を使用して新しいスキームを作る事にはなりません。8335950
- アクティブスキームが、ユニットテストスキームである時、ツールバーの[実行]をクリックしても、不明なエラーダイアログを生成しません。8642393
リファクタリング
- nib ファイルの編集:アクション・ターゲットがファーストレスポンダであるか、メソッドが、カテゴリ、プロトコル、または指定されたクラスのスーパークラスで宣言されているとき、名前変換は、Interface Builder の文書のアクションメソッドの名前を変更します。8500272
- ソース管理とスナップショット:Xcode はリファクタリング変換を実行する前に、ワークスペースのスナップショットを作成します。7816256
ファイルのバージョンを比較
- 分岐を作成し、コミットダイアログやバージョンエディタを使用して、リポジトリ・オーガナイザでそれに切り替えた後は、断言(assertion)の失敗が発生することはありません。8383245
ソース管理とスナップショット
- Xcode はリポジトリの主催者に Git リポジトリのために(例えば git@example.com:/myrepositoryname.git )の SCP ベースの URL を認識します。8044145
ビルド
- [一般設定]> [ビルド場所]を変更した後、Xcode は新しいビルド場所を使用します。7965261
新たな問題
パフォーマンスの測定と分析
- マルチコア·発送テンプレートが機能していません。8717719
- 時間プロファイラおよびシステムトレースは、Xcode 4.0 開発者向けプレビュー 6 をインストールした後は動作しません。
- お使いのコンピュータが Xcode のリリースを複数含んでいる場合は、Dock の時間プロファイラは正常に動作しません。
コンピュータを再起動します。8829655
Dock に適切な Xcode のリリースでのインストルメントのアプリケーションを追加し、コンピュータを再起動します。8830062
既知の問題
一般
- 明示的な Xcode 3 の種類のファイルとのインタフェースビルダファイルは、ソースエディタの代わりに、Interface Builderでで開きます。
- ログナビゲータでプロジェクトまたはワークスペースの最後のビルドタスクを選択していて、ビューアーが最近の操作のみを表示するように設定されている場合、タスクのログビューアは空です。
アイデンティティとタイプインスペクタのインタフェースビルダファイルのファイルタイプを「デフォルト」に設定し、プロジェクトナビゲータで選択を解除し、再びそれを選択します。8028406
すべての操作を表示するには、タスクのログビューアを設定します。8350930
nib ファイル編集
- Xcode は AppKit 以外のフレームワークのオブジェクトで構成される、OS X 型インターフェイスビルダー文書を編集することはできません。
- リファクタリング:Xcode は Cocoa バインディングをリファクタリングしません。8423815
ただし、これらの文書をコンパイルして実行することはできます。7470836
検索
- 検索ナビゲーター:見つけたインスタンスを全て選択し、[置換]をクリックしたとき、検索ナビゲーターの交換プレビューダイアログで Xcode がクラッシュすることがあります。8091532
Xcode 4.0 開発者用プレビュー 5 公開ノート
新機能
一般
- スキームダイアログのビルドアクションを使用すると、どのターゲットが、各スキームのアクションでビルドされるべきかを選択することができます。8025069
- 各スキームのアクションは、 Xcode がビルドの一部として、そのアクションを実行する際に使用するビルド構成を指定します。特定のビルド構成を使用するスキームのアクションでスキームを設定すると、たとえば、デバッグ構成でプロダクトを実行するスキームは、リリース構成でそれのプロファイルを設定することができます。8090845
- ビルドとアーカイブコマンドは、それらの dSYM ファイルを含むアーカイブのアクティブなスキームで選択したターゲットのプロダクトをアーカイブします。これらのアーカイブを使用して iTunes Connect にプロダクトを提出します。また、クラッシュログを象徴化するためにそれらを使用することができます。7696041
- アーカイブスキームのアクションの後のスクリプトは、その環境内だけでビルドされたアーカイブに関する情報にアクセスできます。
- ARCHIVE_PATH: アーカイブへのパス。
- ARCHIVE_PRODUCTS_PATH: アーカイブされたプロダクトがインストールされた場所。
- ARCHIVE_DSYMS_PATH: プロダクトの dSYM ファイルへのパス。8423449
- スキームをビルドする際に Xcode はターゲット間の暗黙的なビルド依存関係を検出し、実施します。スキームのビルドアクションでスキームごとに、これをオフにすることができます。7879553
- アクティブなスキームがユニットテストスキームである時に、ツールバーの[実行]をクリックすると、不明なエラーダイアログを生成します。
- [新しいプロジェクト]ダイアログを使用して作成された iOS アプリケーションプロジェクトでは[修正]はサポートされません。iOS のプロジェクトテンプレートは、[修正]をサポートしていない、LLVM-GCC コンパイラのセットを持っています。
ユニットテストを実行するには、[プロダクト]>[テスト]を選択します。8642393
iOS のプロジェクトを作成した後、コンパイラを LLVM 2.0 に設定します。8607314
コアデータモデル編集
- コアデータのデータモデル内の実体から NSManagedObject のサブクラスを作成することができます。7484772
リファクタリング
- 抽出変換はサポートされています。7711619
コンパイル:LLVM 2.0
- ブロック:ターゲットがブロック内にある場合、ブロック内の Goto 文は許可されます。7549164
- Objective-C:LLVM 1.5 に存在する例外処理のバグを修正しました。8160285
- クラスの実装と拡張機能(iOS と 64 ビットの OS X)でインスタンス変数を宣言することができます。7538989
OpenGL ES のパフォーマンスを分析する
- OpenGL ES のパフォーマンス探知は iOS アプリケーションでのグラフィックスのボトルネックを識別します。それは<Xcode>/Applications/Graphics Tools に位置しています。8208239
- OpenGL ES のアナライザ・インストルメントの実行はインストルメントのトレースに保存されます。7993423
- OpenGL ES のアナライザ・インストルメントは、OpenGL ES のトレースの拡張フィルタリングをサポートします。7976717
- OpenGL ES のアナライザ・インストルメントを使用すると、特定の OpenGL のフレームにすべてのインストルメントを集中し、フレーム毎の追跡する、後方及び前方ステップで、単一フレームのナビゲーションを提供します。8552970
機能強化
一般
- 環境変数と起動引数によってビルドされているターゲットのビルド設定の値にアクセスすることができます。カスタム実行可能ファイルを作成する時(実行プロファイルスキームのアクションで実行設定の値を変更することで)、環境変数を展開して引数を起動するのに対するターゲットを指定することができます。7546808
nib ファイル編集
- 入力時に Xcode はバインディング・インスペクタのキーパスの補完を示唆します。この機能を利用するには、属性インスペクタであなたのコントローラによって管理されるオブジェクトのクラスを指定します。
Xcode はキーパスの補完を生成するために、プロジェクトのシンボル・インデックスを使用します。8176168
ソースコードの編集
- ソースエディタ内のシンボル定義にジャンプするための追加のジェスチャーがあります:コマンドキーを押したまま。コマンドを押したままにすると、Xcode はハイパーリンクとしてポインタのシンボルを表し、Xcode は、行動したい一つのシンボルがハイライトされるまで、シンボル間のポインタを移動することができます。その後、シンボルの定義にジャンプするのに、それをクリックすることができます。期待通りに、他の修飾キーは振る舞います。8459719
タスク情報と警告
- アクティビティビューアはプロダクトをビルドするなどのスキームに関連するタスクについてのより詳細な情報を表示します。7982481
変更点
nib ファイル編集
- 隠されたビューは、(それらは Interface Builder 3、Xcode 3 の一部で部分的に見えていました)Interface Builder のキャンバスでは見えません。
これらのビューで作業するには、ジャンプバーやアウトラインビューでそれらを選択します。8059339
ビルド:xcodebuild
- xcodebuild -activetarget オプションがサポートされなくなりました。8361726
解決済みの問題
一般
- 一般の環境設定では、ナビゲータで修飾キーを押しながらダブルクリックかクリックしてファイルをどこで開くか、 Xcode が尋ねるように指定できます。8476034
- Xcode 3.x のベースのプロジェクトを開いたときに Xcode は自動的にプロジェクト内のすべてのターゲット用のスキームを作成します。他のターゲットが依存しているターゲットをスキップしません。
- プロジェクトを開くときに、[一般設定]>[ビルドする場所]> 「共有サブフォルダ」を絶対パスに設定すると、アサーションの失敗を生成しません。8368913
管理スキームダイアログで必要のないスキームを削除したり、非表示にすることができます。8016676
nib ファイル編集
- 接続を行なった時の、多くのパフォーマンスの問題が解決されました。具体的には、ファースト・レスポンダへの接続のパフォーマンスが大幅に改善されました。8280101
- ターゲットのソースコードが折り畳まれていても、Interface Builder のソースへの接続を作成することができます。8472539
コアデータモデルファイル編集
- コアデータのデータモデル内の実体から NSManagedObject のサブクラスを作成すると、 Xcode は、既存のファイルを上書きする前に確認を求めます。8506607
ソースコードの編集
- ブレークポイントとメッセージバブルは、コードがその上に折り畳まれても、ソースエディタに表示されます。7192871
コンパイル:LLVM2.0
- C++:ブロックの使用に関連するいくつかのバグが修正されています。6182276
OpenGL ES のパフォーマンスを分析する
- OpenGL ES のアナライザ・インストルメントでの API の統計は正しく計算されます。8549379
ヘルプおよび文書のコンテンツ
- 期待どおり、文書のオーガナイザのヘルプブックにアクセスするときには、ヘルプブックのヘルプトピックスのリストが表示されます。8430699
新たな問題
ファイルのバージョンを比較
- 分岐を作成し、コミットダイアログやバージョンエディタを使ってリポジトリ・オーガナイザでそれに切り替えた後、アサーションの失敗となります。
ブランチを作成し、それに切り替えた後 Xcode を再起動します。8383245
既知の問題
一般
- 明示的な Xcode 3 の種類のファイルとインタフェースビルダのファイルは、インタフェースビルダの代わりに、ソースエディタで開きます。
- ログナビゲータでプロジェクトまたはワークスペースの最後のビルドタスクを選択すると、最近の操作のみを表示するように設定されている場合、タスクのログビューアは空になります。
アイデンティティとタイプインスペクタのファイルタイプを「デフォルト」に設定し、プロジェクトナビゲータで一度選択を解除し、再びそれを選択します。8028406
タスクのログビューアをすべての操作を表示するように設定します。8350930
nib ファイル編集
- Xcode は AppKit 以外のフレームワークのオブジェクトで構成された、OS X 型インターフェイスビルダー文書を編集することはできません。
- リファクタリング:Xcode は Cocoa バインディングをリファクタリングしません。8423815
ただし、これらの文書をコンパイルして実行することはできます。7470836
検索
- 検索ナビゲーター:検索ナビゲーターの、置換プレビューダイアログで見つけられたインスタンスをすべて選択し、[置換]をクリックしたとき Xcode がクラッシュすることがあります。8091532
リファクタリング
- Xcode はリファクタリング変換を実行する前に、ワークスペースのスナップショットを作成しません。
- nib ファイルの編集:アクションのターゲットがファーストレスポンダであるか、メソッドが、カテゴリ、プロトコル、または指定されたクラスのスーパークラスで宣言されたときの名前変換が Interface Builder の文書に適切でアクションメソッドがうまく動作しない場合があります。8500272
リファクタリング変換を実行する前に、手動でスナップショットを作成します。7816256
ソース管理とスナップショット
- Xcode はリポジトリのオーガナイザで Git リポジトリの SCP ベースの URL を認識しません。
SSH ベースの URL を使用してください。たとえば、git@example.com:myrepositoryname.git の代わりに ssh://git@example.com/myrepositoryname.git を使います。8044145
ビルド
- [一般的な設定]>ビルド場所を変更した後でも Xcode は、新しいビルド場所を使用しません。
ビルド場所を変更した後、開いているプロジェクトとワークスペースを一度閉じて、再度開きます。7965261
ヘルプおよび文書のコンテンツ
- これらのヘルプブックは Xcode のアプリケーションのヘルプページ([ヘルプ]> [Xcodeアプリケーションのヘルプ])にはリストされていません。Interface Builder のヘルプ、タスクとセッション・ログビューアのヘルプ、シンボルナビゲーターのヘルプ、および Xcode の概念。
[ヘルプ]メニュー内やドキュメントオーガナイザの検索ナビゲーターでこれらのタイトルを検索します。8481951,8518802
Xcode 4.0 開発者用プレビュー 4 公開ノート
新機能
一般
- 「起動」スキームと「配布」のスキームの区別はありません。すべてのスキームは、プロダクトを起動し、アーカイブすることが可能です。8429398
- プロジェクトナビゲータは鍵のアイコンで、読み取り専用のファイルを識別します。ファイルのロックを解除するにはカギをクリックします。Xcode は"書き込み"許可と、Finder からロックされたファイルのロックを解除することができません。また、アラートの設定で「ファイルロック解除」警告でファイルのロックを解除するのにカスタムスクリプトを呼び出すことができます。8135771
ソース管理とスナップショット
- バージョンエディタを使用して、ファイルを復元する前に、スナップショット内に変更されたファイルをプレビューすることができます。7494111
- ソース管理リポジトリとして Git を使用するときは、プロジェクトナビゲータのショートカットメニューで[ソース管理]項目からプロジェクト・パッケージ(.xcodepro ファイル)の変更を破棄することができます。7480525
- Xcode はプロジェクトディレクトリにローカルの Git リポジトリでソース管理下に新しいプロジェクトを配置します。8407608
ヘルプとマニュアルへのアクセス
- コード補完リストから提示される補完のためのクイックヘルプにアクセスすることができます。選択された提案のクイックヘルプを表示するには、提案に示される疑問符のアイコンをクリックするか、[ヘルプ]> [クイックヘルプ]を選択します。8172782
コンパイル:LLVM 2.0
- Objective-C:クラス実装とクラスの拡張(iOS と 64 ビット OS X)でインスタンス変数のサポートを追加します。
- Objective-C:プロパティ(iOS と 64 ビット OS X)の自動統合をデフォルトに追加します。宣言されたプロパティのアクセサを合成するために、コンパイラの実装のセクションでは @synthesize の命令は必要ありません。
しかし、dealloc の中や finalize メソッドでこのようなプロパティにアクセスするには、ドット表記を使用する必要があります。例えば:self.property。7885001
解決済みの問題
nib ファイル編集
- ソースコードに接続したアウトレットやアクションを挿入する場合、Xcode は接続のための対応を追加します。
- ヘッダファイルにドラッグすると:Xcode は実装とインターフェイスを追加します。
- 実装ファイルにドラッグすると:Xcode は、実装を追加します。
- プロパティ・アウトレットを挿入するために、ヘッダファイルにドラッグすると:Xcode は、インスタンス変数の宣言、@synthesize 命令、および dealloc メソッド内の release 呼び出しを追加します。
- インスタンス変数アウトレットを挿入するために、ヘッダファイルにドラッグすると、Xcode は、インスタンス変数の宣言、および dealloc メソッド内の release の呼び出しを追加します。8082047
アクションの場合:
アウトレットの場合:
ソースコードの編集
- Xcode は、コード補完リストの提案する補完のプレビューを表示します。全体の補完を受けるには、Returnキーを押します。ハイライトされた部分(点線の下線で識別)だけ補完を受けるには、Tab キーを押します。8321987
リファクタリング
- Interface Builder とコアデータモデルファイルをリファクタリングすることができます。7474053
- ソースエディタで単語全体を選択した後は、Xcode は常にリファクタリング変換を実行することができません。8349889
- キー値コーディングとコアデータ·メソッドでリファクタリング変換を実行することができます。8224495
- 新しい名前が同じタイプの別の構文で使用されていない場合にのみ、クラス、プロトコル、および他のトップレベルの構文の名前を変更することができます。8313803
- Xcode は、ワークスペースウィンドウ内のリファクタリングエラーと警告を通知します。8128957
コンパイル
- 最適化された脆弱な-ABI Objective-C のコード内の例外を受け取る事は、もはやローカル変数への変更をリセットしません。8160285
- Objective-C の例外を再スローすると排除してクラッシュします。8144203
- C++ と Objective-C++ コードのブロックでバグが修正されました。
既知の問題
一般
- 明示的な Xcode 3 のタイプのファイルとインタフェースビルダのファイルは、インタフェースビルダの代わりに、ソースエディタで開きます。
- [一般の環境設定]>[ビルド場所]>[共有サブフォルダ]での絶対パスは、プロジェクトを開くときにアサーションの失敗を発生させます。
- ログナビゲータでプロジェクトまたはワークスペースの最後のビルドタスクを選択した後、ビューアーが、最近の操作のみを表示するように設定されている場合、タスクのログビューアは空です。
- 抽出変換はサポートされていません。7711619
アイデンティティとタイプインスペクタのインタフェースビルダのファイルの種類を「デフォルト」に設定し、プロジェクトナビゲータで一度選択を解除し、再びそれを選択します。8028406
[一般の環境設定]の「共有サブフォルダ」で相対パスを指定、またはビルド場所で推奨値を指定します。8368913
すべての操作を表示するには、タスクのログビューアを設定します。8350930
検索
- 検索ナビゲーター:見つけたインスタンスをすべて選択し、[置換]をクリックしたとき、検索ナビゲーターの置換プレビューダイアログで Xcode はクラッシュすることがあります。8091532
編集コアデータモデルファイル
- コアデータのデータモデル内の実体から NSManagedObject のサブクラスを作成すると、Xcode は確認ダイアログを出さずに既存のファイルを上書きします。8506607
nib ファイル編集
- リファクタリング:Xcode は Cocoa バインディングをリファクタリングしません。8423815
- Xcode は AppKit 以外のフレームワークのオブジェクトで構成される、OS X 型インターフェイスビルダー文書を編集することはできません。
- 非表示ビューは、インタフェースビルダーのキャンバスでは見えません。
ただし、これらの文書をコンパイルして実行することはできます。7470836
これらのビューで作業するには、ジャンプバーやアウトラインビューでそれらを選択します。8059339
リファクタリング
- Xcode はリファクタリング変換を実行する前に、ワークスペースのスナップショットを作成しません。
- nib ファイル編集:アクションのターゲットがファーストレスポンダであるか、メソッドが、カテゴリ、プロトコル、または指定されたクラスのスーパークラスで宣言されたとき、名前変換がインタフェースビルダーの文書に適切にアクションメソッドを動作しない場合があります。8500272
リファクタリング変換を実行する前に、手動でスナップショットを作成します。7816256
ビルド
- [一般的な設定]>[ビルド場所]を変更した後に Xcode は新しいビルドの場所を使用しません。
開いているプロジェクトとワークスペースをビルドの場所を変更した後、一度閉じて再度開きます。7965261
ソース管理とスナップショット
- Xcode はリポジトリのオーガナイザの Git リポジトリの SCP ベースの URL を認識しません。
SSH ベースの URL を使用してください。たとえば、git@example.com:/myrepositoryname.git の代わりに SSH:// git@example.com/ myrepositoryname.gitを使います。8044145
ヘルプおよび文書のコンテンツ
- これらのヘルプブックは Xcode のアプリケーションのヘルプページ([ヘルプ] > [Xcode アプリケーションのヘルプ])にリストされていません。インタフェースビルダーのヘルプ、タスクとセッションログビューアのヘルプ、シンボルナビゲーターのヘルプ、および Xcodeの概念。
- 文書のオーガナイザのヘルプブックにアクセスすると、ヘルプブックのヘルプ·トピックのリストが表示されない代わりに、この本の最初のヘルプトピックが表示されます。
- 本の中で他のヘルプトピックに移動するには、ジャンプバーを使用します。8430699
[ヘルプ] メニュー内やドキュメントオーガナイザ内の検索ナビゲーターでこれらのタイトルを検索します。8481951,8518802
Xcode 4.0 開発者用プレビュー 3 公開ノート
Xcode 4 開発者用プレビュー 3 について
サポートされる構成
Xcode 4 開発者用プレビュー 3 は、OS X v10.6.4 が必要です。OS X の以前のバージョンではインストールや動作はしません。
Xcode は iOS 4.1 および 3.2 と、OS X v10.5 以降で、ユニバーサル開発をサポートしています。iOS 3.1 以前または OS X v10.4 またはそれ以前の開発をサポートしていません。
インストール
Xcode 4 開発者用プレビュー 3 を /Xcode4 ディレクトリにデフォルトでインストールされていても Xcode 3.2 の既存のインストールとコンフリクトしません。
重要:Git の SCM システムでサポートされるスナップショット機能、インストルメントでのシステムトレース計測などの Xcode 4 のいくつかの機能は、システムツールパッケージによってインストールされるツールが必要です。このパッケージは、Xcode 4 開発者用プレビュー 3 でデフォルトでインストールされます。
インストーラは、必要に応じて/usr に Unix ツールをインストールしますので、従来の makefile ベースおよびコンフィグベースは正常に動作し構築します。コマンドラインビルドのデフォルトのツールセットを設定するには xcode-select のコマンドラインユーティリティを使用してください。Xcode 4 のインストール時にこのオプションを選択すると、Xcode 4 Unixツールは、/usr にある Xcode 3.2 の Unixツールを交換します。これは、Xcode 3.2 のインストールの機能には全く影響しません。
プロジェクトファイル形式の互換性とバージョン管理
Xcode 4 は、Xcode 2.1 以降 3.2.3 で作成されたプロジェクトを読み込み、ビルドします。Xcode 4 で作成され編集されたプロジェクトは、Xcode 3.2 以降 3.2.3 までで開き、ビルドすることができます。
重要:プロジェクトまたはワークスペースを一度 Xcode 4 開発者向けプレビュー 3 で開いた後、以前の Xcode 4 開発者用プレビューでそのプロジェクトまたはワークスペースを使用しないでください。
テクニカルサポートと学習用リソース
- http://developer.apple.com:アップルの開発者用のウェブサイトであり、iOS と OS X で、最新の技術文書のための最高のソースです。
- http://developer.apple.com/technologies/tools/:アップルの開発者のウェブサイト上で Xcode のホームページであり、開発者用ツールに関する情報を提供しています。
- http://devforums.apple.com:アップルの開発者用フォーラムで、Xcode 4 の開発者用プレビューのための専用の開発者フォーラムを備えています。
Apple は Xcode の開発用サポートを得ることができるリソースを数多く提供しています。
Apple との問題を伝えるために http://bugreport.apple.com を使用します。システムと開発者ツールのバージョン情報を含む問題の詳細情報、および関連するクラッシュログやコンソールメッセージを含めます。
xcode-feedback@group.apple.com を使用し、アップルの Xcode ツールスイートのコメントやフィードバックを送信します。
新機能
- ウィンドウ内の次の領域(時計回り)にフォーカスを移動するには、コマンド·オプション-K を使用します
- ウィンドウ内の前の領域(反時計回り)にフォーカスを移動するには、コマンド・オプション・シフト・k を使用します
- 名前変更以外の変換はサポートされていません。(7711619)
- リファクタリングエンジンによって生成されたエラーや警告は、UI では見えません。(8128957)
- リファクタリングはまだ nib やコアデータモデルファイルでは動作しません。これらのファイルへの変更は手動で行う必要があります。(7474053)
- Xcode はまだソースファイルをリファクタリングする前に、ワークスペースのスナップショットを取りません。必要に応じて、これらは、手動で作成する必要があります。(7816256)
- KVC/コアデータ·メソッドと関連ファイルの名前を変更するのは、まだ使用できません。そのような変更は、必要に応じて、手動で行う必要があります。(8224495)
- 要求された名前が既に同じ型の構築物によって使用されている場合、リファクタリングエンジンはクラス、プロトコル、その他のトップレベルの構築の名前変更を許可しません。(8313803)
- リファクタリングによって変更されたファイルの一つではないファイルをジャンプバーで選択すると、クラッシュにつながります。(8337919)
すべての Xcode 4 のアクティビティを見る(7966729)
Xcode 4 を使用する場合は、複数の活動が活性である時間があります。これが発生すると、アクティビティビューは、バッジにアクティビティの数を表示します。バッジをクリックすると、現在アクティブな活動の完全なリストを示します。
コード補完の再設計(7764985)
ユーザーインターフェイスとコード補完の相互作用は、責任を遂行でき、予測でき、リフレッシュした控えめな外観に再設計されました。
キーボードからジャンプバーメニューを使用して(6964063)
ジャンプバー内のすべての主要なメニューは、左から右へと UI 要素を並べて行くに従って、次のような Control-# キーの、数字が増えて行く組み合わせを介してアクセスできます。
ジャンプバー項目 | キーの組み合わせ |
---|---|
関連ファイル | Control-1 |
前の履歴 | Control-2 |
次の履歴 | Control-3 |
パスコントロールの最初の項目 | Control-4 |
パスコントロールのファイル項目 | Control-5 |
パスコントロールのシンボルアイテム | Control-6 |
もしあればジャンプバーのイッシューナビゲーター | Control-7 |
アシスタントエディタペイン間のナビゲーションのキーの組み合わせ(8273438)
Xcode 4 開発者用プレビュー 3 は、トップレベルの領域間またはユーザーインターフェイス間のキーボードフォーカスを移動するための新しいコマンドを備えています。
ソース·エディタで使用可能なテキスト操作コマンド(7854915)
二つの新しいテキスト操作コマンドが、[エディタ]>[構造]メニューに追加されています。行をアップ/ダウンして移動し、行のコメント/コメント解除をします。
カスタム UI スケールを使用してプロセスを実行する(8135779)
これで、カスタム UI のスケールを使用して実行可能なものを起動するためにスキームを設定することができます。
プロダクトをビルドする場所を制御する環境設定(8281332)
プロダクトをビルドする場所の特定は、デフォルトで指定する環境設定が追加されました。共有サブフォルダは、すべてのプロジェクトが同じディレクトリに、プロダクトのビルド場所を置くようになっています。これらの設定は、[ファイル]> [プロジェクト設定]/[ワークスペースの設定]でプロジェクトまたはワークスペースに上書きすることができます。
AppKit の外部フレームワークからオブジェクトを含む IB 文書を編集する(7493346)
Xcode 4 開発者用プレビュー 3 を使用すると、AppKit の外部フレームワークからのオブジェクトを含む文書を編集することができます。Automator のオブジェクトを含む文書を編集する事は現在サポートされていない事を注意して下さい。
IB のエディタでのオブジェクトのイフェクト・アトリビュート(7470883)
インタフェースビルダー 3 のイフェクト・インスペクタを使用して変更されたプロパティは、Xcode 4 では IB エディタで編集可能です。
名前変更リファクタリング変換の暫定サポート(8372774)
名前変更リファクタリング変換が利用可能になりました。これは、ソースエディタで、[編集]メニューまたはコンテキストメニュー経由で起動できます。
Xcode 4 開発者用プレビュー 3 のリファクタリング操作のサポートは暫定的なものです。これらの問題は、未決定です。
Xcode 4 開発者用プレビュー 3 の既知の問題
Xcode 4 開発者用プレビュー 3 は、プレリリース・ソフトウェアです。パフォーマンスや安定性の問題、データの損失やファイルの破損、欠落していたり実装されていない機能、動作や審美的な問題、および機能や機能拡張要求のため http://bugreport.apple.com にバグを報告して下さい。可能な限り、特にクラッシュログやサンプル、再現手順の詳細、およびプロジェクトやワークスペースを可能な限り提供して下さい。
これらの問題は、すでにこのリリースで知られています:
ドキュメント・オーガナイザは、更新されたドキュメントが必要です(8354991)
以前の Xcode 4 開発者用プレビューの上に、Xcode 4 開発者用プレビュー 3 をインストールした後、ドキュメント・オーガナイザは、探している文書を表示しない場合があります。
回避策:文書の環境設定で、Xcode 4.0 開発ツールライブラリの隣の Get ボタンを押してください。これは、文書セットの最新版をダウンロードします。
IB の文書からソースコードに接続しても対応物を挿入しない(8082047)
- アクション:ヘッダファイルにドラッグすると、実装が挿入されません。
- アウトレット:プロパティアウトレットを挿入するため、ヘッダにドラッグすると、必要なインスタンス変数、@synthesize、dealloc での release コールは追加されません。
IB 文書のソースコードに接続を使用してアウトレットやアクションを挿入するときは、接続のための対応物が追加されていません。
IB 文書を編集した後にビルドするときの警告(8131479)
IB 文書を編集した後、プロジェクトをビルドする場合、IB 文書に偽陽性の警告が表示されることがあります。
回避策:プロジェクトがこれらの警告を回避するために、IB 文書を保存する前に、インデックス作成が完了したことを確認してください。プロジェクトが警告を削除するのにインデックス作成が完了した後に警告があるすべてのファイルを再保存します。
隠れたプロパティは、IBエディタでビューを消します(8059339)
非表示としてマークされたビューは、インタフェースビルダーのエディタで全く見えません。
回避方法:これらのビューを操作するには、ジャンプバーまたはドキュメントアウトラインビューでそれらを選択します。
構文の色分けとコードセンス機能は、いくつかのファイルでを失敗します(8360261)
いくつかのソースファイルは、完全な構文の色分けや、コード補完、修正するヒントを発しないことがあります。また、「定義にジャンプ」が機能しない場合があります。
回避方法:ファイルを保存し、インデックス付けします。
IB ドキュメントがソースとして表示される(8028406)
IB 文書が明示的な Xcode 3 のファイルのタイプとある場合、インターフェースビルダーのエディターの代わりにソースエディタで開く。
回避方法:タイプとアイデンティティ・インスペクタに選択されたファイルのタイプをデフォルトに設定し、文書を一度閉じてから再び開きます。
前のセッションから復元した最後のビルド·ログが、空と表示される(8350930)
ワークスペースや以前にビルドしたプロジェクトを開くと、前回のビルドに関する情報がログナビゲータに表示されます。このログを読み込むと、ログビューアのスコープバーが最新のログエントリを表示するようになっている場合にのみ、空と表示されることがあります。
回避策:すべてのログの内容の表示に切り替えます。
共有のビルド場所の設定は、得られたデータの場所からの相対パスを必要とする(8368913)
すべてのプロジェクトとワークスペースを、一般環境設定で設定したビルド場所を使用して、共通のサブフォルダにビルドすることを選択した場合は、得られたデータフォルダー内の相対サブパスを指定する必要があります。絶対パスを指定するのは、有効な選択肢ではありませんが、 UI はこれをエラーとして通知しません。その代わり、プロジェクトを開いたときに、Xcode はアサーションの失敗を示します。
回避方法:ビルド場所の相対パスを指定するか、デフォルト設定に戻って変更します。
プラグインからオブジェクトで、IB の文書を編集する(7470836)
Xcode 4 は iOS 型の IB 文書をサポートし、App Kit のオブジェクトで構成される OS X 型の IB 文書をサポートします。アドレス帳や、Automator、およびサードパーティ製の IB のプラグインのような他のフレームワークからのオブジェクトで構成される、OS X型の文書は、IB エディタではサポートされません。これらの文書は、IB エディタで編集することはできないにもかかわらず、これらは、コンパイルされ、ビルドされ、実行することができます。
Git リポジトリの SCP スタイルの URL はサポートされません(8044145)
Git リポジトリを設定すると、リポジトリオーガナイザは、SCP スタイルの URL をサポートません。クローンを作成したいリポジトリを参照するために、URL の ssh://スタイルを使用して下さい。
たとえば、URL git@example.com:/myrepositoryname.git は、ssh://git@example.com / myrepositoryname.git として提供されます。
すべての検索結果を置換するとクラッシュします。(8091532)
検索ナビゲーターのプレビューシートでは、すべての検索結果を選択したときの結果を交換すると、Xcode がクラッシュする可能性があります。
プロジェクトが開いている間に、ビルドプロダクトの場所の変更は有効になりません。(7965261)
ビルドプロダクトが置かれている場所を変更した後、開いているすべてのプロジェクトやワークスペースを一度閉じた後、再度開けば、変更が有効になります。
Xcode 4 開発者用プレビュー 3 で解決済みの問題
Xcode 4 開発者用プレビュー 2 以前に存在し、Xcode 4 開発者用プレビュー 3 で解決された問題。
iOS アプリケーションは、iPad シミュレータ内ではインストルメント起動で実行できます(8203761)
iOS シミュレータ内のインスツルメントと iOS 4 のアプリケーションを実行すると、今は iPhone のデバイスモードでのシミュレータを起動します。
データモデルファイルの同期·アウト選択項目(8289611)
データモデルファイルに実体と属性を追加するのは、もはや、同期・アウトとなる選択となり、ドキュメントが再ロードされるまで、アウト·オブ·シンクになります。
以前の Xcode 4 開発者用プレビューで編集されたデータモデル(8320417)
以前の Xcode 4 開発者用プレビューで編集されたデータ·モデルは、データの破損による変化を元に戻す必要があります。
iOS シミュレータアプリケーションからのコンソール出力(8201210)
iOS シミュレータで実行されている iOS アプリケーションからの標準出力へのコンソール出力は期待どおりでありません。
IB 文書内のトップレベルのオブジェクトを削除する(8114740)
IB 文書のトップレベルのオブジェクトは、現在、直接キャンバスとドックから削除することができます。
オブジェクトの属性を変更しても、適切にフィットするように、オブジェクトのサイズは変更されません(7600085)
変更を必要とする属性を変更するときには、オブジェクトのサイズ変更は、自動的です。この問題を回避するための[エディタ]>[サイズを会わせる]を使用するのはもはや不要です。
IB 文書のソースコードへの接続は現在、アウトレット接続をサポートしています(8045078)
IB 文書内のソースコードへの接続を行う場合は、アウトレット・コレクションへの接続によって、サポートされています。
iOS オブジェクトのアクセシビリティ値編集のサポート(7986412)
IB エディタは iOS オブジェクトのアクセシビリティ値編集をサポートしています。
ナビゲータフィルタの結果には、フィルタするアイテムが変化しても更新されません(7722840)
ナビゲーター内でフィルタリングすると、現在ライブ結果が得られます。例えば、SCM 状態でプロジェクトナビゲータの内容をフィルタリングする際に、個々のファイルの SCM 状態が変更すると、項目のリストが更新されます。
Xcodeは、強制終了されるか、予期せず終了した場合、ワークスペースウィンドウとタブの状態を失います。(7773437)
開いているタブ、ナビゲータとインスペクタの位置と可視性、選択されたナビゲーターの行、現在の文書、およびエディタモードなどを含む、ワークスペースウィンドウのレイアウトは、Xcode 4 の終了時またはワークスペースが閉じると全て保存されます。ファイルの間で作業し移動すると、Xcode 4 開発者用プレビュー 3 は、状態を定期的に保存します。
プロジェクトは、複数の SDK の使用を要求(8128405)
プロジェクトナビゲータは、すべてのターゲットが同じ SDK を使用する場合、複数のターゲットを持つプロジェクトが複数の SDK の使用をもはや要求しません。
循環参照を持つプロジェクトを開く時の問題(8226072)
循環参照してプロジェクトを開く時の問題(A-> B、B-> A)解決しました。
IB エディタのオブジェクトドックモードの持続性(8232638)
文書間の切り替え時、IB エディタのドックは現在、モードを持続します。
ナビゲータでのテキストのフィルタ設定は、立ち往生します(8183815)
ナビゲーター·フィルタリングのためのテキストがクリアされたままになります。
バージョンエディタのジャンプバーがファイルを示したまま同期不能になります(8198690)
バージョンエディタでジャンプバーを使う時は文書を示したまま同期不能になっています。
ソースエディタは、完全なコンテキストメニューを示している(7473795)
ソースエディタのコンテキストメニューから欠落していたいくつかの項目は、現在追加されています。
シェルスクリプトと xcconfig ファイルの構文色分け(7600899)
シェルスクリプトと xcconfig ファイルは Xcode のソースコードエディタで構文の色分けをサポートしています。
Xcode 4 開発者用プレビュー 2 で解決済みの問題
Xcode 4 開発者用プレビュー内に存在したこれらの問題は、Xcode 4 開発者用プレビュー 2 で解決されています。
アラートアクションとして入手可能なスナップショット(7945417)
スナップショットの作成は[アラート]の基本設定でアラートアクションとして提供されています。
すべてのプロジェクトとワークスペースのデフォルトのビルドディレクトリ(8073463)
一般的な環境設定は、デフォルトの場所を導出した(ビルド結果、ログおよびインデックスなど)データ、スナップショット、およびアーカイブに使用する場所の設定を含んでいます。個々のプロジェクトやワークスペースの[プロジェクトやワークスペースの設定]で設定した内容は、アプリレベルの設定よりも優先されます。
壊れたファイルの参照(8085921)
Xcode 4 は、以前壊れた参照を解決するようにして、数多くのことを解決しました。
ターゲットの適切な実行先を同定する際の問題(8165363)
いくつかの iOS ターゲットがその実行先や一部のマルチアーキテクチャの Mac OS ターゲットとして「Intel 32ビット」を搭載した Mac のターゲットとして現れる問題は「Intel 32ビット」としてだけ提供されるように解決されています。
大文字と小文字を区別したファイル·システム上の索引付けの問題(7950730)
IB の文書では大文字と小文字が区別されるファイルシステムで索引付け作成をブロックされる状況は解決されました。
テーブルビューの画像セルでの IB エディタのクラッシュ(8118050)
画像セル列を含むテーブルビューでのIB文書の読み込みでの IB エディタ内のクラッシュが解決されました。
IB の[文書アウトライン]ビューのオブジェクトをフィルタリングする(7880130)
IB エディタの[文書アウトライン]ビューフィルタ内のフィルタフィールドは、ラベルに基づいてビューのアウトライン・オブジェクト内のオブジェクトをフィルタリングします。
IB 文書内のオブジェクトをドラッグする際の速度向上(8088222)
インタフェースビルダの文書内のオブジェクトのドラッグが改善され、一時停止しません。
IB 文書からソースコードへの接続オプション(8095283)
アウトレットやアクションを挿入するのに、ソースコードに接続する場合は、設定パネルでは、プロパティのアウトレット用に割り当て/保持などのようなアウトレットとアクションのためのオプションを含んでいます。
IB エディタは IBAction の戻り値の型が必要です
インタフェースビルダの以前のリリースでは、有効なアクションとして、多くのメソッドのシグネチャを受け入れました。Xcode 4 の IB エディタは、厳密に IBActions を識別し、明示的に戻り値の型を - (IBAction) としてタグ付けされた持つメソッドのみを受け入れます。
手動で定義されたアクションとアウトレットはソースで定義される必要があります
インタフェースビルダーのインスペクタとライブラリの以前のリリースでは、アクションやアウトレットは手動で定義されていますが、ソースコードで再定義されていなければは Xcode 4 では認識されません。
Xcode でサポートされなくなった機能
以下の機能は Xcode から削除されています。代替の機能が利用可能である場合には、書き記しました。
- レイアウトモード
- クラスブラウザ。シンボルナビゲータとエディタで[クラスナビゲータ]メニューを使用します。
- アクティブターゲット/構成/アーキテクチャ/SDK /実行可能ツールバー項目と[プロジェクト]メニューの項目。ターゲットの特定の組み合わせでの[起動スキームの設定]/構成/アーキテクチャ/SDK/スキームツールバーのポップアップを使用して、あなたにとって有用な遂行
- ブックマーク
- お気に入りバー
- 詳細ビュー
- クラスモデル
- 個々のファイルをタッチ
- [ファイル]メニューの[最近使ったファイル]メニュー項目。ナビゲーションボタンが、最近のファイルのリストを持っています。また、プロジェクトまたはワークスペース内のすべての最近閲覧したファイルを表示するにはプロジェクトナビゲータでフィルタを使用します。
- 外部エディタのサポート
- テキスト文書内のシェルスクリプトコマンドのワークシート(control-R)の実行。
- 予測コンパイル(一般に修正・ヒントにより置き換えた)
- 修正と継続
- ナビゲーションバーのブレークポイントナビゲーションメニュー
- 編集とアップルスクリプトの .scpt ファイルのコンパイル
- Perforce と CVS ソースコードの管理
- 開いた Xcode のウインドウのドックアイコンメニュー(スノーレパードでは、すべての Xcodeのウィンドウを表示するにはドックのタイル上で押したままにする)
- カーボン nib ファイル編集。Xcode4 は、カーボン xib と nib ファイルのビルドをサポート、それらを編集するには、インタフェースビルダー 3.2 を使用します。
Xcode 4.0 開発者用プレビュー 2 公開ノート
Xcode 4 開発者用プレビュー 2 について
サポートされる構成
Xcode 4 開発者用プレビュー 2 は OS X v10.6.4が必要です。これは、OS X の以前のバージョンではインストールや動作できません。
Xcode は、iOS 4 と 3.2 と、OS X v10.5 以降のユニバーサルの開発をサポートしています。iOS 3.1 以前または OS X v10.4 以前の開発をサポートしていません。
インストール
Xcode 4 開発者用プレビュー 2 はデフォルトで /Xcode4 ディレクトリにインストールされ、Xcode 3.2の既存のインストールとコンフリクトしません。
重要:スナップショット機能、Git SCM システムのサポート、インストルメントでのシステムトレース計測などの Xcode 4 のいくつかの機能は、システムツールパッケージによってインストールされたツールが必要です。これらの機能を使用するには、Xcode 4 をインストールする際の[システム・ツール]チェックボックスをオンにする必要があります。システムツールをインストールした後に Mac を再起動することをお勧めします。
インストーラは、必要に応じて /usr に Unix ツールをインストールしますので、従来の makefile- ベースおよびコンフィグベースのビルドは正常に動作します。コマンドラインビルドのデフォルトのツールセットを設定するには xcode-select コマンドラインユーティリティを使用してください。Xcode 4 のインストール時にこのオプションを選択すると、Xcode 4 Unix ツールは、/usr の Xcode 3.2 Unix ツールと置き換えます。これは、どの Xcode 3.2 のインストールの機能にも影響しません。
プロジェクトファイル形式の互換性とバージョン管理
Xcode 4 は、Xcode 2.1 から 3.2.3 で作成されたプロジェクトを読み込み、ビルドします。Xcode 4 で作成したプロジェクトが開かれ、Xcode 3.2 から 3.2.3 上の物を開き、ビルドすることができます。
Xcode 4 でプロジェクトを開き、ビルドするのは、アップグレードも、変更もしません。Xcode 4 でプロジェクトに加えた変更は、Xcode の以前のバージョンと互換性があります。
テクニカルサポートと学習リソース
アップル は Xcode の開発サポートを得られる数多くのリソースを提供しています。
- http://developer.apple.com:アップルの開発者のウェブサイトは、 iOS と OS X で、最新の技術文書の最高のソースです
- http://developer.apple.com:アップルの開発者のウェブサイト上の Xcode のホームページでは、開発者用ツールに関する情報を提供しています。
- http://devforums.apple.com:アップルの開発者用フォーラムで Xcode 4 開発者用プレビューのための専用の熱心な開発者フォーラムを備えています。
アップルとの問題を伝えるために http://bugreport.apple.comを使用して下さい。この問題に関する詳しい情報、システムと開発者用ツールのバージョン情報を含む詳細情報、および関連するクラッシュログやコンソールメッセージを含みます。
xcode-feedback@group.apple.com を使用し、Xcode ツールスイートへのコメントやフィードバックをアップルに送信します。
Xcode 4 開発者用プレビュー 2 の既知の問題
Xcode 4 開発者用プレビューはプレリリースソフトウェアです。パフォーマンスや安定性の問題、データの損失やファイルの破損、実装されていなかったり欠落している機能、動作や審美的な問題、および機能や拡張の要求、ファイルのバグは http://bugreport.apple.com に報告して下さい。可能な限り、特にクラッシュログやサンプル、再現手順の詳細、およびプロジェクトやワークスペースを可能な限りコンテキストを提供して下さい。
以下の問題は、すでにこのリリースで知られています。
Xcode 4 開発者用プレビュー 2 のディスクイメージにインストーラーパッケージが表示されます(8209023)
Xcode 4 開発者用プレビュー 2 ディスクイメージをマウントすると、パッケージフォルダが表示されます。このフォルダの中からパッケージをインストールすることはサポートされません。Xcode 4 の開発者用プレビュー 2 をインストールするには、Xcodeと iOS SDK パッケージを使用します。
iOS アプリケーションは、 iPad のシミュレータ内ではインストルメントの起動と共に実行します(8203761)
iOS シミュレーターインストルメントと共に起動中の iOS 4 のアプリケーションは、iPhone のデバイスモードの代わりに iPad のデバイスモードでのシミュレータの起動という結果になる。
iOS シミュレータアプリケーションからのコンソール出力(8201210)
iOS アプリケーションが iOS シミュレーションで起動中に標準出力へのコンソール出力は各飛び出しが改行されるかアプリケーションが終了するまで表示されない。
Git リポジトリの SCP スタイルの URL はサポートされていません(8044145)
Git リポジトリを設定するときにリポジトリのオーガナイザーは、SCP スタイルの URL をサポートしません。クローンを作成したいリポジトリを参照するためには、URL の ssh:// スタイルを使用します。
たとえば、URL git@mycompanyname.beanstalkapp.com:/myrepositoryname.git は、ssh://git@mycompanyname.beanstalkapp.com/myrepositoryname.git として提供されるべきです。
バージョンエディタジャンプバーがファイルを示したまま同期したまま同期不能になる(8198690)
時には、バージョンエディタのジャンプバーが文書を示したままと同期不能となります。
回避方法:バージョンエディタでファイルから離れてから戻って、データをリフレッシュします。
ドキュメントのオーガナイザには、最新の文書が必要です(8205933)
オーガナイザで見た文書は、その内容のテーブルを失うか、ジャンプバー経由でナビゲーション可能ではありません。
回避策:最新の文書をダウンロードして、文書の設定に行き、[今すぐ確認してインストール]をクリックします。
接続した HUD を使用して接続するとクラッシュします(8197402)
要素を Control-クリックして、ドラッグして接続しようとすると、Xcode はクラッシュするので、次回は全てのファイルが保存されている事を確認して下さい。
回避策:接続インスペクタを使用するか、アシスタントエディタでコードへの接続をして下さい。
IB エディタでのオブジェクトの効果属性(7470883)
インターフェースビルダー 3 の効果インスペクタを使用して変更されたプロパティは、Xcode 4 で編集できません。
IB 文書内のオブジェクトの属性は、サイズにフィットする事が必要です(7600085)
IB ファイル内のオブジェクトの属性をいくつか変更すると、オブジェクトが適切なサイズに合うことを、変更した後必要としますが、これらのオブジェクトは、自動的にはサイズに合いません。
回避方法:デザインキャンバスでコントロールを選択し、[エディタ]>[サイズにフィット]を選択します。
IB 文書からソースコードへの接続するアウトレット・コレクション(8045078)
インターフェースビルダーの文書内のソースコードへの接続形成のとき、アウトレット・コレクションへの接続はサポートされていません。
IB 文書からソースコードへの接続は等価物を挿入しない(8082047)
IB の文書内のソースコードに接続を使用してアウトレットやアクションを挿入するときは、接続の等価物が追加されません。
- アクション:ヘッダファイルにドラッグすると、実装は挿入されません。
- アウトレット:プロパティ・アウトレット、必要なインスタンス変数、@synthesize、dealloc での release コールでの挿入の時ヘッダにドラッグしても追加されません。
IB エディタでは、隠れたプロパティは、ビューを消します(8059339)
非表示としてマークされたビューは、インターフェースビルダーのエディタで完全に見えません。
回避方法:これらのビューを操作するには、ジャンプバーまたは[ドキュメントアウトライン]ビューでそれらを選択します。
IB 文書はソースとして表示されます(8028406)
明示的な Xcode 3 のファイルの型と共に開いた IB 文書は、インターフェースビルダーではなく、ソースエディタで開きます。
回避方法:「タイプとアイデンティティ」で選択したファイルの型をリセットし、ファイル・インスペクタの「ファイルタイプ」の「ファイルの種類」ポップアップボタンを「デフォルト」にし、一度文書を閉じてから再度開きます。
プラグインからのオブジェクトと共に、IB の文書を編集する(7470836)
Xcode 4 は iOS 型の IB 文書をサポートし、AppKit のオブジェクトで構成された OS X 型のIB文書をサポートします。アドレス帳、Automator、およびサードパーティ製の IB のプラグインのような他のフレームワークからのオブジェクトで構成される、OS X 型の文書は、IB エディタではサポートされていません。これらの文書は、IB エディタで編集することはできませんが、これらは、コンパイルされビルドされ、実行することができます。
IB 文書を編集した後にビルドするとき警告(8131479)
IB 文書を編集して、プロジェクトをビルドする場合、IB 文書に警告が表示されることがあります。ほとんどの場合、これらの警告は偽陽性です。
回避策:これらの警告を回避するために、IB 文書を保存する前に、プロジェクトのインデックス作成が完了したことを確認してください。警告を削除するには、プロジェクトがインデックス作成が完了した後に警告のあったすべてのファイルを再保存します。
Xcode 4 開発者用プレビュー 2 で解決済みの問題
Xcode 4 開発者用プレビュー中に存在し、Xcode 4 開発者用プレビュー 2 で解決された問題。
アラートアクションとして利用可能なスナップショット(7945417)
スナップショットの作成は[アラートの基本設定]でアラートアクションとして利用可能です。
すべてのプロジェクトとワークスペースのためのデフォルトのビルドディレクトリ(8073463)
一般的な設定は、デフォルトの場所の設定を含み、得られたデータ(ビルド結果、ログおよびインデックスなどのような)、スナップショット、およびアーカイブに使用するための場所の設定が含まれています。個々のプロジェクトやワークスペースの[プロジェクトやワークスペースの設定]で設定した内容は、アプリレベルの設定よりも優先されます。
壊れたファイルの参照(8085921)
多くの問題は、 Xcode 4 が、以前壊れた参照を解決できるようにすることで解決しました。
ターゲットの適切な実行先を同定する問題(8165363)
いくつかの iOS ターゲットがその実行先や一部のマルチアーキテクチャの Mac OS ターゲットとして「Intel 32ビット」を搭載した Mac のターゲットとして現れる問題は、唯一の " Intel 32ビット」としてのみ提供される事で解決されています。
大文字と小文字を区別したファイル·システム上の索引付けの問題(7950730)
IB の文書で、大文字と小文字が区別されるファイルシステムでのインデックス作成をブロックする状況は解決されました。
テーブルビューの画像セルでの IB エディタのクラッシュ(8118050)
画像セル列を含むテーブルビューでの IB 文書の読み込みで、IB エディタ内のクラッシュするのが解決されました。
IB のドキュメントアウトラインビューでのフィルタリング・オブジェクト(7880130)
IB エディタの[ドキュメントアウトライン]ビューフィルタ内のフィルタフィールドは、ラベルに基づいてのオブジェクト・アウトライン・ビューのオブジェクトをフィルタリングします。
IB 文書内のオブジェクトをドラッグする際の速度の向上(8088222)
インタフェースビルダー内の文書内のオブジェクトのドラッグが改善され、一時停止しません。
IB 文書からソースコードへの接続する際のオプション(8095283)
ソースコードに接続して、アウトレットやアクションを挿入するには、設定パネルに、プロパティアウトレット用に割り当て/保持などのアウトレットとアクションのためのオプションが含まれています。
IB エディタは IBAction の戻り値の型が必要です
インタフェースビルダーの以前のリリースでは、多くのメソッドのシグネチャを、有効なアクションとして受け入れていました。Xcode 4 の IB エディタは、厳密に IBActions を識別し、明示的にタグ戻り値の型を -(IBAction) として持つメソッドのみを受け入れます。
手動で定義されたアクションとアウトレットはソースで定義される必要がある
アクションとアウトレットは、インタフェースビルダーのインスペクタとライブラリの以前のリリースでは、手動で定義されているが、ソースコードで再定義されないアクションやアウトレットは Xcode 4 では認識されません。
Xcode でサポートされなくなった機能
次の機能は Xcode から削除されています。代替の機能が利用可能である場合には、書き記しました。
- レイアウトモード
- クラスブラウザ。エディタでシンボルナビゲーターとクラスのナビゲーションメニューを使用して下さい。
- アクティブなターゲット/構成/アーキテクチャ/SDK/実行可能ツールバー項目と[プロジェクト]メニューの項目。ターゲットの特定の組み合わせでのスキームの実行設定/構成/アーキテクチャ/SDK/スキームのツールバーポップアップを使ってあなたにとって有用なを実行ファイル。
- ブックマーク
- お気に入りバー
- 詳細ビュー
- クラスモデル
- 個々のファイルをタッチ
- [ファイル]メニューに[最近使ったファイル]メニュー項目。ナビゲーションボタンには、最近のファイルのリストがあります。また、プロジェクトまたはワークスペース内のすべての最近閲覧したファイルを表示するにはプロジェクトナビゲータにフィルタを使用します。
- 外部エディタのサポート
- テキスト文書内のシェルスクリプトのコマンドのワークシート(Comntrol-R)の実行
- 予測コンパイル(一般には修正-ヒントに置き換え)
- 修正と継続
- ナビゲーションバーにブレークポイントナビゲーションメニュー
- AppleScript .scpt ファイルの編集とコンパイル
- Perforce と CVS ソースコードの管理
- 開いている Xcode のウインドウのドックアイコンメニュー(スノーレパードでは、すべての Xcode のウィンドウを表示するには Dock のタイル上で押したままにする)
- カーボン nib ファイルの編集。Xcode 4 は、カーボン xib と nib ファイルのビルドをサポートします。それらを編集するには、インタフェースビルダー 3.2を使用します。
Xcode 4.0 開発者用プレビュー 1 公開ノート
Xcode 4 は、Xcode のツールセットのメジャーバージョンです。それは、OS X v10.6.3 が必要であり、OS X の以前のバージョンでは動作しません。
重要:この公開ノートには、Xcode 4への Xcode 3.2 からの移行のための重要な情報をカバーしています。開発ワークフローの変更の詳細については、Xcode 4 のユーザーガイドをお読みください。
次の公開ノートには、Xcode 4 だけの WWDC2010 の開発者用プレビューに関係します。
一般
- サポートされる構成
- Xcode のインストール
- プロジェクトファイル形式の互換性とバージョン管理
- Xcode 3.2 からのユーザー設定
OS X v10.6.3 上で Xcode 4 は動作します。OS X の以前のバージョンではインストールや動作できません。iPhone の OS 4 および 3.2 と、OS X v10.4 以降のユニバーサル開発を Xcode はサポートしています。OS X v10.3 以前または iPhone OS 3.1 以前の開発をサポートしていません。
デフォルトでは、Xcode 4 開発者用プレビューは/Xcode4 ディレクトリにインストールされ、Xcode 3.2 の既存のインストールとはコンフリクトしません。
重要:いくつかの Xcode 4 の機能、スナップショットメカニズム、Git の SCM システムのサポート、インストルメントでのシステムトレース計測などは、システムツールパッケージによってインストールされるツールが必要です。これらの機能を使用するには、Xcode 4 をインストールする際の[システムツール]のチェックボックスをオンにする必要があります。システムツールをインストールした後に Mac を再起動することをお勧めします。
インストーラは、必要に応じて /usr に Unix ツールをインストールしますので、従来の makefile ベースおよびコンフィグベースが正常に動作しビルドします。コマンドラインビルドのデフォルトのツールセットを設定するには Xcode-select のコマンドラインユーティリティを使用してください。Xcode 4 のインストール時にこのオプションを選択すると、Xcode 4 Unix ツールは、/usr の Xcode 3.2 Unix ツールを置き換えます。これは、Xcode 3.2 のインストールの機能には全く影響しません。
Xcode 4 は、Xcode 2.1 から 3.2.3 で作成されたプロジェクトを読み込み、ビルドします。Xcode 4 で作成したプロジェクトは、Xcode 3.2 から 3.2.3 で開き、ビルドすることができます。
Xcode 4 プロジェクトを開き、ビルドしても、アップグレードや、変更をしません。Xcode 4 のプロジェクトに加えた変更は、Xcode の以前のバージョンと互換性があります。
Xcode 4 のためのユーザ固有のプロジェクトの情報は、 .xcodeproj プロジェクトラッパーの新しいファイルに保存されます。Xcode 4 は無視したり、Xcode 3.2 の、ユーザごとの.pbxuser ファイル内の情報をまれに変更します。
大部分では、 Xcode 4 はいくつかの例外を除いて、Xcode 3.2 からユーザー設定を移動したり、妨害したりしません。
Xcode 3.3 からの一般、コードヒント、ビルド、分散ビルド、デバッグ、キーバインディング、ファイルの種類、ソースツリー、と文書の設定は無視されます。同じように Xcode 4 は機能が Xcode 4 のデフォルトで起動します。 Xcode 4 で設定を変更しても、Xcode 3.2 を続けて使っても影響しません。
テキスト編集、フォントや色、インデント、および SCM の設定は、Xcode 3.2 の環境設定からコピーされます。Xcode 4 でこれらの設定に加えられた変更は、Xcode 3.2 に戻ってコピーされません。
Xcode 4 の大きな変化
- ワークフロー
- ワークスペース
- プロジェクト管理と編集
- ナビゲーション
- エディタ
- ソースコードの編集
- インターフェイスファイル編集
- データモデルの編集
- プロパティリスト編集
- ビルド
- ビルド場所
- ビルドツール
- 実行とデバッグ
- デバッグツール
- パッケージングおよび配布
- 索引付け
- スナップショット
- SCM
- 検索
- ステータスとアクティビティ
- アラート
- オーガナイザー
- キーバインド
デフォルトで、コンパクト、およびオールインワンのレイアウトは単一のソースファイルから複数の相互に関連するプロジェクトワークスペースにすべてを収容する、単一の Xcode のウィンドウレイアウトに置き換えられました。ソースファイル、Xcode プロジェクトは、インタフェースビルダーの xibs & nib、データモデル、およびその他のファイルを表示したり、編集するのは、ウィンドウのエディタ領域で行なわれます。
Xcode 4 ウィンドウの左側には、いくつかのナビゲーターのいずれか一つを示しています。プロジェクト飛行士は、Xcode 3.2 プロジェクトのグループとファイルのツリーのようなファイルまたはプロジェクト、および関数のリストを含んでいます。他のナビゲーターは、プロジェクトのシンボルのリストを表示します。ビルドエラーや警告などの現在の問題。クロスファイル検索操作の結果。ビルド、デバッグ、または SCM 取り扱いなどの操作からのログ。現在コードに設定されているブレークポイント。現在のプロセスのデバッグ情報。エディタで表示または編集のためにその内容を表示するには、ナビゲータから項目を選択します。
ほとんどのナビゲーターは、それが表示する内容を絞り込むことができる、ナビゲータの下部にある[フィルタ]領域を持っています。これは Xcode 3.2 の詳細ビュー内の[フィルタ]フィールドの機能に似ています。プロジェクトナビゲータでは、追加のスコープボタンを使用すると、興味深い SCM のステータスを持っている唯一のファイルや、最近アクセスされたファイルのみ、現在変更されたファイル、を表示することができます。
右側のユーティリティエリアはナビゲータまたは現在のエディタで選択した項目を表しています。ユーティリティエリアの上部は、ナビゲータまたはエディタで選択した項目のインスペクタを提供しています。いくつかの別々のインスペクタがあるかもしれません。他の人がそのファイル内の選択についての情報が表示されることがあり、左端の一つは、通常は、選択したファイルに関する情報を表示します。ユーティリティエリアの下部にあるのは、ファイルテンプレート、テキストマクロ、インタフェース・ビルダー・オブジェクト、およびメディアファイルを含むプロジェクトまたはファイルに追加することができる、部品のライブラリです。
ナビゲーターとユーティリティの領域は途真ん中でエディタで開かれているか、エディタがウィンドウ全体を占有することができるように閉じられています。
Xcode のウインドウは、ウィンドウタブをサポートしており、ウィンドウのナビゲータ、エディタ、ユーティリティ領域に広がっています。異なるファイルを編集するための新しいタブを作成した場合か、または別々のファイルナビゲーションのためのタブ、検索、および選択したデバッグを持っています。
垂直または水平方向に積み重ねられた、同時に複数のエディタを表示することができます。アシスタントエディタは自動的に二つのエディタの内容を関連付けできます。例えば、ビルドログを閲覧する際、ソースファイルやソースファイルを編集する場合、アシスタントエディターは、いつもヘッダファイルを表示することができます。
同じプロジェクトまたはワークスペースは、同時に複数のウィンドウで開くことができます。
Xcode のメインウィンドウには、ワークスペースが含まれています。ワークスペースは、単一のテキストファイルと同じく簡単で、数十の相互に関連したプロジェクトのように複雑です。Xcode 4 の一つのプロジェクトを開くと、それ自身のワークスペースとして開きます。複数のファイルやプロジェクトを含む専用のワークスペースを作成し、別々の .xcworkspace ファイルで、そのワークスペースの設定を保存することができます。
各ワークスペースには、編集、ナビゲーション、ビルドや起動、インデックス作成、スナップショット、およびその中のファイルやプロジェクトのために、SCM を管理します。ほとんどの場合、これらの Xcode 4 のワークスペース機能は、Xcode 3.2 の同じプロジェクトの動作に優先します。いくつかのケースでは、Xcode 3.2 のプロジェクトの設定は、Xcode 4 のワークスペースにコピーされます。これらの設定に加えた変更は、そのワークスペースに隔離されているし、同じプロジェクトを別のワークスペースに、または Xcode 3.2 で開いたときに干渉しません。
プロジェクトは、プロジェクトナビゲータに表示され、編集されます。プロジェクトナビゲータでは、いくつもの数字やプロジェクト、ファイル、またはフォルダの参照を含んでいます。ナビゲーターの一番下の[フィルタ]領域にある[+]ボタンでワークスペースに新しいプロジェクトを追加します。
プロジェクト内では、ファイル、グループ、およびフォルダ参照は Xcode 3.2 と同じように動作します。ファイルをプロジェクトに加えるには、[ファイル]>[新規]> [新規ファイル...] 、 [フィルタ]領域にある[+]ボタンで、または Finder またはライブラリからプロジェクトナビゲータにそれらをドラッグします。
Xcode 3.2 のプロジェクトインスペクタで見られるプロジェクトの設定は、現在、Xcode 4 中のプロジェクトエディタに配置されています。[情報]タブには、プロジェクト全体の情報を設定します(すべてのターゲットの配置ターゲットのデフォルト設定やローカライズ、設定の追加または削除)し、[ビルド設定]タブでは、プロジェクトレベルのビルド設定をすることができます。
ターゲットは、プロジェクトナビゲータに表示されるのではなく、プロジェクトエディタで利用可能です。追加したり、ここでターゲットを削除するだけでなく、ターゲットの内容を編集します。ターゲットエディタのタブは Xcode の 3.2 でのターゲットインスペクタのタブに似ています。[情報]タブでは、ターゲットの Info.plist ファイルの内容を視覚的に見て、変更することができます。[ビルド]タブは、ターゲットのビルド設定を編集します。[ビルド規則]タブは、ターゲットのビルドの規則を編集します。追加、再配置、およびビルドフェーズの削除、ドラッグ&ドロップでビルドフェーズからターゲット·メンバーを追加したり削除したりします。ターゲットの依存関係はビルドフェーズのビルド依存関係で設定されています。ファイルごとのコンパイルフラグはコンパイルソースのビルドフェーズのコラムに設定されています。ヘッダーの役割(プロジェクト、public、private)はコピーヘッダのビルドフェーズのサブビジョンへヘッダファイルをドラッグして設定します。
プロジェクトの追加ターゲット、構成、ビルドフェーズ、ローカライズの構造上のコマンドは、現在、 Xcode 3.2 のように[プロジェクト]メニューにある代わりに、[エディタ]メニューにあります。
プロジェクトとターゲットのエディタ両方の[ビルド設定]タブが大幅に Xcode 3.2 から改善されています。ビルドの設定グリッドは現在、基本的にはビルドの設定条件として構成を扱いますので、同時にすべての構成での値を参照できます。レベルモードはまた、デフォルト、プロジェクト、および列のターゲットの設定を示しますので、ビルドの設定値がどこから来るかを正確に参照できます。複数のターゲットを選択し、それらのターゲットの設定を並べて参照できます。
ビルド設定のグリッドはプロジェクトやターゲットの唯一の、最も一般的に使用される設定の基本的な範囲を持っています(そのレベルで定義されたすべての設定と一緒に)。すべてのスコープは、すべての設定を示しています。フィルタフィールドは、ビルド設定のリストをフィルタリングします。検索ナビゲータの[結果を検索]としてビルド設定の名前と値が返されます。
プロジェクトエディタで行った変更は、ワークスペースではなく、プロジェクトに保存されます。それらは、メンバーとしてそのプロジェクトのある全てのワークスペース内で有効になり、また、Xcode 3.2 で再度オープンされたプロジェクトで有効になります。
エディタの上部を横切ったジャンプバーは、エディタ内のアイテムへの論理パスを示しています。パスの各部分は、そのレベルの他のアイテムにナビゲートするためのプルダウンメニューです。右端の部分は、エディタ内でのナビゲーションを可能にします。ソースファイルは、例えば、これは Xcode 3.2 の関数ポップアップを置き換えます。
ナビゲーション矢印の左側のナビゲーションポップアップメニューボタンで、他のファイルへ直接のナビゲーションが可能になります。そのサブメニューの[最近使ったファイル]、[保存されていないファイル]、[カウンターパート]、スーパークラスを含むクラス関係、兄弟、サブクラス、およびカテゴり、含むファイルと含まれるファイルをリストします。これらは Xcode 3.2 でのエディタのナビゲーションバーのボタンの代わりをします。
エディタ領域での標準エディタ、アシスタント·エディター、およびバージョンエディタ間でツールバー内で分割ボタンコントロールが切り替えます。標準エディタは一つのエディタを示します。アシスタントエディタは二つの異なるファイル間での分割したエディタを示します。[ビュー]>[エディタ]> [分割する方向を変更](command-shift-0)で水平方向に分割か、垂直方向かを変更します。
標準エディタのジャンプバーを使用して別のファイルに移動するときに Option キーを押したままにすると、アシスタントエディタで、現在および選択したファイルの両方をオープンします。
アシスタントエディタでの第二のビューは、メインビュー内のファイルまたは選択を追跡します。ソースファイルの場合は、第二のビューはメインビュー内のファイルをメインのカウンターパート(ヘッダまたはソースファイル)を表示します。ログエディタでは、第二のビューは、選択したエラーまたは警告に対応するソースファイルの場所を示しています。インタフェースビルダーのファイルの場合、第二のビューはメインビューで選択したオブジェクトのヘッダーファイルを示します。
アシスタントエディタのジャンプバーの最初の項目は、メインのエディタを追跡する方法を制御することができるアシスタントのカテゴリのリストを表示します。手動を選択すると、スプリットエディタが、同じファイルの別の部分であっても、全てのファイルを示す事から外すことができます。
[すばやく開く]コマンドを使用すると、名前で既知の任意のファイルを開く事ができ、または指定されたシンボルを定義するファイルを開くことができます。ファイル名を選択した場合は、[すばやく開く]は、ファイル名を入力し、[Enter] を押すと直接そこにジャンプします。ファイル名またはシンボル(あるいは単に大文字)頭文字を入力すると、すべての一致した物を示します。開くファイルを選択するには、矢印キーまたはマウスを使用します。
ファイル内では、メインメニューバーのナビメニューは、エディタの文書の種類に固有のナビゲーションコマンドを用意しています。
Xcode 4 は、プロジェクトファイル、ソースコード、インタフェースビルダーのファイル、プロパティリストファイル、データモデルファイル、スクリプト定義、およびリッチテキストファイル用のエディタを含んでいます。PDF ファイルは表示できますが、編集できません。HTML や XML ファイルはテキストとして編集することができます。HTML ビューアはありません。他のすべての文書は、ファインダーのプレビューとして表示されます。さらに、すべてのファイル参照のコンテキストメニューは、そのままのファイルの内容を表示および編集するには、16進エディタを使用して開くことがでます。
異なる文書のタイプごとに、エディタはその文書タイプの情報に基づいて行動するためのナビゲート、エディタのメニューでのカスタムコマンドがあります。ジャンプバーの端のアイテムを使用すると、文書内を移動することができます。
自動インデントや書式設定、テキストマクロのサポート、コードの折りたたみとコードヒントのコード補完、コードフォーカスブロックのハイライト:ソースコードエディタは、Xcode 3.2 エディタの主要なエディタ機能をサポートしています。ソースエディタでのナビゲーション機能には、Xcode 3.2 から、一般的に変更されていません。コマンド-ダブルクリックするとシンボルの定義にジャンプし、オプション-ダブルクリックすると、機能のクイックヘルプを表示します、など。
ターゲットが LLVM コンパイラを使用するように設定されている場合には、ソースコードエディタは、ソース·テキストを入力するとスキャンします。構文エラーは赤い波線下線またはエラーの位置にキャレットで示し、ガター内の記号で示します。シンボルをクリックすると、潜在的な構文エラーの場合にあなたにアドバイスし、多くの場合、それを自動的に修復します。
同様に、スコープ内のすべての編集は、正しく大量に置き換えるための識別子の有効範囲を決定するために、LLVM コンパイラからの情報を使用します。
インターフェイスビルダー xib と nib ファイルは Xcode のエディターインタフェースビルダーのアプリケーションが完全に Xcode に統合されましたーで直接編集できます。インターフェイスビルダーファイルを選択すると、ファイルのオブジェクトは、エディタのサイドバーに表示され、選択すると、オブジェクト自体はキャンバスに表示されます。インタフェースビルダーのインスペクターやライブラリは、キャンバスの右側のユーティリティエリアで利用可能です。キャンバス上のユーティリティエリア内のライブラリから直接ドラッグして、IB ファイル内の新しいオブジェクトをインスタンス化します。
インターフェイスビルダーファイルは、自動的にそれが含まれているプロジェクトに関連付けられているため、Xcode と IB の間で、これらのファイルやプロジェクトを同期させる必要はありません。接続は、通常は、接続インスペクタを使用するか、オブジェクトから別のオブジェクトに control-ドラッグして、作られます。
オブジェクトを選択し、アシスタント·エディターと共にインターフェースビルダーファイルを編集する場合は、第二のペインにオブジェクトの対応するクラスのヘッダが表示されます。ヘッダーファイル内の宣言にオブジェクトから直接接続をドラッグします。
Xib/nib 全体のプロパティは、nib のファイルインスペクタで編集できます。
データモデルファイルは Xcode のエディタで直接編集できます。サイドバーは、モデル内の要素のリストを示します。メインエディタの下部にあるボタンを使用して、並べ替えした物のテーブルビュー、検索、およびフィルタまたはグラフ形式(Xcode 3.2 のように)でモデルを表示することを選択します。
選択したデータモデルオブジェクトの属性は、エディタの右側のユーティリティエリア内のインスペクタの[モデル]タブを使用して編集します。
プロパティリストファイルは、Xcode 3.2 のように、Xcode のエディタで直接編集できます。既知のプロパティリスト型の場合、キーのテキスト·リテラルではなく、キーパネルがキーの説明的な名前を示します。[エディタ]メニューで表示するのを[生のキー/値]の項目を使用して、このビューを切り替えます。生のキー値は、クイックヘルプインスペクタでもご覧になれます。
Xcode 3.2 での個別の[ビルド]と[実行]メニューは、単一の[プロダクト]メニューに統合されました。そこには[ビルド]、[分析]、[テスト]の個別のコマンドがあります。[実行]のコマンドは必要に応じ、ビルドし、実行します。[ビルドせずに実行]は、変更があっても、最後のビルドされたプロダクトを実行します。
[アクティブなターゲット]、[構成]、[SDK]、[アーキテクチャ]、および[実行可能]の概念は統合されており、それらの個々のメニューとツールバーの項目は削除されました。Xcode 4 は、スキームのビルドと起動を管理します。プロジェクトを開くと、Xcode は自動的にビルド構成、目標に基づくスキームを作成し、プロジェクト内の実行可能ファイルを作成します。スキームは、Xcode 4 で使用され、Xcode 3.2 では無視されます。
起動スキームは、 1つ以上のターゲットとその依存関係をビルドして、ビルドの製品に対してテストを実行しているか、実行ファイルを起動するための指示が含まれています。これは、単一のパッケージには、開発サイクルのロジックをカプセル化し、概要メニューで、開発モードをシフトするたびに、いくつかの異なるスイッチを設定するよりも、むしろ単純に実行をクリックしてそれを呼び出します。
すべてのスキームは、(Xcode 3.2 の概要ポップアップの代わりに)ツールバーのスキーム・ポップアップにリストされています。ビルドして実行するには、スキームを選び(および必要に応じて、そのスキームでサポートされている特定のデバイスやアーキテクチャを指定して)、ブレークポイントを[有効]または[無効]にするように選択し、[実行]をクリックします。Xcode は、そのスキームで指定されたビルド構成におけるスキームのターゲットをビルドし、必要な結果に応じてにユニットテストを実行し、ビルドされたプロダクトを実行するために有効になったブレークポイントの有無にかかわらず、指定の実行ファイルを起動します。別の SDK またはデバイス用にビルドするために、環境変数やコマンドライン引数の異なるセットで起動するように、またはターゲットの異なる構成または別の設定でビルドすることは、同じメニューから別のスキームを選ぶだけしか必要がありません。
スキームのポップアップの[アクティブスキームのアイテムを編集]を使用すると、スキーム(構成やターゲットリスト)の[ビルドアクション]の属性を設定することができ、(ユニットテストのためにビルドし実行するためにターゲットとする)テストアクション、および起動アクション(どのデバッガで実行し、どのようなランタイム設定で、どのパフォーマンスツールを実行するか)。[スキーム管理]メニュー項目を使用すると、新しいスキームを作成し、未使用のものを削除し、メニューのスキームを並べ替えることができます。スキームがワークフローに関連していない場合は、それを削除するか、それのチェックを外してそれが長い事メニューに表示されます。
共有ボックスがチェックされない限り、すべてのスキームは、プロジェクトまたはワークスペース内に、ユーザーごとに保存されます。共有スキームは、そのプロジェクトやワークスペースのすべてのユーザーが利用できるようになります。どのプロジェクトかワークスペースにスキームが保存されるか、決定するのにコンテナーのポップアップを使用します。
Xcode が、ターゲットと依存関係、ビルド構成、アーキテクチャおよび SDK を、起動スキームと目的先を決定すると、ビルドは正常に進行します。Xcode は目的先によってサポートされるアーキテクチャのため、ビルド構成によって決定されるビルド設定を使用して、依存関係の順序で指定されたターゲットをビルドします。これは、リソースをコピーし、ソースをコンパイルし、フレームワークとのリンクのバイナリ、および必要に応じてシェルスクリプトを実行するために、各ターゲットのビルドフェーズを処理します。
ビルドの進行状況は、Xcode 4 のツールバーのアクティビティ·ビューに示されており、ビルド・ステップは、ログナビゲータのビルド·ログに記録されます。以前のビルドの結果を見ることができるように Xcode 4 は、ビルドログの進行記録を保持します。ログナビゲータでビルドログを選択すると、拡大、検索、またはスコープバーとフィルタボタンを使用した結果をフィルタリングし、標準エディタに、ログを開きます。ビルドステップまたはログの問題を選択し、アシスタントエディターへの切り替えし、アシスタント·ペイン内の対応するビルドファイルを示します。
ビルドの問題についてのみ注意し、ビルドステップについては注意しない場合、問題ナビゲーターが示します。これは、各問題の簡潔な言い回しを示し、問題の場所へとプライマリ・エディタを連れて行き、選択する。フィルタフィールドは、問題の特定のタイプを示すためにのみ使用されます。エディタペインの右上のジャンプバーを、現在の問題の中でナビゲートするため使用してください。
Xcode 4 は、ビルドディレクトリにはアプリケーションレベルでの設定は持っていません(中間ファイルとビルドプロダクトを含んでいます)。代わりに、各プロジェクトやワークスペースには、それに含まれるすべてのプロジェクトのための共通のディレクトリを設定するビルド場所があります。デフォルトでは、ビルド場所は ~/Library/Developer/Xcode/DerivedData/ のユニークなディレクトリで、ワークスペース内の各プロジェクトには、そのディレクトリ内の別のフォルダがあります。これは、異なる二つのワークスペース(例えば、同じプロジェクトのブランチとトランク)で、そのプリコンパイル済みヘッダ、インデックス、同じ名前のプロジェクトをビルドしても、ビルド時にはプロダクトは互いにコンフリクトしないことを意味します。
[ファイル]メニューの[プロジェクトの設定]または[ワークスペース設定]で呼び出されたシート内でビルド場所を設定します。プロジェクトをビルドするときの設定シートコントロールパスのデフォルトの値は、 $(OBJROOT) と $(SYMROOT) (プロダクトのパスと中間ビルドファイルパス、それぞれ)です。これらから派生した全てのビルド設定は、ワークスペース全体のビルド場所の影響を受けます。
一般的なプリコンパイル済みヘッダーキャッシュパスは、$(CACHE_ROOT) で、プロジェクトやビルドワークスペース内のビルド場所になりました。LLVM コンパイラ 2.0 を使用する場合は、プリコンパイルされたヘッダーのサイズが大幅に小さくなり、それらを共有するサイズおよび速度の利点はあまり重要でない。
Xcode 4 は、llvm-gcc に戻ることなく、直接 C++ と、Objective-C++ のコードのコンパイルをサポートしている LLVM コンパイラ(LLVM コンパイラ 2.0)の更新版を含まんでいます。Xcode 4 で作成した新しいプロジェクトは、LLVM コンパイラ 2.0 を使用するように設定されています。
この開発者用プレビューでは、LLVM コンパイラ 2.0 のC++ のサポートは、iPhone OS には使用できません。
llvm-gcc 4.2 は今の Xcode 4 のデフォルトのシステムコンパイラです。今までのプロジェクトは、明示的なコンパイラのバージョンを設定していないので、Xcode 3.2 で gcc 4.2 でビルドされた物は、Xcode 4 の llvm-gcc4.2 でビルドします。
GCC 4.0 は Xcode 4 から削除されました。プロジェクトが、gcc 4.0 のコンパイラのバージョンを明示的に示している場合は、Xcode 4 でビルドするためにそれを変更する必要があります。
アクティブなスキームは、プロダクト・メニューから[実行]を選ぶか、または[実行]ボタンをクリックしたときに何が起こるかを制御します。スキームの起動では、ビルドとスキームのアクションを起動が実行されます。配布スキームでは、ビルドおよびアーカイブのアクションが実行されます。ビルドのみを選ぶ(実行せずに)か、実行するか(ビルドせずに)、プロダクト・メニューのメニュー項目を使用してビルドとテストすることを選択します。
Xcode 3.2 のように、Xcode は常にそれにデバッガを付けて、実行可能コードを起動します。ブレークポイントを非アクティブにして起動することを選択した場合、プログラムがデバッガに中断またはトラップされるまでは、これは起動時間の改善と測定可能なパフォーマンスへの影響は追加しません。ツールバーのボタン、またはスキームエディタのデフォルトとして、プロダクトのメニュー項目にブレークポイントを無効にします。
Xcode 4 では、gdb デバッガと新しい lldb デバッガが利用可能です。
起動アクションの起動ステップの追加タブを使用して、起動時に使用する起動引数と環境変数を指定するだけでなく、メモリ管理とロギングの診断コントロールをセットすることができます。たとえば、常に適切なチェックボックスをチェックすることにより、malloc のデバッグ下に実行可能なファイルを実行し、起動アクションを作成します。
プロセスを起動すると、エディタ下にデバッガエリアが現れます。ビューメニューからいつでも、これを表示または非表示できます。デバッガのエリアには、変数ビューとコンソールビューがあります。
変数ビューには、すべてのシンボルが、ポップアップで選べるフィルターバーがあり、ローカルスコープ内のシンボルのみ、または現在のプログラムの場所に関連する値を示すオートモードを示します。フィルタフィールドを使用すると、関心のある特定のシンボルに絞り込むことができます。
値が、複数列表示よりも1行で識別子、タイプ、生の値、および書式設定された値と、アウトラインの形で示されます。実行時に、更新された値は青色で表示されます。それぞれの値に、コンテキストメニューを使用すると、その表示を制御し、コンソールにその値を印刷したり、16進エディタでのバッキングメモリを開くことができます。
コンソールは、デバッガやプログラムの標準入力および/または標準出力との相互作用を示しています。デバッグセッションの写しは、ログ·ナビゲーターに保存され、メインエディタの領域に表示されます。以前のデバッグセッションの記録を見ることができるように Xcode 4 は、デバッグログの記録を保存します。
パネルの上部にあるデバッガバーは、プログラムの実行だけでなく、スレッドとスタックフレームにより現在のプログラムカウンタの文脈を示す経路制御のためのステップのコントロールがあります。スタックフレームは、ユーザ、システム、フレームワーク、およびカーネルコードを識別するために独特のアイコンで識別されます。
ブレークポイントのナビゲーターは、ワークスペース内のすべてのプロジェクトで設定したすべてのブレークポイントを示しています。ブレークポイントは、ワークスペースに追加された Xcode プロジェクトでプロジェクトユーザーファイルからインポートされますが、 Xcode 4 ワークスペース·ユーザー·ファイルに格納されます。Xcode 4 のブレークポイントに加えた変更は、他のユーザーやワークスペースに利用できず、プロジェクトが Xcode 3.2 で開くと表示されません。
ブレークポイントナビゲータのブレークポイントの記号をクリックして、それを有効または無効にします。ブレークポイントの条件、アクション、およびオプションを設定するにはダブルクリックします。
デバッグナビゲーターは、プロセス内のすべてのアクティブなスレッドを表示します。下部のスタック圧縮スライダーはすべてのスレッド内の、冗長な、または無関係なスタックフレームを明らかにしたり非表示にします。Σボタンは、コード内のフレームなしで実行しているスレッド非表示にします。場所や変数が、メモリビューアで、デバッグナビゲータに表示されます。
まったく Xcode 3.2 のようにデバッグ中にブレークポイントや、プログラムカウンタバー、データヒント、インエディタコントロールは、ソースエディタに表示されます。
lldb デバッガは、Xcode 4 の新機能で、まだ開発中です。それがこの開発者用プレビューで基本的な機能を提供していますが、完全な機能をしていません。 lldb の詳細については、http://lldb.llvm.org で LLVM プロジェクトページを参照してください。
起動スキームと同様に、配布スキームは、1つ以上のターゲットをビルドし、ユニットテストを実行する計画ですが、プロダクトのビルドを実行する代わりに、配布スキームは、アーカイブし、それを配布するための過程を指示します。一般的に、夜ごとのビルドを配布、プレビューコピーを播種したり、最終的なリリースを出荷するように、製品開発のマイルストーンで配布スキームを採用します。
配布スキームはビルドとちょうど起動スキームのようなテストアクションがあるだけでなく、指定された方法で、ビルドプロダクトをアーカイブしてパッケージする作用を有します。起動スキームと同様に、各アクションには、操作の段階で有用なタスクを実行するためのアクション前とアクション後のスクリプトがあります。
配布スキームのアーカイブのステップは、アプリケーションを単独でアーカイブするか、スキームのすべてのビルドプロダクトを一つのディスクイメージ(.dmg)ファイルにパッケージ化するかを選ぶことができます
Xcode 4 は、ワークスペース内の索引付けファイルのための、まったく新しいメカニズムがあります。索引は、ワークスペース全体のために作成されるため、プロジェクト間の参照が解決されます。
索引付けは現在、ソースファイルを解析するために、LLVM コンパイラ 2.0 を使用しています。これはパフォーマンスの向上と、より高い精度をもたらします。最も重要なのは、索引作成のための記号の解釈が、より密接に、コンパイル時に構文の解釈と一致します。
索引は、~/Library/Developer/Xcode/DerivedData のワークスペースの唯一のディレクトリの索引サブディレクトリに格納されています。オーガナイザは(孤立したプロジェクトの索引やその他の派生データの削除を含む)、この情報を管理します。
索引作成はバックグラウンドで行われます。索引付けが行われているときに、アクティビティ・ビューは状況を示します。索引の準備ができるまで、索引を必要とするいくつかの機能は、(たとえば、すばやく開く)利用できない場合があります。他はパフォーマンスの低下(例えば、システム·シンボルの構文の色分け)があってもよい。索引付けが完了すると、これらの機能がすぐに利用できるようになります。
スナップショット機能は、より速く、より信頼性が高く再実装されました。スナップショットを使用するためには、Xcode 4 インストーラでシステムツールをインストールする必要があることに注意してください。
検索・置換の操作をする前に、手動または自動でスナップショットを作成して下さい。設定シート([ファイル]> [プロジェクトの設定])を使用すると、スナップショットを格納しておく場所を指定することができます。
SCM リポジトリの構成は、環境設定ペインの代わりに、オーガナイザで行います。プロジェクトまたはワークスペースを開き、SCM システムがコマンドラインまたは別のツールを使用して、点検すると、Xcode は自動的にそのプロジェクトやワークスペースの SCM リポジトリのサポートを構成します。
git のサポートが追加され、Subversion のサポートが、注釈をサポートするように拡張されました。システムツールの Xcode 4 インストーラの、チェックボックスをチェックすると git のツールがインストールされます。Perforce と CVS ソースコード管理システムはサポートされなくなりました。
SCM の状態がニーモニックの従来のセットを使い(U はリポジトリ内では更新(Updated)の U、M はローカルで変更(Modify)の M、A はローカルに追加(Add)の A、D はローカルで削除(Delete)の D、I は無視(Ignore)の I、R はリポジトリで置き換え(Replace)の R)プロジェクトナビゲータでバッジとして表示されます。開示レベルと関係なく、ワークスペース全体の SCM のステータスを確認して、バッジは、コンテナのぎりぎりの容量まで増殖する。コンテナに付いたアスタリスクのバッジは、その内容が状況を混入した状態であることを意味します。詳細な SCM のステータスは、ファイルインスペクタの SCM のエリアでもご覧になれます。
SCM の管理下にあるファイルをどれでも選択し、バージョンエディタをクリックすると、横に並んだビューでそのファイルが表示されます。中央の列でタイムラインのアイコンをクリックすると、すべてのリポジトリのバージョンを視覚的にタイムラインを示します。どのバージョンを示している側面を制御するためのスライダーを使用します。1辺が作業コピーである場合は、バージョンエディタを使用して、全てのリポジトリのバージョンからの変更を合体します。Xcode 4 では、ファイルの作業用コピーは、左側にあります。
バージョンエディタの下のボタンを使用すると、ファイルの比較、タイムラインを表示します。ファイルのログを変更して、ファイルの各行の個々の変更の注釈(「非難」)。
SCM のコマンドは、別個の SCM メニューより、[ファイル]メニューの[ソース管理]サブメニューに今はあります。SCM のシートを使用すると、特定の SCM アクションの個々のファイルを選択し、アクションを確認する前に違いをプレビューすることができます。
更新と、委託操作は、ログ·ナビゲーターに記録されます。ログを選択することで、ログエディタでのその操作の個々のステップを参照できます。
検索ナビゲーターは、ワークスペース全体を検索します。これは、テキストファイル、プロパティリスト、データモデル、プロジェクトやターゲットのビルド設定の検索結果を示します。
検索フィールドの虫眼鏡のアイコンは、最近の検索のリストを明らかにします。テキストまたは正規表現検索のスタイルから表示検索オプションを選び、検索結果に検索語が含まれているか、正確に一致しているかどうか、大文字小文字を無視するかどうかを設定し、検索するワークスペースやプロジェクトのどのサブセットにするかを選びます。
ツールバーの中央にあるアクティビティ·ビューは、現在進行中の活動の進行状況インジケータが表示され、バックグラウンド動作(索引付け、SCM の状態をチェック)している名前の表示も行われています。Xcode が何もしていないときには、アクティビティ·ビューが「Xcode へようこそ」と表示します。
アラート環境設定ペインを使用すると、特定の操作が開始または完了したときに発生するアクションを指定することができます。ビルドを開始するときは、常に最新のビルドログを表示するには、例えば、ワークフローを調整するために、これを使用します。トリガーは、ビルドの起動と中止、テスト、起動、検索、またはデバイスの復元が含まれます。アクションには、サウンドの再生、ドックアイコンを跳ね返らせ、またはスクリプトの実行を含みます。
Xcode のオーガナイザは、もはやファイルとフォルダの不定の容器ではない。この機能は、ワークスペースに移動しました。iPhone、iPod タッチ、iPad デバイスを管理するのはまだウィンドウです。また、SCM のリポジトリ管理は、環境設定ペインからオーガナイザーに移動しており、開発者用文書は、独自のウィンドウからオーガナイザーに移動しました。
オーガナイザーにはまた、配布スキームで作成されたアーカイブアプリケーションやディスクイメージへのアクセスを提供するアーカイブ用の新しいセクションがあります。
Xcode 4 は、異なるメニュー構造を有しているため、多くの Xcode 3.2 のメニューコマンドは、Xcode 4 にはもはや存在しない。そのメニューキーバインディングの中には、Xcode 4 の新機能に再び割り当てされ、他のメニュー項目のキーバインドが一致するように変更されました。
キーバインド | Xcode 3.2 での意味 | Xcode 4 での意味 |
---|---|---|
⌘⌥B | ブレークポイント表示 | 編集してスキームをビルド |
^⌘B | モデルブラウザ表示 | ビルドと分析 |
⌘⌥C | コピースタイル | コミット |
⌘D | ブックマークの追加 | 複製 |
⌘⇧D | 素早くオープン(今⌘⇧O) | 定義へジャンプ(⌘-ダブルクリックに相当) |
⌘⇧⌥D | これをすぐに開く(今^⌘O) | 割り当てられていない |
⌘⇧E | エディタ切り替え | 置き換えに選択した物を使用(^⌘Eだった) |
^⌘E | 置き換えに選択した物を使用(今⌘を⇧E) | スコープ内のすべてを編集(^⌘Tだった) |
⌘⌥F | 詳細を検索 | 検索と置換 |
⌘I | 情報を見る/インスペクタ表示(今⌘⌥1) | ステップイン(⌘⇧だった) |
⌘⇧J | リファクタリング | 行にジャンプ(⌘Lだった) |
⌘L | 行に移動(⌘⇧Jに変更) | ナビゲータで明らかに |
^⌘N | 新しい空のファイル | 新規ワークスペース |
⌘⇧O | ステップオーバー(今⌘P) | すばやくオープン(⌘⇧Dだった) |
^⌘O | オーガナイザー(今⌘⇧2) | これをすぐに開く(⌘⇧⌥Dだった) |
⌘P | 印刷 | ステップアウト(⌘⇧Tだった) |
⌘⇧R | コンソール | ビルドせずに実行(⌘⌥Rだった) |
⌘⇧⌥R | コンソール消去 | スキーム編集と実行 |
⌘T | フォント表示 | テスト |
⌘⇧T | ステップアウト(今⌘P) | ビルドせずにテスト |
⌘⌥U | グループ解除 | アップデート |
⌘⌥V | ペーストスタイル | スペシャルペースト |
^⌘W | プロジェクトを閉じる | 現在のファイルを閉じる(⌘⇧Wだった) |
⌘Y | ビルドとデバッグ-ブレークポイントオンで | ブレークポイント有効/無効(^⌘\だった) |
^⌘Y | デバッグ-ブレークポイントオンで | 一時停止(⌘⌥Pだった) |
⌘0 | プロジェクト | ナビゲーターを隠す |
このリリースの既知の欠落機能
Xcode 4 のこの開発者用リリースは、以下の機能を実装していません。
- 新規の無題ファイル
- コンパイル、プリプロセス、アセンブリ·コード表示
- 分散ビルド
- リファクタリング
- 起動スキームおよび配布スキームでのテストアクションのための固有の機能
- 選択したテキストに置き換える
- ファイル、フォルダ、およびターゲットの重複
- 他のエディタのキーバインディングのセット
- ユーザースクリプトメニューまたはエディタ
- xed
- 外部(メイクファイル)ターゲットでのターゲットの編集
- ビルド時にカスタムプラグインを必要とする .nib や .xib ファイルの編集
- ターゲット・メンバーシップ・インスペクタ
- iPad のインターフェースビルダーファイル内のカスタムアクションやアウトレットへの接続。これらの接続を行うためには[ソースコードへの接続]の機能を使用してください。
- インタフェースビルダーのファイル内の検索
- iPad のインターフェイスビルダー文書にカスタムまたはプレースホルダのオブジェクトを作成する事。別の文書から既存のプレースホルダーをコピー・ペーストします。
- lldb によるデバッグは、シミュレータでは iPhone と iPad アプリで動作しますが、デバイス上では動きません
このリリースでの既知の問題
Xcode 4 開発者用プレビューはプレリリースソフトウェアです。パフォーマンスと安定性の問題、データの損失やファイルの破損、欠落しているか実装されていない機能、動作や審美的な問題、および機能や機能拡張要求のためhttp://bugreport.apple.com でバグを提出してください。可能な限り、特にクラッシュログやサンプル、再現手順の詳細、およびプロジェクトやワークスペースを可能な限り文脈に沿ってを提供して下さい。
以下の問題が、このリリースですでに知られています。
- プロジェクトが、SCM の制御下にある場合、プロジェクトエディタでローカライズの複製は動作しない場合があります。
- リンクされた文書が、ローカルの文書セットにあると予想されるのに、欠落している場合、ドキュメントビューア内のリンクに従うことは、クラッシュを引き起こす可能性があります。8017277
- ビルド設定の検索結果をクリックすると、含まれているプロジェクトやターゲットを開きますが、実際見つかった設定を選択やスクロールはできません。7749874
- ビルドをキャンセルすると、ログナビゲータの[ビルド]項目にスピニング進行状況インジケータを残すことがあります。7735752
- ナビゲータで明らかにすると、プロジェクトナビゲータでファイルを選択しますが、ビューにそれをスクロールしない場合があります。8003741
- Xcode のスクリプト辞書のほとんどの定義は、現在実装されていません。7948823
- 現在のビルド·フェーズでファイルを選択しないと、[エディタ]>[ビルドフェーズの追加]メニュー項目は有効になりません。エディタで[ビルドフェーズ追加]ボタンを使用して下さい。
- ビルドフォルダとの関係、開発者フォルダとの関係、プロダクトをビルドするための関係、パス(ソースツリー)への参照スタイルとの関係は、ファイルインスペクタで正しく表示されず、ファイルのインスペクタで設定することはできません。既存のプロジェクトで正しく設定された値は正しく動作します。ワークスペース内のプロジェクト間でビルドプロダクトをドラッグすると、正しくビルドプロダクトの参照を作成することができない場合があります。
- ロックされたファイルは、一般的に扱えません。ファイルインスペクタは、通常、ファイルのロック状態の指標を与えますが、ロックされたファイルへの操作について警告または阻止の試みは行われません。7338327
- プロジェクト内のファイルを追加または移動しても、正しいビルドフェーズに追加しない場合があります。ファイルを追加したら、ファイルが正しく目的のターゲットでビルドされていることを確認するために、ターゲットのビルドフェーズを確認して下さい。
- ソースをコンパイルフェーズでのファイルのビルドはアルファベット順に表示していて、順序を変更することはできません。新しいファイルを追加する場合は、ファイルのビルドは、アルファベット順にプロジェクト·ファイルに保存され、その順序でビルドされます。もし順序がそのターゲットのビルドやリンクに重要である場合、ビルドが失敗する可能性があります。
- 「結果は、テキストファイルの写しとして以下のように開く」は機能していません 。8041039
- 配布スキームで作成されたディスクイメージはオーガナイザーに表示されません。
- ワークスペースからプロジェクトを削除すると、そのプロジェクトのターゲットに依存しているスキームを正常に更新しないことがあります。ワークスペースからプロジェクトを削除した後スキームを削除して再作成することもできます。7901251
- 特定の状況では、ワークスペースを開くと、二つの独立したウィンドウで開きます。7336838
- 起動アクションでの引数と環境変数を並べ替えることができません。7909498
- XML テキストが、インタフェースビルダーエディタでインターフェイスビルダーファイルの代わりに表示された場合は、インスペクタエリアを開いてファイルタイプを「デフォルト」に設定し、文書を一度閉じて再度開きます。
- インターフェイスビルダーオブジェクトは特定の操作後に、そのコンテナに合わせて自動的にサイズ変更されません。オブジェクトが適切なサイズであることを確認するためにエディタのメニューから[フィットするサイズ]を選択します。
- インタフェースビルダーの文書内の「隠された」とマークされたビューは、インタフェースビルダーのエディタには表示されません。ジャンプバーまたはドキュメントアウトラインビューからそれらを選択します。
Xcode でサポートされなくなった機能
以下の機能は Xcode から削除されています。代替の機能が利用可能である場合には、書き記しました。
- レイアウトモード
- クラスブラウザ。エディタのシンボルナビゲーターとクラスナビゲータメニューを使用して下さい。
- アクティブなターゲット/構成/アーキテクチャ/SDK/実行ツールバー項目と[プロジェクト]メニューの項目。ターゲットの特定の組み合わせでの起動スキーム/構成/アーキテクチャ/SDK/スキームツールバーポップアッポ鵜を使って、あなたにとって有用実行ファイル。
- ブックマーク
- お気に入りバー
- 詳細ビュー
- クラスモデル
- 個々のファイルをタッチ
- [ファイル]メニューの[最近使ったファイル]メニュー項目。ナビゲーションボタンに、最近のファイルのリストがあります。また、プロジェクトまたはワークスペース内のすべての最近閲覧したファイルを表示するには、プロジェクトナビゲータでフィルタを使用します。
- 外部エディタのサポート
- テキスト文書内のシェルスクリプトコマンドのワークシート(Control-R)を実行する
- 予測コンパイル(一般には修正-ヒントに置き換え)
- 修正と継続
- ジャンプバーでのブレークポイントナビゲーションメニュー
- AppleScript .scpt ファイルの編集とコンパイル
- Perforce と CVS ソースコードの管理
- 開いた Xcode ウィンドウのドックアイコンメニュー(スノーレパードでは、すべての Xcode のウィンドウを表示するにはドックのタイルで押し続ける)
- カーボン nib ファイルの編集。Xcode 4 は、カーボン xib と nib ファイルのビルドをサポートしています。それらを編集するには、インタフェースビルダー 3.2 を使用して下さい。
前:Xcode 5 公開ノート
次:文書改訂履歴