【Xcode/Git】.xcodeprojファイルのコンフリクト解消方法

この記事からわかること

  • Xcode.xcodeprojファイルコンフリクトした際に解消方法
  • The file couldn’t be opened.」の原因
  • SourceTreeを使用した場合

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

.xcodeprojファイルのコンフリクトを起こす原因

.xcodeprojファイル(プロジェクトファイル)がコンフリクトを起こしてしまうのはファイルを追加や操作を行った際に発生ことが多いです。プロジェクトファイル内ではXcodeで管理対象のファイルが記述されており、追加や削除、移動、名前変更などを行うとプロジェクトファイル内も自動で書き換えられます。

プロジェクトファイルでコンフリクトが発生すると「The file couldn’t be opened.」というエラーが発生してプロジェクトファイル自体が開けなくなり、アプリをビルドすることすらできなくなってしまいます。

【Xcode/Git】.xcodeprojファイルのコンフリクト解消方法

コンフリクトの発生を再現

以下の手順で操作すれば.xcodeprojファイルのコンフリクトが再現できます。

  1. mainブランチからブランチAを切る
  2. Aファイルを追加、コミット
  3. mainブランチからブランチBを切る
  4. Bファイルを追加、コミット
  5. mainブランチにブランチAをマージ
  6. mainブランチにブランチBをマージ (コンフリクト)

手動で解消する

プロジェクトファイルがコンフリクトを起こした際はVScodeなど別のエディタからファイルを開き、手動で修正することで解消することも可能です。解消方法はコンフリクトのマークを全て消していくだけです。


<<<<<<< HEAD ← 削除
		12AF31FF2AC2D48400A6A05F /* TestAA.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12AF31FE2AC2D48400A6A05F /* TestAA.swift */; };
======= ← 削除
		12AF32012AC2D49900A6A05F /* TestBB.swift in Sources */ = {isa = PBXBuildFile; fileRef = 12AF32002AC2D49900A6A05F /* TestBB.swift */; };
>>>>>>> TestB ← 削除

ですがこの方法ではうまくいかない場合があったので別の方法を探していたところXcodeから簡単に解消できました。

Xcodeから解消する

Xcodeからマージを試みていた場合は以下のようにすることで解消できた

  1. コンフリクト発生
  2. Choose Left Then Right
  3. 解消
【Xcode/Git】.xcodeprojファイルのコンフリクト解消方法

Xcodeでマージを試みた場合にコンフリクトが起きると上記のような画面になり、該当ファイルのコンフリクトが起きている箇所を分かりやすく示してくれます。それぞれ、どちらか片方のみを残すか両方残すか選択できるので「Choose Left Then Right(左を先に生かして右を下に追記する)」を選択することで解消できました。

SourceTreeから解消する

SourceTreeを利用している場合は以下の手順で解消できました。

  1. コンフリクト発生
  2. Mainブランチに起きているプロジェクトファイルの変更を一度破棄する
  3. ファインダーで該当ファイルを探しドラッグ&ドロップでXcodeプロジェクトに入れ込む
  4. コミットしてマージ
  5. 解消

1.コンフリクト発生

SourceTreeでマージを試みた際にマージが発生すると以下のようになります。

【Xcode/Git】.xcodeprojファイルのコンフリクト解消方法

「ファイルステータス」では「!」マークのものがコンフリクトを起こしている状態になります。

【Xcode/Git】.xcodeprojファイルのコンフリクト解消方法

2.Mainブランチに起きているプロジェクトファイルの変更を一度破棄する

解消するためにはまずプロジェクトファイルの変更を破棄します。これで該当ファイルは削除されませんが、Xcodeプロジェクトへの追加はなかったことになります。

【Xcode/Git】.xcodeprojファイルのコンフリクト解消方法

3.ファインダーでファイルを探しドラッグ&ドロップでXcodeプロジェクトに入れ込む

該当ファイルは消えていないのでファインダーで該当ファイルを探しドラッグ&ドロップでXcodeプロジェクトに入れ込みます。

【Xcode/Git】.xcodeprojファイルのコンフリクト解消方法

4.コミットしてマージ

これで変更は解消されたのでコミット(マージを完了)させればOKです。

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index