&tag(Xcode4);
*目次 [#ube66166]
#contents
*参考情報 [#j17184cb]
-[[./Xcode3との違い]]
-[[./UnitTest]]
-[[Objective-C]]
-[[Xcode4.3]]…Xcode4.3の変更点など
-[[Xcode4.4]]…Xcode4.4の変更点など
-[[Xcode4.6]]…Xcode4.6の変更点など
-[[iOSSDK/実機デバッグ手順]]
*操作 [#fb48af37]
**ショートカットキー [#j97e9b67]

-[[Xcode4 のショートカットをまとめてみた – まえがき と注意 | st.Prestage:http://st-prestage.jp/apple/xcode4/xcode4-shortcuts-navigater/]]
-[[Cocoa Samurai: Xcode 4 Keyboard Shortcuts now available!:http://cocoasamurai.blogspot.com/2011/03/xcode-4-keyboard-shortcuts-now.html]]…ショートカット一覧のPDFあり。
-[[ハイスピードXcodeコーディング – iphone_dev_jp東京勉強会 | DOTAPON Blog:http://www.dotapon.sakura.ne.jp/blog/?p=192]]

,''ナビゲーション'',==
,SHIFT+CMD+O,Open Quickly。ファイル名やメソッド名で開く。
,CTRL+6,Function menuにフォーカス。その後関数名タイプで検索できる(eclipseのCTRL-O的な)
,CTRL+CMD+↑/CTRL+CMD+↓,ソースファイルとヘッダーファイルを入れ替える。
,CTRL+CMD+→/CTRL+CMD+←,編集場所を進む・戻す。※1
,CMD+{/CMD+},タブの切り替え
,''編集'',==
,CMD+/,コメントアウト。
,CMD+l,ソースコード編集
,''デバッグ'',==
,CMD+R,ビルドして実行。
,CMD+.,ストップ
,^+CMD+Y,CONTINUE
,F6,Step Over
,F7,Step Into
,F8,Step Out


※1)SizeUpのSpaces Actionとバッティングしているので、SizeUpのこの部分のショートカットを無効にしないとだめ。
**ビューの表示方法 [#z86f876f]
***Interface Builder用のペインを表示 [#l7a25df7]
-[View]→[Utilities]→[Show Utilities]で表示できる。
***エディタで表示中のファイルをナビゲーションペインに表示する [#zf8988f8]
-[Navigate]→[Reveal in Project Navigator]で表示できる。もしくはCMD-SHIFT-J。
***起動時画面を再表示する [#f82668e7]
-[Window]→[Welcome to Xcode]でウィンドウを表示し、[Show this window..]に再度チェックを入れる。
-ちなみにこの設定を行っても、システム環境設定によっては前回のプロジェクトを開いてしまう。
-システム環境設定→一般→最近使った項目の数→アプリケーションを終了して再度開くときにウィンドウを復元のチェックを外す。
**その他の操作 [#ea171f23]

***debug/releaseビルドを切り替える [#jab18ff6]
-[[BeInteractive! [XCode4 メモ]:http://www.be-interactive.org/?itemid=556]]
-[[objective c - iPhone - how to change the build configuration to distribution - Stack Overflow:http://stackoverflow.com/questions/8804248/iphone-how-to-change-the-build-configuration-to-distribution]]が画像もあってわかりやすい。
-Runボタンの2個右隣のリストを長押しする。

***メモリリークを検出する [#kb7bf7f4]
-ツールバーのRunボタンを長押しして、Profilleを選べばInstrumentsの動的検出。Analyhzeを選べば静的検出が可能(エラーとおなじところに結果が表示される)。
***フレームワークの参照を追加する [#af51908d]
-メイン画面でTARGETを選択し、[Build Phases]を開く。
-[Link Binary With Libraries]を開くと左下に[+]ボタンがあるのでこのボタンを押して追加する。
***Navigatorペインの右側に表示される"M"とか"I"のアイコンって? [#xc5e7d95]
-[[Xcode 4 移行ガイド:リポジトリー、スナップショット、アーカイブ:http://sazameki.jp/translations/xcode4/IDEs/Conceptual/Xcode4TransitionGuide/SCM/SCM.html]]によると、プロジェクトをSCM(ソースコード管理システム)で管理している場合に表示されるアイコンらしい。
,M,ローカルで変更された
,U,リポジトリで変更された
,A,ローカルで追加された
,D,ローカルで削除された
,I,無視される



*設定 [#va8e613a]
**ソースファイルの名前・会社名を変更する [#k020ca02]
-[[Xcode4でファイル作成時の「名前」と「__MyCompanyName__」を変更する | UQ Times 開発の記録:http://uqtimes.blogspot.jp/2012/05/xcode4mycompanyname.html]]によると以下のXcode3の方法は使えない。
-"defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{FULLUSERNAME="XXX"; ORGANIZATIONNAME="YYY";}'"
-アドレスブックを使って変更しないといけないらしい。
-組織名・会社名はプロジェクト毎に設定可能?[[Xcode 4 : Change Company/Organization Name Per Project:http://mobiledevelopertips.com/xcode/xcode-4-change-companyorganization-name-per-project.html]]
** Distributionビルドの方法 [#c136ff51]
-[[App StoreへのiPhoneアプリの登録手順のまとめ(Xcode4環境) | Facebook:http://www.facebook.com/note.php?note_id=153450554720309]]
-[[Xcode4でiPhoneアプリをiTunes Connectに登録する方法 - えんたつの記録:http://blog.livedoor.jp/tattyamm/archives/2957285.html]]
-左側のNavigatorペインでプロジェクトのルートを選択、真ん中のペインで[PROJECT]→[プロジェクト名]を選択、右側のペインの[Configurators]セクションの左下にある[+]アイコンをクリック、Duplicate Release Configurationを実行し、[Distribution]と名前をつける。(…というのは必要なくReleaseでよくなった?)。
#ref(distribution.png)
-DistributionビルドではCode Signの設定をしておく。
-Runボタンの二個右を長押しし、Edit Schemeを実行。左のペインでArchiveを選択肢、Build ConfigurationでDistributionを選択。
-IOS Deviceを選択したおく(そうしないとArchiveがグレーアウト状態)。
-Product→Archiveし、Validate→Distributionの順に実行する。

※コード署名でエラーがでたとき ~
-PROJECTとTARGETでCode Signingがただしいか確認。
-Edit SchemeでArchiveがDistributionになっているか確認。
** Deployment Targetの設定 [#m2173242]
-
* Tips [#vd012f62]
**プロパティ宣言 [#a0de5825]
-[[XCode4というかObjective-Cのプロパティー宣言: cocoanpan:http://solaray2011.cocolog-nifty.com/blog/2011/04/xcode4objective.html]]にあるように暗黙のプロパティ宣言が導入された。


**旧バージョンをダウンロードする [#ed17c098]
-[[Downloads:https://developer.apple.com/downloads/index.action]]からダウンロードできる。開発ライセンスが必要。


**ファイルの作成場所を指定 [#fd172ce1]
-グループを作っておき、Sho File Inspectorを実行。IdentityでPathの右下のアイコンをクリックしてパスを指定する(Relative to Groupだと勝手に相対パスに変換してくれるみたい)。
-以後このグループ以下にファイルをAdd Fileする場合、指定パス以下に作成してくれるようになる。サードパーティライブラリを相対パスで取り込んでいる場合などに便利。

**ブックマークを使いたい [#xfa63fa7]
-Xcode4にはブックマークがないらしいので、無効化したブレークポイントを設定しておきブレークポイント一覧からジャンプすると便利。


*最終生成物にいれたくないものの管理 [#p9bee73c]
-例えばドキュメントなんかをプロジェクトにいれるとて最終生成物にコピーされたくないばあい、[Build Phases]の[Copy Bundle Resources]から削除すればよい。
*トラブルシューティング [#ff8cc991]
** iOSシミュレータはSDKを見つけられませんでした。 [#d3234c44]
-次のようなエラーが発生する場合、プロジェクトのビルド設定で[iPhone 3.2 Simulator]など過去のバージョンのSimulatorを起動しようとしていないか確認する。
#ref(simulator_error-1.png)

** missing Base SDKと表示される。 [#p84fc46b]
-Navigatorでルートを選択→真ん中のペインでPROJECT→プロジェクト名を選択→右側のペインでBuild Settingsタブを選択する。
-ArchitecturesのBase SDKを選択し、Latest iOSに変更する。

**日本語が表示されない [#qf937e88]
-仕様のようです(Version 4.0.2)。

**project.pbxprojのXCConfigurationList sectionが変更される。 [#r6af6f55]
-プロジェクトの設定の、Command-line builds use「XXXXXX」を変更すると変わるみたい。
-バージョン管理ツールにコミットするときはここをそろえておかないとだめかも。

**ファイルが急に表示されなくなった。 [#if7711ae]
-[[osx - Xcode 4 shows no files after loading project - Stack Overflow:http://stackoverflow.com/questions/5996966/xcode-4-shows-no-files-after-loading-project]]に書いてある方法で解決。
-XXXXX.xcodeproj packageの中にあるproject.xcworkspace'を削除。

**デバッグしようとするとダイアログが表示される [#e3e20d93]
-シミュレータが起動する前に、「Developer Toos Accessは、デバッグを続けるために…」というダイアログが表示されパスワードを入力しないと続行できない常況に。
-[[osx - Authorize a non-admin developer in Xcode / Mac OS - Stack Overflow:http://stackoverflow.com/questions/1837889/authorize-a-non-admin-developer-in-xcode-mac-os]]のベストアンサーは以下の通りだがこれは管理者権限がないユーザーでXcode動かしているときなので今回は違う。
 sudo dscl . append /Groups/_developer GroupMembership <username>
-正解は開発者モードを有効にする(Xcodeの初回起動時に開発者モードにしてなかったのかも)
 DevToolsSecurity -enable

**CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 5.1'と表示される。 [#p8d3d157]
-全然なぞ。Code signingの設定で前設定を一気に変更したらよい?

**Code Sign error: Provisioning profile 'XXX' can't be found [#s256718e]
-[[ブランク復帰エンジニアの開発メモ Code Sign error: Provisioning profile 'xxxx-xxxx' can't be found:http://ino1970.blog119.fc2.com/blog-entry-313.html]]にあるようにPROJECTの設定じゃなく(だけでなく?)TARGETの設定を変更しないといけない。


**タブの挙動が使いづらい [#ufd79097]
-Navigation Paneで選択したファイルの内容で、現在表示中のタブの内容が書き換わるイメージなので他のIDEとは挙動が違う。[[xcode4 - How can I make the tabs work normally on XCode 4? - Stack Overflow:http://stackoverflow.com/questions/5353220/how-can-i-make-the-tabs-work-normally-on-xcode-4]]

***解決1 [#q40301a6]
-そういうもんだと思ってあきらめるしかないかも。Assistant EditorにOPT+クリックで任意のファイルを表示しておいたほうが便利かもしれない。

***解決2 [#q57cf3f3]
-Preferences->General->Optional NavigationをUse Separate Tabに変更(ダブルクリックのほうもかえておく)。
-Navigationからファイルを開くときは常にOPT+CLICKか、ダブルクリックで開く。カレントタブ以外に同じファイルを開いているときはそれをアクティブにするなど一定の便利さがある。最初のタブで編集は常に行い、参照用をそれ以外にしておくとかきめておけばよいかも。
-SHIFT+CMD+Oで開くときもOPT+RETURNで開けばおなじことに。
**なんとなくデバッガの調子がおかしい変数の中身がみれないなど [#p8c4afe8]
-左上ボタンのEdit SchemeからLLDB→GDBにデバッガ変更してみる。

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS