web-dev-qa-db-ja.com

Xcodeプロジェクトと関連フォルダーを複製して名前を変更する

Xcodeを気にせずに、また手動ですべてのファイルをプロジェクトにインポートしなくても、Xcodeプロジェクト全体を複製し、プロジェクトと関連ファイルの名前を変更できるようにしたいです。

193
Sammio2

この答えは私の将来の参考のために、そして同じ問題に直面しているかもしれない他の誰かを助けるためにインターネットのまわりの他の様々なStackOverflow投稿とチュートリアルの集大成です。最後に他の答えに対してすべてのクレジットが与えられます。

Xcodeプロジェクトを複製する

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

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

  • Xcodeでは、「Manage Schemes」でスキームの名前を変更し、自分が持っている可能性のあるすべてのターゲットの名前も変更します。

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

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

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

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

  • Xcodeで、名前を変更した仮想フォルダをクリックします(実際の.xcodeprojectの真上にあるはずです)。これをFinderの名前と一致するように名前を変更してください。必要な手順ですが、ファイル名を一致させるのがいいです。

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

Icon to click

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

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

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

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

クレジット

この問題への個別の回答を提供してくれてありがとう Nick LockwoodPauly Glott に感謝します。

360
Sammio2

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

プロジェクト名の変更は簡単で簡単ですが、ソースフォルダの名前は変更されません。これが私がしたことのステップバイステップです、それは以下のリンクのおかげでXcode 4と5でとてもうまくいきました。

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

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

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

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

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

注:プロジェクトの名前を変更してEnterキーを押すと、プロジェクト名に関連したすべてのエントリを自動的に変更することが提案されます。必要に応じて選択してください。それらすべてを選択して[OK]をクリックします。

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

a)停止ボタンの横にあるメニューをクリックして、「Manage Schemes」を選択します。

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

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

5 - 確実に動作するようにビルドして実行します。

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

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

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

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

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

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

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

12-完了

25
fs_tigre

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

5
PBICS

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

http://github.com/ytbryan/rename

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

2
ytbryan

本のコード例では "iOS用のインスタントOpenCV" プロジェクトをフォルダーから別のフォルダーにコピーするbashスクリプトを見つけました。
少し調べてみると、スクリプトの元の著者と思われるブログ投稿が見つかりました: http://mohrt.blogspot.it/2009/01/renaming-xcode- project-from-command.htmlscript をダウンロードできます。私はそれを試して、このような端末から実行しました

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

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

1

もう1つ試してみてください!

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

  1. プロジェクト設定をクリックして、テスト対象を選択します enter image description here

  2. ビルド設定をクリックし、「テストホスト」を検索します enter image description here

  3. これらの2つのファイルパスを確認します。おそらく、これら2つのパスが古いプロジェクト名を指している可能性があります。 enter image description here

お役に立てば幸いです!

0
erparker

名前の変更にシンプルな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. スキーム名は変更されません(とにかくプロジェクトは正常に実行され、コンパイルされます)
0
Anton Malmygin

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

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

0
Wraithseeker

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

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

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

  • pop install
  • <new name>.xcworkspaceを開きます
0
SLyHuy