Xcodeでプロジェクト名を変更する方法 (Xcode8.0)

こんにちは、毒きのこです。

Xcode(8.0で実施)で既に作成済みのプロジェクト名を変えたいって思った事ないです?MacのFinder上でリネームしながらポンポン変更出来ればいいんですが、やはり一筋縄には行かず…。

ということで、ここはCocoaPodsを使ったよくある一般的なiOSアプリのプロジェクト構成を例に実演してみたいと思います。

※例のため、僕の自作ライブラリLSDialogViewControllerを使ってます。
あと、CoreDataを使ってた場合はもう少し面倒ですが今回は割愛(Realm使おうYo)

Xcodeからプロジェクト名を変更

Xcodeを起動し、画面左側のペインからプロジェクト名を選択。すると右側ペインにその詳細が表示されるので「Identity and Type」Nameを好きな名前に変更します。(ここではProjectA -> ProjectBに)

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-9-35-15

変更してreturnキーを押下すると、

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-9-39-59

こんな内容が出たかと思います。Xcodeが関連するディレクトリ等を変更した名前で更新かけてくれたんですね。左側が変更前、右側が変更後、ここは自動で拾ってくれるので素直に何もいじらず右下の「Rename」をクリック。

注意事項のダイアログが出るかと思います。こちらは変更するともう戻せませんよ?的なことが書かれてますが、気にせずGO。

ここで一旦Xcode左側ペインのProjectAがProjectBに変わったかと思いますが、まだ少し作業が残ってます。

Schemeの変更

次にビルドスキームの変更が必要なので、画面上部のメニュー「Project」-> 「Scheme」->「Manage Schemes」を選択して行ってください。

小さいウィンドウが表示されるので、左下の「+」をクリック。Target部分から自分が変更したものを選択(ここではProjectB)、Nameはその名前を。(多分自動でTargetのに合わせられます)

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-9-50-36

上図のようにチェックがついたProjectAとProjectBがありますね。今回は変更したProjectBだけをスキームに追加したいので、古いProjectAの方は消します。

ProjectAだけにチェックをつけ、左下の「-」をクリックしてください。確認ダイアログが出るので問題なければ削除。最後にまたProjectBにチェックをつけてウィンドウを閉じましょう。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-9-54-34

ちゃんとアクティブスキーマの部分がProjectBになってますね。これでXcode上でcommand + B でビルドしてみましょう。無事成功するかと思います。

ただ、今回の例はCocoaPodsも使用していたのでまだ少し作業が残っています。

Podsの変更

CocoaPodsの情報が前のProjectAのままなので、ここも新しいProjectBのものにしてやらないといけません。

ターミナルを起動し、ProjectBのある場所まで移動しPodsフォルダがあるのでそれを削除しましょう。下図のような流れですね。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-10-22-08

Xcodeの.xcodeprojがあるフォルダまで行って、rm -rf Pods ですね。

次にPodfileのプロジェクト名もProjectAのままなのでそちらも変えておきます。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-10-28-13

VimでPodfileを開いてtargetをProjectAだったのをProjectBに。
これらが済んだらXcodeを一度閉じて、ターミナル上でpod installと叩いてxcworkspaceを再度作成しましょう。

pod installが成功すればProjectB.xcworkspaceが作られるので、古いProjectA.xcworkspaceを削除しちゃいましょう。

ここでXcodeを起動し再びビルドすると、

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-10-51-12

iOS開発そんな慣れてない人がみると吐き気がするようなエラーが出ますね。これは一体なんなんでしょう。

まぁ見るべき箇所は実は一箇所で、もともと作成していた「ProjectAのためのPods周りが見つからないよ」と言われてるだけなので、下図のように参照出来てないPods_ProjectA.frameworkを取っ払ってやります。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-10-52-09

左側ペインからプロジェクトを選び、TARGET -> General -> Linked Frameworks and Libraries からPods_ProjectA.frameworkを選択、すぐ下の「-」をクリックし削除しましょう。

削除出来たらcommand + B で再びビルドしてみましょう、おそらく成功するかと思います。

これで無事既存プロジェクトを違う名前に変えて、実行まで出来るようになりました。

古い名前のフォルダを新いものに変更

ただ、ここまでだとまだXcode上でProjectA、ProjectATest、ProjectAUITestsなど若干前の名前がフォルダに残っちゃってますね。

どうしても気になるなら、Finderで直接ProjectA等古い名前を変えていきます。Xcodeを開きそちら側でも該当フォルダの名前を変えていきましょう。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-11-20-32

左側ペイン、AppDelegate.swiftやらViewController.swiftのアイコンが半透明になっちゃいましたねw 要はフォルダ名を変えたことで参照出来なくなっちゃってるんで、上図右側ペイン、FUll Pathという項目の横にフォルダのアイコンがあるので、それをクリックし直接ファイルがある場所を再度指定し、その参照先をXcodeに教えてやります。

全部参照しなおしたら再びビルドしてみましょう。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-11-21-52

色々Missing fileの警告が出たり、新たにエラーも出ましたね。

今度はinfo.plistがない、と。これもよく見ると昔のファイル名でXcodeが参照しようとしてるため、こちらも新しい参照先を指定してやります。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-11-22-23

プロジェクトを選択しTARGETの3つ、全てでinfo.plist Fileの参照先を新しいものに変えます。ここではProjectA/info.plistになっちゃってますね。これをダブルクリックで編集し、ProjectB/info.plistに変えましょう。

全て変えたら一度Xcodeを落として再度立ち上げます(警告などは一度再起動しないと消えないこともあるので)

再度立ち上げたらcommand + Bでビルド。

%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-05-11-30-40

なんか薄くなってますが、Build Succeededってなってますね!

ProjectAで作成していたプロジェクトを、無事Cocoa Pods関連ファイルも含め全て新規のProjectBでリネームしなおすことが出来ました。

ふぃー、プロジェクト名も気軽にポンポンかえられないですね、こんな面倒だと。

今回はこれでおしまい。
では今週残りも良い開発ライフを〜

スポンサーリンク
336 x 280 レクタングル(大)
336 x 280 レクタングル(大)