Xcodeプロジェクトと関連フォルダの複製と名前変更[終了]


195

Xcodeプロジェクト全体を複製し、Xcodeがメンタルに移行することなく、プロジェクトに関連するファイルの名前を変更し、すべてのファイルをプロジェクトに手動で再インポートする必要がないようにしたいと思います。

回答:


368

この回答は、将来の参考のために、また同じ問題に直面している可能性のある他の人を助けるために、インターネット上のさまざまなStackOverflowの投稿とチュートリアルの集大成です。すべてのクレジットは、最後に他の回答に対して与えられます。

Xcodeプロジェクトの複製

  • Finderで、プロジェクトフォルダを新しいプロジェクトの目的の場所に複製します。この段階では、.xcodeprojファイル名または関連するフォルダの名前を変更しないでください。

  • Xcodeで、プロジェクトの名前を変更します。ナビゲーターペイン(左側のペイン)からプロジェクトを選択します。ユーティリティペイン(右側のペイン)でプロジェクトの名前を変更し、Xcodeが提案する変更を受け入れます。

  • Xcodeで、「スキームの管理」でスキームの名前を変更し、所有している可能性のあるターゲットの名前も変更します。

  • 最後に現在のPRODUCT_NAMEが含まれているデフォルトのバンドルIDを使用していない場合(したがって自動的に更新されます)、バンドルIDを、複製したプロジェクトで使用する新しいIDに変更します。

ソースフォルダの名前を変更する

したがって、上記の手順を実行した後、複製および名前変更されたXcodeプロジェクトが正常にビルドおよびコンパイルされるはずですが、ソースコードフォルダーには元のプロジェクトと同じ名前が付けられます。これはコンパイラの問題を引き起こしませんが、SCMなどでナビゲートするための最も明確なファイル構造ではありません。すべてのファイルリンクを壊さずにこのフォルダの名前を変更するには、次の手順に従います。

  • Finderで、ソースフォルダの名前を変更します。Xcodeは変更を自動的に検出しないため、これはプロジェクトを壊します。すべてのxcodeファイルリストは、実際のファイルとのリンクを失うため、すべて赤になります。

  • Xcodeで、名前を変更した仮想フォルダーをクリックします(これは、実際の.xcodeprojectのすぐ下の上部にある可能性があります)Finderでの名前と一致するように名前を変更します。これは何も修正せず、厳密には必要な手順ですが、ファイル名を一致させると便利です。

  • Xcodeで、ナビゲーションペインで名前を変更したフォルダーを選択します。次に、[ユーティリティ]ペイン(右端)で、[場所]ドロップダウンメニューのすぐ下にある、濃い灰色のフォルダーのようなアイコンをクリックします。ここから、ファインダーで名前を変更したフォルダーに移動し、[選択]をクリックします。これにより、すべてのファイルが自動的に再関連付けされ、Xcodeナビゲーションペイン内で赤く表示されなくなります。

クリックするアイコン

  • プロジェクト/ターゲットのビルド設定で、古いフォルダー名を検索し、見つかったオカレンスを手動で名前変更します。通常、prefix.pch用とinfo.plist用がありますが、それ以上ある場合もあります。

  • サードパーティのライブラリ(Testflight / Hockeyapp / etc)を使用している場合は、「ライブラリ検索パス」を検索して、ここでも古いファイル名の名前をすべて変更する必要があります。

  • プロジェクトに含まれている可能性のある単体テストのソースコードフォルダーに対してこのプロセスを繰り返します。プロセスは同じです。

これにより、手動でxcodeファイルを編集しなくても、xcodeプロジェクトとすべての関連ファイルを複製して名前を変更でき、混乱を招くおそれがあります。

クレジット

多くの感謝をに与えられているニック・ロックウッド、とポーリーGlottこの問題に別の答えを提供するため。


3
上記に従って、ホールプロジェクトで「古い名前」を検索し、変更が必要なもの(プレフィックスヘッダー)を見つけたところ、「新しい名前」で別の場所で問題なくコンパイルされました。素晴らしいチュートリアル-ちょうど私が必要としたもの。(Xcode 5.0.1 / iOS 7.0でテスト済み)
Mac

これは私をそこまでずっと連れて行ったようには見えませんでした(ここではXcode 5.0.2で、4.6.3から5.0.0に移行されたプロジェクトを使用しています)。*.xcodeproj/project.pbxprojファイル内には、元のフォルダーパスを含む多くのものがありました。特に、元のフォルダーでinfo.plistを探し続けたため、ビルドは失敗していました。
Steven Lu

2
好奇心として、これはこれを行う古い学校のようなものです... stackoverflow.com/questions/10006482/…(Daniel's answer)
Fattie

1
Xcode 7.1.1が最初のハードルでクラッシュします-プロジェクトの名前を変更します。調査しますが、他の誰かがこれを発見しましたか?
HughHughTeotl

5
プロジェクトにCocoapods統合がある場合の処理​​方法がありません。私もそれを処理するのに役立つリンクを見つけました:h4ckish.com/2015/01/22/renaming-your-cocoapods-ios-project
KK

30

でプロジェクトの名前を変更するときにいつも苦労してきたので、私はこれを投稿しています XCodeます。

プロジェクトの名前を変更するのは簡単ですが、ソースフォルダーの名前は変更されません。以下は、以下のリンクのおかげで、Xcode 4および5でうまく機能する、私がやったことのステップバイステップです。

REFリンク:
プロジェクトの名前を変更します。
ソースフォルダとその他のファイルの名前を変更します。

1-プロジェクトをバックアップします。

gitを使用している場合は、変更をコミットし、プロジェクトフォルダー全体のコピーを作成し、変更を加える前にTime Machineでバックアップします(この手順は必須ではありませんが、強くお勧めします)。

2-プロジェクトを開きます。

3-ゆっくりとダブルクリックするか、プロジェクト名(青い上部のアイコン)でEnterキーを押し、好きな名前に変更します。

注意:プロジェクトの名前を変更してEnterキーを押すと、プロジェクト名に関連するすべてのエントリが自動的に変更され、必要に応じてそれらの一部を選択解除できるようになります。それらのすべてを選択し、[OK]をクリックします。

4-スキームの名前を変更する

a)停止ボタンのすぐ横にあるメニューをクリックし、「スキームの管理」を選択します。

b)古い名前スキームをシングルスロークリックするかEnterキーを押して、好きな名前に変更します。

c)[OK]をクリックします。

5-ビルドして実行し、機能することを確認します。

注:この時点で、プロジェクトの作成時に作成されたクラスのコメントとソースフォルダーを除いて、すべての重要なプロジェクトファイルの名前を変更する必要があります。次に、ファイルシステムのフォルダーの名前を変更します。

6-プロジェクトを閉じます。

7-メインおよびソースフォルダの名前を変更します。

8-プロジェクトバンドル.xcodeprojファイルを右クリックし、コンテキストメニューから[パッケージの内容を表示] を選択します。任意のテキストエディタで.pbxprojファイルを開きます。

9-検索して、元のフォルダー名をすべて新しいフォルダー名に置き換えます。

10-ファイルを保存します。

11- XCodeプロジェクトを開き、テストします。

12-完了。

編集10/11/19:

Xcodeにプロジェクトの名前を変更するツールがあります。コメントするのに十分なほど試していません。 https://github.com/appculture/xcode-project-renamer


2
問題は、コピーしたプロジェクトを複製して名前を変更することでした。この回答は、既存のプロジェクトの名前を変更するためのものです。
martinjbaker 14

1
これは、私にとって、最も簡単なアプローチです。元のプロジェクトフォルダー、たとえばMyProjectを再帰的に "MyNewProject"にコピーするだけです。次に、MyNewProjectを開き、fs_tigreの指示に従います。Android StudioもXcodeも「File-> Clone Project」オプションを提供していないので、とても便利です。多分誰かのための素晴らしいプラグインプロジェクト(nshipster.com/xcode-plugins)?
Blisterpeanuts 2016

私のために働いた唯一の方法-XCode 8.2
GreenAsJade 2017年

2
ステップ10.1-ブリッジングヘッダーやエンタイトルメントファイルがある場合は、それらの名前を変更して、新しい名前を反映させます。Cocoapodsを使用している場合は、podファイルの名前を編集します。
デヴィッド・ラリ

6

XCode 7以降、これははるかに簡単になりました。

Appleはそのプロセスを次のサイトで文書化しています:https : //developer.apple.com/library/ios/recipes/xcode_help-project_editor/RenamingaProject/RenamingaProject.html

更新:XCode 8リンク:http ://help.apple.com/xcode/mac/8.0/#/dev3db3afe4f


2
これはアプリの内部の名前を変更するためにのみ機能しますが、外部ではアプリのフォルダーは変更されません
smac89


2

iOSプロジェクトの名前変更した後、このスクリプトを使用しています。ディレクトリ名を変更し、名前を同期させるのに役立ちます。

http://github.com/ytbryan/rename

注:スキームの名前を手動で変更する必要があります。


1

「Instant OpenCV for iOS」のサンプルコードで、フォルダーから別のフォルダーにプロジェクトをコピーするbashスクリプトを見つけました。
少し調査を行ったところ、スクリプトの元の作成者と思われるブログ投稿が見つかりました。http : //mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.htmlスクリプトをダウンロードできます。私はそれを試して、このようにターミナルから実行しました

    sh renameXcodeProject.sh <name-of-existing-folder> <name-of-folder-to-create>   

正常に動作します。
追加情報は、テキストエディタでファイルを開くと見つかります。それが役に立てば幸い


0

Xcode 6+を使用していますが、次のようにしています。

  • プロジェクトフォルダ内のすべてのファイルを新しいフォルダに(新しい名前で)コピーします。
  • 開いた *.xcodeproj or *.xcworkspace
  • プロジェクトの名前を変更します。
  • スキーマをクリックし、現在のスキーマを削除して、新しいスキーマを追加します。

これで完了ですが、ウィンドウXcodeの名前は*.xcodeproj or *.xcworkspaceまだ<old-name>です。それから私はします:

  • pop install
  • 開いた <new name>.xcworkspace

0

もう1つ試すこと!

すべてのファイルをコピーし、プロジェクトを開いて名前変更すると、テストターゲットを除いてすべてが新しいプロジェクト名に変更されました。「myOldProjectname.app」というファイルが見つからないというリンカーエラーが発生しました。ここでそれを修正したものです:

  1. プロジェクト設定をクリックして、テストターゲットを選択します ここに画像の説明を入力してください

  2. ビルド設定をクリックして、「test host」を検索します ここに画像の説明を入力してください

  3. これら2つのファイルパスを確認します。これらの2つのパスがまだ古いプロジェクト名を指している可能性があります。 ここに画像の説明を入力してください

お役に立てば幸いです。


0

プロジェクトをコピーした後でストーリーボードがクラッシュする問題を抱えている他の人は、Identity Inspectorの下のMain.storyboardにアクセスしてください。

次に、現在のモジュールが名前が変更された正しいモジュールであり、古いモジュールではないことを確認します。


0

名前を変更するために単純なBASHスクリプトを使用しています。

使用法: ./rename.sh oldName newName

#!/bin/sh

OLDNAME=$1
NEWNAME=$2

export LC_CTYPE=C 
export LANG=C
find . -type f ! -path ".*/.*" -exec sed -i '' -e "s/${OLDNAME}/${NEWNAME}/g" {} +

mv "${OLDNAME}.xcodeproj" "${NEWNAME}.xcodeproj"
mv "${OLDNAME}" "${NEWNAME}"

ノート:

  1. このスクリプトは.git、などのすべてのファイルを無視します.DS_Store
  2. 古い名前/新しい名前にスペースが含まれている場合は機能しません
  3. ポッドを使用している場合は動作しない可能性があります(テストされていません)
  4. スキーム名は変更されません(とにかくプロジェクトは正常に実行およびコンパイルされます)
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.