【xcode】プロジェクト名を変更するのが思ったより面倒だったので手順まとめておく
はじめに
アプリ名とかを仮のまま開発を進めて途中でアプリ名が決定。
プロジェクト名などが旧名称のままだと気持ち悪いのでプロジェクト名を変更したかったのでその時の手順をまとめておきます。
今回は以下の名前をで変更します。
変更前:SampleOld
変更後:SampleNew
とりあえず動くようにする
プロジェクト名を変更
xcodeの[Identity and Type]から「SampleOld」→「SampleNew」に変更。
赤枠の箇所をすべて修正すればたぶんOK
Cocoapods修正
Podfileにプロジェクト名の記述があるので修正
Podfile
target 'SampleNew' do # Comment the next line if you're not using Swift and don't want to use dynamic frameworks use_frameworks! # Pods for SampleNew pod 'AFNetworking' ・・・ target 'SampleNewTests' do inherit! :search_paths # Pods for testing end target 'SampleNewUITests' do inherit! :search_paths # Pods for testing end end
インストールし直す
$ pod install
Bridging-Header.h修正
まずはリネーム
SampleOld-Bridging-Header.h →Sample New-Bridging-Header.h
設定も修正
ここまででビルドとかは問題なくできるようになった。
しかしプロジェクトの中を見るとわかるが実際のフォルダ名はSampleOldのままで気持ち悪い。
旧プロジェクト名を完全になくす
プロジェクトディレクトリ直下に
SampleOld、SampleOldTests、SampleOldUITestsというフォルダが残っているのでそれぞれSampleOld => SampleNewにリネーム
テキストファイルの文字列を置換
find . -path "./.git" -prune -o -type f -print | perl -nle 'print if -f && -T' | xargs sed -i "" "s/SampleOld/SampleNew/g"
バイナリファイルの文字列を置換
バイナリファイルの置換とかやり方わからなかたったので、数も多くないのでviで直接編集した。
検索
$ find . -path "./.git" -prune -o -type f -print | xargs grep "SampleOld" 2> /dev/null Binary file ./SampleOld.xcworkspace/xcuserdata/xxx.xcuserdatad/UserInterfaceState.xcuserstate matches ・・・
ファイル編集
$ vi -b ./SampleOld.xcworkspace/xcuserdata/xxx.xcuserdatad/UserInterfaceState.xcuserstate ・・・ :%s/SampleOld/SampleNew/g # 全置換して :wq! # 保存
missing from working copy
git、svnを使ってる場合、ビルドすると上記のワーニングが出る。
コミットすると消えるらしい
さいごに
とりあえずここまでやったらちゃんと動いてる感じ。
今後何も起きないことを祈ります。以上です
以下、参考にさせて頂きました
findで特定のディレクトリを検索対象外(除外)にする - hogehoge foobar Blog Style5
findでテキストファイルのみ抽出 - Qiita