ラベル Xcode の投稿を表示しています。 すべての投稿を表示
ラベル Xcode の投稿を表示しています。 すべての投稿を表示

2010年1月19日火曜日

Xcodeでターゲットを複製すると

複製先のターゲットのライブラリ検索パスにゴミが溜まっていきます。Xcode 3.2.1で確認。

こいつに出くわすのは、標準以外の場所にリンクしたいライブラリが置かれていて、そこへのパスが設定されているターゲットを複製する時です。
図の通りですが、コピー元のターゲット設定に入っているライブラリ検索パスが、ターゲットの複製操作によって作られたコピー先の設定では、パスの前後に不要な'\'(バックスラッシュ)が入っています。


これが入っているおかげで、コピー先のターゲットはビルド出来ません。(ライブラリが見つからないというエラーが出る。)解消するには不要なバックスラッシュをとってやります。
複数ターゲットを持たせて、それぞれでリンクするライブラリが同じなら、プロジェクト設定のライブラリ検索パスに最初から入れておくのがよいのでしょう。でもそれってIDE上で対象ライブラリを追加しているので二度手間感があって、IDE大好き派としてはイヤなんですけどね。

まあ、バグなのかな。あとでレポートしておきます。

2009年8月23日日曜日

Xcodeでファイルの更新状態表示が変だなと思ったら


XcodeプロジェクトをSCMにインポートした直後などに、図の様に何もしてない筈のファイルの更新状態にUがつくときがあります。


ターミナルで、コマンドラインからsvn statusなどを実行しても、(Subversionの場合)そちらではUはついてない、てな状態。

どうも、プロジェクトのルートとプロジェクトファイル(.xcodeproj)が入っているディレクトリが一致してない場合によく起きてる気がします。

そんなときは、おかしなUがついてるファイルをXcode上で選択し、[情報を見る]をやってみて下さい。Uが消えます。
これですっきり。


2009年7月5日日曜日

Xcodeのヘルプドキュメントがダウンロードできなくなったら。

XcodeはヘルプドキュメントをダウンロードするときにADCアカウントで認証かけるのですが、何らかの理由でADCのアカウント情報とローカルマシンのキーチェーン内に保存されているconnect.apple.comのインターネットパスワードが一致しなくなると、認証に失敗してヘルプをダウンロード出来なくなってしまいます。

そうなったら、キーチェーンアクセス内のインターネットパスワードをチェックし、connect.apple.comがあったらそいつの中身を確認してみましょう。ADCサイトと不一致が起きている筈なので、そうなってたらそのパスワードを削除し、再度ヘルプのダウンロードを試して見て下さい。connect.apple.comへのアカウント/パスワードを訊くダイアログが開き、正しく認証されればドキュメントのダウンロードが始まります。

Xcodeのヘルプドキュメント、重いし色々問題あってあまり好きじゃありません。

2008年7月22日火曜日

Xcodeの変なメニュー項目

XcodeのSCM対応は、バージョンを経る毎にどんどん良くなって来ていますが、未だに何が実行されるのかよくわからないメニュー項目があります。


左が日本語メニュー、右が英語メニューです。
[プロジェクト全体をコミット]は疑念の余地はありませんが、[更新]と[アップデート]の違いが一目見ただけではよくわかりません。IDEに付属のSCM機能は、よく理解しないで闇雲に操作した結果、リポジトリがエラい事になったりしがちなので、これまで使うのをためらって来ました。

それでも折角の機能なのでちゃんと使ってみよう、という事でドキュメントを読んでみたところ、[更新]と[アップデート]の違いは以下の様になっていました。

[更新] --- ローカルコピーのSCM状態を確認する。% svn status に相当。
[アップデート] --- ローカルコピーをリポジトリの最新状態にアップデートする。% svn update に相当。

一人で単一の環境で開発をしている場合は、[アップデート]は殆ど使わないでしょう。
一方、チーム開発の場合はまず[アップデート]を行ってローカルコピーを最新の状態にし、作業を開始する。その後時々[更新]を行ってリポジトリとローカルコピーの状態の違いを意識しながら適宜SCMの操作を行う、というスタイルになります。

なので、自分が訳すなら、
[プロジェクト全体を更新]→[プロジェクト全体の状態を確認]
[プロジェクト全体をアップデート]→変更無し

が、適当かなと思います。

2008年7月9日水曜日

Xcodeでプロジェクトフォルダ外のファイルもSCM対象にする


Xcodeは、デフォルトではプロジェクトファイルが入っているフォルダ以下に含まれるファイルのみがSCMの対象となっている。

例えば、

Work/Lib/include
Work/Lib/src
Work/MyProjectFolder/MyProject.xcodeproj

というフォルダ構成だと、MyProjectFolder以下は最初からXcodeのUI内でSCM操作が可能だが、Lib以下は出来ない。

これは、project rootが適切に設定されていないために起こる現象で、上のケースでは、project rootをWorkに設定すれば、それ以下のファイル全てがSCM対象となる。

project rootの設定は、Xcodeでプロジェクトファイルの[情報を見る]を行い、ルート:[選択]ボタンをクリックして行う。