XCodeを共有フォルダーでうまく再生し、複数の人が同時にiPhoneアプリで作業できるようにする方法はありますか?それとも、SubEthaEditやその他のリアルタイムコラボレーションツールのようなものに切り替える必要がありますか?
4 に答える
Xcodeは、ファイルシステムで非常にうまく機能しないことがわかっています。プロジェクトを管理する場合、フォルダをグループまたはフォルダ参照として追加する2つのオプションがあります。
グループを追加すると、フォルダはXcodeにミラーリングされますが、グループはファイルシステムと同期されません。つまり、グループ内で物を移動したり、グループを削除したり、FSに触れたり、反転したりすることはできません。 Xcodeはファイルを失います。
2番目のオプションであるフォルダ参照を追加するのはとても甘いように聞こえますが、完全にバグがあります。フォルダ参照が正しく更新されない可能性があり、フォルダ内で変更が検出されない可能性があります(リソースにImagesフォルダ参照を追加してコンテンツを更新すると、次のビルドでリソースが更新されないため、クリーンアップして再構築する必要があります)。
これが、Xcodeを使用しない(ここではvim + SConsを使用しており、非常に満足している)か、SCMを使用する必要がある理由です(SCMは他のツールと組み合わせることができますが、とにかくSCMを使用する必要があります)。
SCMに関しては、Mercurialをお勧めしますが、SVNやGitなどもたくさんありますので、少しグーグルで意見を述べてください。
SCMを使用する場合、これまでのところ最善のアプローチは、project.pbxprojファイル(.xcodeprojバンドル内)をチェックインすることです。ほとんどの場合、これは問題なくマージされます。手動でマージする必要がある場合もありますが、その場合、90%の場合、マージの両側を許可するだけです。
私の.gitignoreファイルは次のようになります。
# xcode noise
build/*
*.pbxuser
*.mode1v3
*.perspectivev3
*~
*.mode2v3
他のSCMシステムにも同様の無視する一連のディレクティブを使用できます。
フォルダ参照は画像には問題ありませんが(画像の内容を変更する場合はクリーンアップを実行する必要があることに注意してください)、ソースには適していません。
複数の人が共有フォルダで作業できるようにすることは災害のレシピであり、誰かがコメントを更新したかったために、朝のほとんどの時間編集していたファイルを初めて上書きしたときに後悔するでしょう。
SCMを入手して、全員に自分のコードを自分のプライベートフォルダーにチェックアウトしてもらいます。
また、ネットワークディスクではなくローカルディスクからビルドしているため、ビルドが高速化されたときにも満足できます。
リアルタイムコラボレーション、つまり2人以上のプログラマーが実際に同じファイルに同時に同じコードを書き込んでいる場合は、subethaeditなどのコラボレーションエディターを使用する必要があります。Xcodeのソースファイルの優先エディターとしてsubethaeditを設定できます。
このようにして、Xcodeプロジェクトをホストする1人のプログラマーがいて、subethaeditでソースファイルを開きます。その後、他のプログラマーはsubethaeditを介してファイルにログインします。次に、ホスティングプログラマーはローカルXcodeでコードをコンパイルします。
ただし、上記のRudedogのコメントで述べたように、複数の人が同じプロジェクトで異なるファイルで作業するようにしたい場合は、コード管理ツールを使用する必要があります。