Xcode 5 公開ノート
Xcode 5.1.1 公開ノート
解決済みの問題
ビルドシステム
- 更新されたコンパイラオプションのロジックは -Ofast フラグで "厳密なエイリアシングを実施する" をオフに設定する事を可能にします。(16368909)
- xcodebuild -parallelizeTargets オプションまたは同等の Xcode のビルド設定を使用する場合エラーになります。(16420957)
コンパイラ
- ARC および C++ を使用してコンパイルしたコードでクラッシュする。(16368824)
- -fsanitize=undefined-trap と -fsanitize-undefined-trap-on-error オプションを使用した時コンパイラエラー。(16387418)
- iOS 5.1.1 をターゲットにしてコンパイルしたコードでのクラッシュ。(16485980)
- C++ イニシャライザや他の状況でコンパイルするとき、コンパイラのクラッシュ。(16438726、16368865)
リンカ
- LTO、デッドストリッピング、および範囲外への分岐に関するリンカのクラッシュやエラー。(16368534、16368564、16368631)
デバッグ
- Xcode のデバッグ時のクラッシュ。(16369101)
- 一部のオブジェクトは、最初の試行でクイックルック表示でうまく表示されない問題。(16368930)
- UIView のクイックルック表示における一貫性のない行動。(16368999)
- UIImageView のクイックルックでの問題(16489265)
- 複数のデバッグセッションで Xcode がクラッシュします。(16369025)
テスト
- XCTest に OCUnit からプロジェクトを変換した後に、コンパイラエラー。(16387456)
Xcode サーバー
- Xcode サーバーが時々 OS X Server のバージョンに互換性がないと宣言する問題。(16436893)
Xcode 5.1 の公開ノート
新機能
デバッギング
- クイックルックは、開発者に定義されたクラスで実装できます
- 式の論理値を今プリントアウトし、ブレークポイントアクションをログに記録します。
- インターフェイスビルダーの文書は、それらが使う新しい機能と、このような文書を開こうとすると、Xcode の以前のバージョンでは、警告メッセージをより良く表示することができ、必要とする OS のバージョンに関する具体的な情報を含めることができます。(7659982)
- アスペクト比、プロポーショナルサイズと位置、クロス属性のアラインメント、および制約のほぼすべてのプロパティを編集するための機能を備えた新しい制約インスペクタ:自動レイアウトを使用して インタフェースビルダー でのビルド・インターフェースは、可能な制約の型の完全なスイートを提供しています。
- インタフェースビルダー の制約である、アトリビュート・インスペクタは、制約の項目とアトリビュートを表示し、アトリビュートの編集を可能にします。この機能は、view1.centerY= view2.bottom のようなクロス属性制約を作成する機能を有効にします。(13739009)
- アライメント制約(例えば、view1.leading<= view2.leading)や同サイズ制約(例えば、view1.width>= view2.width)など、制約のどんな型でもその関係を、編集するには、インタフェースビルダー を使用することができます。(14721954)
- アスペクト比とプロポーショナルサイズの制約を作成して、インタフェースビルダー で制約の乗数を編集することができます。乗算は、10 進数(例えば、0.5)、分数(例えば、1/2)、又はアスペクト比(例えば、1:2)です。 (11935843)
- インタフェースビルダー で曖昧な景色に添付される制約は、曖昧な軸だけがオレンジ色に描かれます。これは、キャンバスの潜在的な問題をより速く特定することができます。(15114120)
- インタフェースビルダー のキャンバスは、オーバーレイスクロールバーが表示されるようになり、システム環境設定の[一般]ペインで設定を[スクロールバー表示]に基づいて、適切になりました。(10069033)
- インタフェースビルダー のインスペクタには、以下の物をサポートするようになりました:
カスタムクラスのインスタンスがクイックルックでデバッガ変数ビューで見るか、デ0ータヒントで表示された場合、デバッガはクラスの実装で定義されている -debugQuickLookObjectという名前のメソッドを使用して、それを提示します。この機能を使用する方法の詳細については、Xcode のデバッガのカスタム·タイプのクイックルックを参照してください。(12723736)
たとえば、"myString = @myString" のようなログブレークポイントのアクションは、今、ポインタ値よりも、myString の値を出力します。(13211695)
ユーザーインターフェイス編集
NSTableView - floatsGroupRows プロパティ(9617000)
UISegmentedControl - apportionsSegmentWidthsByContent プロパティ(9950528)
UITableViewは - sectionIndexBackgroundColor プロパティ(14776025)
プロトタイプの UITableViewCell - editingAccessoryType プロパティ、設定「詳細」ボタンタイプ(15039987)
インストルメントとシンボリック化
- インストルメントは、はるかに確実にシンボルを検索できるようになりました。
シンボルが自動的に表示されない場合は、次のことを試してください:
- Xcode は、/tmp のようなデータを導出したために Spotlight の索引作成を無効にされると、インストルメントの設定で構成された追加の検索パスのグローバルリストを追加します。
- アドレスのコンテキストメニューは現在、特定のシンボルファイルを追加するためのオプション「DSYMと Symbolicate」を含みます。
- 個々の実行可能ファイルおよびライブラリの状態の詳細なリストを表示するには[ファイル]メニューから[シンボル]コマンドを使用してください。
- 緑色のライトは、シンボルとソース情報の存在を示します。
- 黄色のライトは、いくつかのシンボルを持つライブラリを示していますが、それでも dSYM で探す恩恵を受けることができます。
- 赤いライトは、シンボリック化を防ぐ状態を示します。(14269449)
スクリプトによるインストール
- デバイスをサポートするインストール
- 絵文字や他の Unicode の代理対は、スキームの設定で、プロジェクトファイルでサポートされています。(14837623&13827044)
- Arm64 は「標準のアーキテクチャ」の設定に含まれるようになりました。
コマンドラインから実行すると、Xcode.app は新しいコマンドライン引数 -installComponents を取ります。Xcode は、このオプションを指定してコマンドライン・スクリプトから実行されると、必要なデバイス·サポート·パッケージをインストールしてから終了します。(15127411)
一般
変更点
ビルド
Xcode 5.0 は、64ビットの iOS アプリケーションをビルドするためのサポートが導入されていますが、デフォルトでは無効になっていました。Xcode 5.0 で 64 ビットをビルドするオプションを有効にするには、アーキテクチャーの設定が提供されました:「64-ビットを含む標準アーキテクチャー」(ARCHS_STANDARD_INCLUDING_64_BIT)。
Xcode 5.1 の導入により、arm64 はデフォルトの「標準アーキテクチャ」ビルド設定に含まれるようになりました。これは、プロジェクトでは自動的に標準の 32 ビットアーキテクチャと一緒に arm64 用にビルドするのをデフォルト設定として使用する事になります。
注意:Xcode 5.1 で既存のプロジェクトを開くときに次のアーキテクチャの問題点に注意してください:
- すべてのアーキテクチャでビルドする場合、明示的なアーキテクチャーの設定を削除して、デフォルトの「標準アーキテクチャの設定」を使用して下さい。以前に選択した「64-ビットを含む標準アーキテクチャー」を使用するプロジェクトでは、戻って「標準アーキテクチャ」の設定に切り替えます。
- 初めて既存のプロジェクトを開くと、Xcode 5.1 は Xcode 5.0 のアーキテクチャの設定を使用しているという警告を表示する場合があります。警告を選択すると、設定を修正するワークフローを提供します。
- 64 ビットをサポートすることができないプロジェクトは、64-ビットを含まないようにビルドの具体的なアーキテクチャを設定する必要があります。
- 「64-ビットを含む標準アーキテクチャー」を使用するように構成されたプロジェクトは「標準アーキテクチャ$(ARCHS_STANDARD)」に変換されます。
コンパイラ
- アップルの LLVM コンパイラ・バージョン5.1(クラング-502)以後では、最適化レベル -O4 は、もはやリンク時の最適化(LTO)を意味していません。LTO で明示的にビルドするには最適化レベルフラグに加えて、-flto オプションを使用します。(15633276)
既知の問題
ユーザーインターフェイス編集
- インタフェースビルダー でのスタックビューに追加したカスタムビューは、「場所違いのビュー」(矛盾した)の状態にはまり込むことがありえます。
次善策として、適切なコンテンツのハグと耐圧縮性の能力を持つカスタムビューのプレースホルダ固有サイズを設定します。(15778653)
テスト
- iOS シミュレータで実行する自動化されたテストでは、以下のようなエラーで失敗することがあります:
Test target [test name] encountered an error (Test process exited with code -1)
シミュレータを終了して再起動することで回復を試みて下さい。(15929053)
Xcode サーバー
- Xcode 5.1 の継続的統合機能(ロボット)は OS X Server V3.1 以降が必要です。
- サーバ·ホスト上に Xcode の古いコピーがある場合は、Xcode サーバーは時々すべてのシミュレータを表示します。シミュレータを適切に使用する唯一の方法は、 Xcode 5.1 で使用する事です。(15465692 & 15153869)
- Xcode サーバーは、プロジェクトの基準に適合する物が無かったにしても、すべてのデバイスまたはすべてのシミュレータを提供します。あなたが不適切なデバイスまたはシミュレータを選択した場合は、次のようなエラーが発生することがあります。
- Xcode 経由の OS X Server 上で新しいローカルリポジトリを作成しようとしているとき、時々 、Xcode は以下のようなエラーメッセージを表示することがあります
xcodebuild: error: No destinations were specified with the -destination flag which were valid for the specified scheme < scheme_name > .
これが起こるのを防ぐには、プロジェクトに対して有効なデバイスまたはシミュレータのみを指定します。(15465222)
xcode-select: note: no developer tools were found at '/Applications/Xcode.app', requesting install. Choose an option in the dialog to download the command line developer tools.
この問題を解決するには、OS X Server のホスト·システムで表示されるダイアログの指示に従ってください。(15475078 & 15486464)
iOSシミュレータ
- iOS 6.1 またはそれ以前のシミュレートされた OS のバージョンと OS X メイベリックスに iOS シミュレータ内でアプリを実行するときに、パフォーマンスの問題が発生する事があります。
- 次善策は、ターミナルウィンドウで次のコマンドを実行して、iOS 6.1 またはそれ以前のシミュレータを使用する時にタイマーが合体するのを無効にすることです。
- iOS シミュレータは時々ハードウェアキーボードに応答しない事があります。
sudo sysctl -w kern.timer.coalescing_enabled=0 (15501929)
終了してシミュレータを再起動すると、通常は、これをなおします。(14642684)
解決済みの問題
テスト
- XCTAssertEqual マクロ(OCUnit を使用していた以前は STAssertEquals)は、たとえば、int や NSInteger にキャストすることなく、様々なタイプのスカラー値を正しく比較します。それはもはや、比較のために、構造体(struct)などの非スカラー型を受け入れることはできません。(14435933)
一般
- Xcode 5.1で作られた実行可能ファイルは、もはや OS X v10.5 上ではクラッシュしません。(15852259)
- iCloud を使っているようなプロビジョニングプロファイルを必要とする OS X のアプリは、コード署名を正しくされ、起動出来ます。(15841159)
旧式
- OCUnit と SenTestingKit フレームワークは、Xcode の今後のリリースから旧式とされるようになり、削除されます。OCUnit を使用したソースコードは Xcode 5.1 でコンパイルすると警告を発します。
- ATS フレームワークは推奨されていません。ATS の API を使用したソースコードはコンパイルすると、警告を生成します。バージョン 10.8 の場合は、失われている機能はありませんが、パフォーマンスが低下している領域が存在する可能性があります。
「編集>リファクタリング> XCTestに変換... "メニューコマンドを使用して XCTest に移行します。
すべての ATS コード(ATSUI を含む)を CoreText で置き換えてください。ATS の機能は、将来の OS X のリリースでは削除されるでしょう。この変更の詳細については、Core テキスト·プログラミング·ガイド に記載されています。
Xcode 5.0.2 公開ノート
既知の問題
以下の既知の問題は、Xcode 5.0.1 にリストされているものに加えて、Xcode 5.0.2 用に記載されています。
ユーザーインターフェイス編集
- iOS 7 でインターフェイスビルダーの書類が、垂直間隔制約が上部または下部レイアウトのガイドと同じ高さと水平なビューの間で作成されたときに、ガイドの下端からビューのトップの端へではなくガイドの上端と、ビューの下端との間の制約がが作られます。
ビューを1pt 下げる(上向きののレイアウトガイドにした場合)、または上に(下向きのレイアウトガイドにした場合)、制約の定数を 1 から 0 に変更し、垂直方向の間隔制約を作成します。14627548
パフォーマンスの測定と分析
- 「スクリプトを開始できませんでした:ターゲットアプリが最前面化されていません」のメッセージが iOS 7 シミュレータに対してインスツルメンツの UI 自動化スクリプトを捕獲しようとしたときに表示されることがあります。
この問題が発生した場合は、トレースドキュメントを閉じて、新しいものを作成してください。15387075
解決済みの問題
デバッギング
- LLDB が正しくシミュレータプロセスで構造体を表示するようになりました。14496092
- iOS 6.x を実行しているデバイス上でアプリケーションをデバッグすると、アプリケーションが EXC_BAD_ACCESS でクラッシュしていました。 15310896
iOSシミュレータ
- Xcode をインストールした後、iOS 7.0.3 シミュレータは、多少の時間(最終的に起動する)の期間、最初の起動時にハングアップしました。15368009
- インストルメント GUI からまたは /usr/bin/instruments のコマンドラインから UIAutomation を実行すると、ハングアップしました。15367995
一般
- 複数回、デバイス上で 64 ビットアプリケーションを起動するとデバイスは応答を停止する(ソフトリセットを必要とした)15338361
Xcode 5.0.1 公開ノート
新機能
ヘルプと文書へのアクセス
- ドキュメントウィンドウは、ライブラリ·ブラウザとブックマークのリストを含むナビゲータ領域を持っています。[エディタ]>[ライブラリに公開する]メニュー項目またはコンテキストメニューの[ライブラリに公開する]のいずれかを使用してライブラリブラウザで現在の文書を表示することができます。12116524
既知の問題
ビルド
- Xcodeの 5 で作成した新しいアプリケーション·ターゲットは iOS5 では起動時にクラッシュします。
- VMWare の共有フォルダを介してアクセス可能である VMWare の内側からプロジェクトをビルドすると、コンパイラがクラッシュする可能性があります。
アプリが iOS 5 をターゲットにしている場合ベースのローカライゼーションをオフにします。13979280
代わりに、ファイルを共有するために、AFP を使用します。14251948
OS X サーバでの継続的統合
- HTTPS 経由でリモートの SVN リポジトリと通信すると、「サーバー名でサーバー証明書を検証するのにエラー」のようなエラーで失敗する可能性がある。
- Xcode の中から作成されたリモートリポジトリの SSH アクセス権限は、デフォルトではそれを作成したユーザーのみに制限されています。これらのホスト型のリポジトリのアクセス権は、Xcode の中からは変更することはできません。
/Library/Server/Xcode/Config/xcsbuildd.plistを編集して、TrustSelfSignedSSLCertificatesキーを偽から真へ変更。
そして、ターミナル・ウィンドウから、sudo killallをxcsbuildd を実行します。14639890
権限が Server.app 内でホストされたリポジトリの下で Xcode サービスを訪問する事で変更することができ、リポジトリタブのもとでリポジトリをダブルクリックして、アクセス設定を変更することができます。15193716
ユーザーインターフェイス編集
- Xcode の古いバージョンで最後に保存された読み取り専用の xib やストーリーボードのファイルを開くと、Xcode を終了できない場合があります。
- アウトラインに Interface Builder のオブジェクト・ライブラリからプレースホルダオブジェクトをドラッグすることはできません。
- Xcode 4.6 で自動レイアウト文書内の UITableViews を編集する際に、時々、エラーメッセージが表示され、「自動的に制約を更新できませんでした。」と言われる。
- いくつかの例では、「通貨」スタイルで Interface Builder で作成した数字フォーマッタは、実行時にローカライズされた通貨記号を表示しません。
- クォーツコンポーザー(Quartz Composer)から QCView のインスタンスを含む xib ファイルはビルドに失敗し、ibtool によって処理することができません。
- UIAAlert の defaultButton とCancelButton の機能は、iOS 7 をターゲットにするときには、2つボタンのいくつかのアラートと共に失敗します。14649998
最初に control + コマンド + W または[ファイル]> [名前のファイルを閉じるフ]メニューコマンドを使用して、xib やストーリーボードのファイルを閉じる必要があります。14715366
キャンバスの背景にプレースホルダオブジェクトをドラッグします。13731313
ファイルインスペクタのオプションで「内で開きます」を使用して Xcode 5 形式に文書をアップグレードしてください。必要な編集を行った後は、必要なら Xcode 4.6 形式にダウングレードすることができます。 14680132
Interface Builder で、10.4+ デフォルト から 10.4+ カスタム に数字のフォーマッタの「動作」を変更した後、OS X 10.4+ デフォルト に戻します。14378988
キャンバス上の QCView のインスタンスをライブラリからのカスタムビューのインスタンスと置き換え、そのカスタムクラスをアイデンティティインスペクタの「QCView」に設定します。14991302
自動レイアウト:ランタイム
- 場合によっては、「フレームをアップデート」コマンドでは、トップレベルのビューまたはウィンドウのサイズを変更できません。
- ドキュメントビューがカスタムビューである所では、Interface Builder でのスクロールビューのクリップビューが所有する制約は、実行時に削除されます。
「すべてのフレームを更新」メニュー項目を使用してください。13716892
実行時にクリップビューにそれらを再度加え、維持したい制約のそれぞれにアウトレットを作成します。15115315
アセットカタログ
- イメージカタログにプロジェクトからイメージをインポートした後、ストーリーボードや xib ファイルはイメージファイルレファレンスを壊します。
Interface Builder でのイメージ名は、image-name.png としてリストされ、壊れたリファレンスを修復するために、image-name に短縮されます。14042186
ローカライゼーション
- ローカライズされたリソースとしての 文字列 のみのファイルを持つプロジェクトとターゲットは、ベースのローカライゼーションを使用するように変換することができません。(観察される動作は、プロジェクトエディタで「ベースのローカライゼーションを使用」チェックボックスをチェックした後でも、変換シートが変換するすべてのファイルを提示せず、チェックボックスで[完了]ボタンをクリックしてもチェックしないままとなってしまいます。)
ベースローカライズを使用して変換すると、プロジェクトやターゲットは、ローカライズに必要な少なくとも一つの文字列でないリソースを持っていなければなりません。プロジェクトナビゲータでローカライズする予定のリソース(例えば、Interface Builder の文書や画像)を選択し、ファイルインスペクタで開きます。ローカライズのスライスでは、[ローカライズ]ボタンをクリックして追加するものを[ローカライズ]で選択します。完了すると、変換ワークフローは、ファイルを表示し、チェックボックスが有効になります。15160454
Objective-C ランタイム
- 32 ビットの iOS 7.0 シミュレータでは、手動で nil の受信者で objc_msgSend_stret() を呼ぶとスタックポインタが破損する可能性があります。
objc_msgSend_stret() を呼び出す前に、受信者が nil 以外であることを確認してください。14753273
デバッギング
- 変数ビューでコンテキストメニューを使用して Xcode の UI から変数に設定されたウォッチポイントは、いくつかの変数-たとえば、self では動作しません。この場合、期待する時にウォッチポイントがヒットしないことに気づくでしょう。
- iOS 5 のデバイス上のアプリのデバッグセッションを終了すると、「接続が切断されました」というエラーメッセージが表示される場合があります。
- もし iOS のアプリが-application:didFinishLaunchingWithOptions: メソッドでデバッガ内でで一時停止している場合には、デバッグ·セッションは、別のビルド構成で同じアプリケーションをビルドするのも含めて、ビルドと再起動は中止する必要があります。
- シミュレータで実行されている iOS アプリが切り離された場合は、Xcode から同じアプリが再起動されると、アプリの新しいインスタンスが起動されていても iOS シミュレータでは黒い画面になります。
この問題を回避するには、Xcode のコンソールを使い、 watchpoint set variable < variable-name > コマンドで lldb > プロンプトでウォッチポイントを作成します。12658775
エラーポップアップを閉じます。これは、偽物であり、あなたのアプリをデバッグするとか、デバイスへの接続せよと示すものではありません。14871460
アプリケーションが最初に停止していない場合は、デバイスは、もはやアプリケーションを起動しなくなる状態に入りえます。デバイスがこの状態に入った場合は、再度開発に使用するためには再起動する必要があります。14851115
シミュレータでアプリを終了させるか、それをもう一度再起動します。14648784
デバッグ:Open GL
- OpenGL ES のフレームデバッガは、テクスチャ的に完全ではないテクスチャのミップレベルを表示することができません。14852587
パフォーマンスの測定と分析
- インストルメントの割り当ては iOS 7 を実行しているデバイス上のプロセスでに付属するだけです。
- iOS 7 のデバイス上で実行中のプロセスへのインストルメント割り当てで付属させるときには、ターゲットプロセスがクラッシュすることがあり、インストルメント割当での記録は、その後すぐに停止します。iOS 6 またはそれ以前のデバイス上のプロセスへの割り当てを付属させるときには、ターゲット·プロセスは実行を継続すべきであるが、データは割当では収集されません。
プロセスを iOS の以前のバージョン用にインストルメントで起動する必要があります。14065257
Xcode で起動した後、インストルメントと接続したり、デバッグナビゲータでメモリゲージを使用して、「インストルメントへのプロファイル」をクリックして、インストルメントに転送します。14828459
テスト
- XCTest は iOS 6 の目的先をサポートしていません。
Xcode は、iOS 6 の目的先で XCTest を使用できなくなり、未定義の動作になります。14075515
アカウント管理
- 時には会員センターから署名 ID を要求した後、Xcode はキーチェーンに対応する証明書をインストールしません。
- Xcode の環境設定のアカウントセクションを表示します
- 署名 ID に対応するアカウントまたはチームを選択します
- 「詳細の表示」をクリックします
- 詳細シートの左下の[更新]ボタンをクリックします 14197131
この問題を回避するには、次の手順を実行します:
ソース管理
- Xcode は、リポジトリへ接続するのに問題があるかも知れない、もしアカウントの設定でリポジトリが追加された後、資格情報が変更された場合。ある場合には、Xcode は、実際にバックグラウンドで接続しようとしている間にリポジトリに接続する際の障害を表示します。
リポジトリ接続の問題が発生した場合には、削除し、更新された資格情報を持つリポジトリを再度追加します。これは、リポジトリへのアクセスを復元します。13955597
iOSシミュレータ
- iOS 7.0 以前のリリースに iOS 7.0 からアプリケーションの最小配置ターゲットを切り替えた後、ビルドし、アプリケーションを実行すると「iOS シミュレータは、アプリケーションをインストールできませんでした。」と言うメッセージと共に失敗することがあります。
- iOS シミュレータを最初に起動すると Mac のハードウェアキーボードは機能しない場合があります。
- StoreKit(アプリ内購入)はシミュレータでは動作しません。13962338
この問題を解決するには、iOS シミュレータのホーム画面に移動します。アプリケーションのアイコンをクリックして保持し、次に浮かんでいる「X」ボタンをタップしてアプリケーションを削除することを選択します。13917023
シミュレータを再起動して下さい。13315258
一般
- iPhone シミュレータ上でクイックルック・フレームワークを経由してビデオを再生すると、映像の表示は黒く表示されますが、オーディオは奇麗にプレイし続けます。13871109
解決済みの問題
ユーザーインターフェイス編集
- インターフェイスビルダーの文書の自動サイズ変更マスクなしのビューが正しく開けませんでした。14969450
- Xcode 5 でビルドされたスクロールビューを使用して実行時に nib をロードする際に、クリップビューとそのドキュメントビュー間の制約が適切に処理されていませんでした。14097019
アカウント
- 配布署名アセットを作ろうとすると Xcode がクラッシュしていました。13956010
OpenGL
- 一つ以上のデバイスで OpenGL を使用してアプリを起動しようとすると失敗します。14836639
ソース管理
- Subversion の URL は、変数の名前の使用状況でエラーが発生していました。14825641
- 自己署名証明書で HTTPS および Git リポジトリを使用すると、失敗しました。14060992
- ダイアログの左下にある「証明書を表示」をクリックしてください
- 「常に信頼する」チェックボックスをチェックしてください
- 「続行」をクリックします
HTTPS を使った OS X サーバーで Git リポジトリをホストして相互作用して、証明書ダイアログボックスを表示された場合、gitリポジトリを使用して下さい:
これで、Xcode で Git リポジトリを使用することができます。
ノート
ヘルプとマニュアルへのアクセス
- Xcode 5 は、追加の書類セットをダウンロードすることをサポートしていません。追加書類セットは、~/Library/Developer/Shared/Documentation/DocSets/でそれらをインストールすることで、手動で追加することができます。
一度、インストールすると、文書セットはXcode 5 によってロードされ検出されます。もし文書セットがインストールされている間 Xcode が動作している場合は、終了して Xcode を再起動します。14930443
ビルド:配備互換性
- iOS の 64 ビット互換性のあるアプリケーションは、 iOS 5.1.1 以上の最小配置ターゲットでのみサポートされています。15190445
アカウント管理
- オーガナイザでのプロビジョニング・プロファイルリストは現在、Xcode の環境設定の[アカウント]タブにあります。それらを表示するには、該当する Apple ID のアカウントを選択し、[詳細の表示]をタップします。13950944
旧式
- Xcode 5 は、LLVM-GCC コンパイラおよび GDB デバッガの使用をサポートしていません。14857582
- ガベージコレクションは、OS X マウンテンライオン以降では非推奨技術です。Xcode 5 はガベージコレクションを使用してのビルド、デバッグ、または Mac のアプリのプロファイリングをサポートする Xcode デベロッパツールの最後のリリースになる事を予定しています。
- CVS と RCS ソース管理ツールは、Xcode 5 から削除されています。11968433
- CPlusTest ユニットテストフレームワークは、Xcode 5 から削除されました。C++ コードのユニットテストを記述するには、新しい XCTest フレームワークを使用して Objective-C++(.mm)のテストケースのサブクラスを作成します。8273037
- SenTestingKit と OCUnit は旧式です。XCTest に移動する移行ツールを使用して下さい。14857574
GC を用いたプロジェクトは、Xcode の移行ツールを利用して、ARC(自動参照カウント)に変換することをお勧めします。ARC への移行の詳細については、ARC への移行の公開ノートを参照してください。14406894
OS X サーバでの継続的統合
OSX サーバー上で Xcode をインストール
- OS X サーバが Xcode 5.0.1 を使用するように構成されていることを確認して、Xcode をインストールするには、次の手順を実行します:
- App Store を開き、OS X メイベリックスに更新する
- Xcode 5.0.1 と OS X Server をダウンロードする
- Xcode とサーバを終了します
- Xcode 5.0.1 をインストール
- OS X サーバをインストールする
- Server を開く
- Xcode のサービスを選択して、Xcode 5.0.1 を選択し、[選択]をクリック
バグの報告
- 継続的統合のバグを報告する際には、ターミナルで次のコマンドを入力し、バグレポートに出力を添付します:
sudo /Applications/Server.app/Contents/ServerRoot/usr/sbin/serverloggather
Xcodeとサーバ間の通信
- Xcode のサービスによってホストされているローカルの Git リポジトリにアクセスするには:
- リモートの SVN や Xcode のサービスでホストされていない Git リポジトリにアクセスするには:
- アップルの開発チームにサーバを結合するには:
Xcode と Xcode のサービスとの間の通信は、HTTP ポート 80 上で行なわれるようになりました。
Git+ SSH:22
HTTP:80
HTTPS:443
Git:9418
Git+ SSH:22
SVN:3690(匿名アクセスのみ)
SVN+ SSH:22
HTTP(Git+ SVN):80
HTTPS(Git+ SVN):443
HTTPS(SSL):443
コマンドラインツール
- コマンド·ライン·シムは、OS X のメイベリックスに含まれています。Xcode がインストールされていると、シムは Xcode 内のツールを使用します。それ以外の場合は、コマンドライン開発ツールパッケージで提供されるツールが使用されます。コマンドライン開発ツールパッケージは、xcode-select-install を使うとインストールされ、ターミナル内の任意のコマンドライン開発ツールを使用しようとすることで、オンデマンドでインストールされます。
- --show-sdk-path オプションは、SDKのパスを照会
- 改良された xcrun パフォーマンス
- DEVELOPER_DIR 環境変数のためのより強力なサポート
- --SDK を一緒に使用するとき SDKROOT 環境変数のサブコマンドに xcrun は SDK を渡し、提供します。15190491
OS X のメイベリックスでは、コマンドライン開発ツールは、ソフトウェア·アップデートを使って更新されます。OS X マウンテンライオンでは、コマンドライン開発ツールを更新するには、Xcode でダウンロードの環境設定を使用し続けて下さい。
OS X メイベリックスでは、デフォルトの検索パスを使用するように戻すのに、xcode-selectを --reset フラグに設定して下さい。
コマンドライン開発ツール·パッケージには、xcrun を含むように更新されました。xcrun は、以下のサポートが追加されています。
OS X メイベリックスのためのコマンドラインツールがインストールされている場合、DEVELOPER_DIRを Xcode のコピーまたは /Library/Developer CommandLineTools に設定して下さい
Xcode 5.0 の公開ノート
既知の問題
LLVM でのコンパイル
- VMWare の共有フォルダを介してアクセス可能である VMWare の内側からプロジェクトをビルドすると、コンパイラがクラッシュする可能性があります。
- 代わりに、ファイルを共有するために、AFP を使用して下さい。14251948
- 32 ビットの iOS 7.0 シミュレータでは、手動で受信者に nil を設定して objc_msgSend_stret() を呼び出すとスタックポインタを破損する可能性があります。
- 受信者は objc_msgSend_stret() を呼び出す前に、nil 以外であることを確認してください。14753273
ビルド
- Xcode 5 で作成した新しいアプリケーション·ターゲットは iOS 5 では起動時にクラッシュします。
- アプリが iOS 5 をターゲットにしている場合、ベースのローカライズをオフにして下さい。13979280
ユーザーインターフェイス編集
- Xcode の古いバージョンで最後に保存された読み取り専用の xib またはストーリーボードを開くと、Xcode を終了できなくなる場合があります。
- まず最初に、ctrl + cmd + w を使用してファイルを閉じるか、[ファイル]>[閉じる] < filename > に移動している必要があります。14715366
- いくつかの例では、「通貨」スタイルで Interface Builder で作成した数字フォーマッタは、実行時にローカライズされた通貨記号を表示しません。
- IB では、数値フォーマッタの「動作」を一度「OS X 10.4+デフォルト」から「OS X 10.4+カスタム」へ移し、「OS X 10.4 +デフォルト」へ戻って下さい。14378988
- Xcode 5 でビルドされたスクロールビューを使用して実行時に nib をロードする際に、クリップビューとそのドキュメントビュー間の制約が削除されます。これは、H:|-[documentView]-| and V:|-[documentView]-|.H のような制約の、クリップビューとドキュメントビュー間の制約にのみ、影響します。
- 実行時に制約を追加します。14097019
- iOS 7 をターゲットにするとき UIAAlert の defaultButton と CancelButton の働きは、2つのボタンの警告と共に失敗します。14649998
- イメージカタログにプロジェクトから画像をインポートした後、ストーリーボードや xib ファイルは画像参照が壊れています。
- Interface Builder でのイメージ名は、image-name.png としてリストされ、壊れた参照を修復するために、image-name に短縮される場合があります。14042186
- アウトラインにライブラリからプレースホルダオブジェクトをドラッグすることはできません。
- プレースホルダオブジェクトをキャンバスの背景にドラッグして下さい。13731313
自動レイアウト:ランタイム
- 場合によっては、「フレームをアップデート」は、トップレベルのビューまたはウィンドウのサイズを変更することはありません。
- 「すべてのフレームを更新」メニュー項目を使用してください。13716892
- Xcode 4.6 で開くように設定した自動レイアウト文書内の UITableViews を編集する際に、時々、「自動的に制約を更新できませんでした」というエラーメッセージに出会います。
- ファイルインスペクタのオプションで「〜で開く」を使用して Xcode 5 形式に文書をアップグレードしてください。必要に応じて、望んだ編集を行った後は、Xcode 4.6 形式にダウングレードすることができます。14680132
パフォーマンスの測定と分析
- オートメーション・インストルメントの下で実行されているスクリプトは、いつかは iOS 6 シミュレータ環境内で実行されているアプリケーションを検出できません。
- シミュレータ・アプリケーションを再起動し、スクリプトを再度実行してください。14447965
- 割り当てインストルメントは iOS 7 を実行しているデバイス上のプロセスにアタッチすることができます。プロセスは、iOS 7 より前の iOS のバージョンのインストルメントで起動する必要があります。14065257
- 割り当てインストルメントと iOS 7 デバイス上で実行中のプロセスにアタッチすると、プロセスはクラッシュする可能性がありますし、割り当てインストルメントでの記録は、その後すぐに停止します。割り当てインストルメントと iOS 6 またはそれ以前のデバイス上のプロセスにアタッチすると、プロセスは実行し続けますが、データは割り当てでは収集されません。
- Xcode で起動してからインストルメントに取り付けてください。代わりに、デバッグ・メモリ・ゲージの「インストルメントへのプロファイル」をクリックして、インストルメントに転送します。14828459
デバッギング
- iOS 5 デバイス上のアプリのデバッグセッションを終了すると、「接続を失った」というエラーメッセージが表示されることがあります。
- エラーポップアップを却下:それはアプリをデバッグまたは接続しているデバイスに問題がある事を示すものではありません。14871460
- 変数ビューで変数にコンテキストメニューを使用して Xcode UI から設定するウォッチポイントは、いくつかの変数、例えば'self' には対応していません。この場合には、期待したようには、ウォッチポイントはヒットしません。
- この問題を回避するには、Xcode でコンソールを使用し、コマンド 'watchpoint set variable < variable-name >' でを設定するウォッチポイントで lldb プロンプトでウォッチポイントを作成します。12658775
OpenGL のデバッグ
- OpenGL ES のフレームデバッガは、完全ではないテクスチャをテクスチャのテクスチャミップレベルは表示しません。14852587
- 同時に、一つ以上のデバイスの Xcode から OpenGL を使用して iOS アプリを起動すると動作しない場合があります。
- 一度に一つのデバイスで起動して下さい。14836639
ユニットテスト
- XCTest は iOS 6 の目的先をサポートしていません。Xcode は、iOS 6 の目的先で SCTest を使用する事は妨げられておらず、未定義の動作となってしまいます。14075515
ソース管理
- リポジトリがアカウント設定で追加された後の資格情報が変更された場合 Xcode は、リポジトリへの接続がトラブルになってしまいます。特定の場合には、Xcode は、バックグラウンドで接続しようとしている間にリポジトリに接続障害が生じたと表示されます。
- リポジトリ接続の問題が発生した場合は、削除し、更新された資格情報を持つリポジトリを再度追加して下さい。これは、リポジトリへのアクセスを復元します。13955597
- Xcode 5 は、サブバージョンの URL の一貫性のある使用を必要とします:常に(同じ)ユーザー名が含まれるか、指定されたリポジトリの URL の1つを含んでいないかのどちらかです。14825641
iOSシミュレータ
- iOS アプリが切り離されている場合は、Xcode と同じアプリを再起動すると、新しいアプリは起動されますが、シミュレーターでは黒い画面になります。
- シミュレータでアプリを終了させるか、二回目にそれを再起動します。14648784
- iOS 7.0 以前のリリースには iOS 7.0 からアプリケーションの最小配置ターゲットを切り替えた後、ビルドしアプリケーションを実行すると「iOS シミュレータは、アプリケーションをインストールできませんでした。」というメッセージと共に失敗することがあります。
- iOS のホーム画面に移動し、アプリケーションのアイコンをクリックし保持し、浮かんでいる「X」ボタンをタップしてアプリケーションを削除します。13917023
- StoreKit(アプリ内購入)はシミュレータ内では動作しません。13962338
- iPhone シミュレータ上でクイックルック・フレームワークを経由してビデオを再生すると、映像の表示が黒く表示されますが、オーディオは奇麗にプレイし続けます。13871109
- Mac ハードウェアキーボードは最初の起動時に iOS シミュレータでは動作しない場合があります。
- シミュレータを再起動します。13315258
アカウント管理
- Mac のアプリの配布時に配布署名アセットを作成するのを要求した場合 Xcode は時々クラッシュします。
- 会員センターを使用して配布署名アセットを作成します。13956010
- Xcode は時々会員センターから署名 ID を要求してもキーチェーンに対応する証明書をインストールしません。
- Xcode の環境設定のアカウントのセクションをご覧ください。
- 署名 ID に対応しているアカウント、又はチームを選択します。
- 「詳細の表示」をクリックします。
- 詳細シートの左下にある[更新]ボタンをクリックします。14197131
回避方法:
変更点
一般
- オーガナイザでのプロビジョニングプロファイルリストは、Xcode の環境設定の[アカウント]タブに位置するようになりました。それらを表示するには、該当する Apple ID のアカウントを選択し、[詳細の表示]をクリックします。13950944
- 64 ビット対応のアプリケーションは iOS 6 以降の最小配置ターゲットでのみサポートされています。14730546
- Xcode 5 は、LLVM-GCC コンパイラや GDB デバッガの使用をサポートしていません。14857582
ユニットテスト
- CPlusTest ユニットテスト・フレームワークは、Xcode 5 から削除されました。C++ コードのユニットテストを記述するには、新しい XCTest フレームワークを使用して Objective-C++(.mm)のテストケースのサブクラスを作成します。8273037
- SenTestingKit と OCUnit は旧式です。XCTest に移動する移行ツールを使用します。14857574
ソース管理
- CVS と RCS ソース管理ツールは、Xcode 5 から削除されています。11968433
ノート
書類セット
- Xcode 5 は、追加の書類セットをダウンロードすることをサポートしていません。
追加の書類セットは、~/Library/Developer/Shared/ Documentation/DocSets/ でそれらをインストールすることで、手動で追加することができます
一度インストールされると、書類セットは Xcode 5 に検出されロードされます。書類セットがインストールされる間 Xcode が動作している場合は、Xcode を終了して再起動して下さい。14930443
ガベージコレクションのサポート
- Xcode 5 は、OS X のガベージコレクションのサポートを終了しました。
ガベージコレクションは、OS X マウンテンライオン以降では旧式の技術です。Xcode 5 はビルド、デバッグ、またはガベージコレクションを使用して Mac のアプリをプロファイリングするのをサポートする Xcode 開発ツールの最後のリリースにする事を予定しています。GC を使用する全てのプロジェクトが Xcode の移行ツールを使用して ARC(自動参照カウント)に変換する事をお勧めします。ARC への移行の詳細については、ARC への移行の公開ノート から入手できます。14406894
継続的統合のサポート
- 継続的統合機能((ロ)ボット)は、OS X のメイベリックスの OS X Server を必要とします。Mac デベロッパ・プログラムのメンバーは、Mac デベロッパーセンターから OS X メイベリックスの最新の開発者向けプレビューをダウンロードすることができます。14949282
前:Xcode 6 公開ノート
次:Xcode 4 公開ノート