ทำซ้ำและเปลี่ยนชื่อโครงการ Xcode & โฟลเดอร์ที่เกี่ยวข้อง [ปิด]


195

ฉันต้องการที่จะสามารถทำซ้ำทั้งโครงการ Xcode เปลี่ยนชื่อโครงการและไฟล์ที่เกี่ยวข้องโดยไม่ต้อง Xcode ไปทางจิตและไม่ต้องนำเข้าไฟล์ทั้งหมดไปยังโครงการด้วยตนเอง

คำตอบ:


368

คำตอบนี้เป็นสุดยอดของการโพสต์ StackOverflow และแบบฝึกหัดอื่น ๆ อีกมากมายทั่วอินเทอร์เน็ตที่นำมารวมไว้ในที่เดียวเพื่อการอ้างอิงในอนาคตของฉันและเพื่อช่วยเหลือผู้อื่นที่อาจประสบปัญหาเดียวกัน เครดิตทั้งหมดจะได้รับสำหรับคำตอบอื่น ๆ ในตอนท้าย

การทำซ้ำโครงการ Xcode

  • ใน Finder ให้ทำซ้ำโฟลเดอร์โครงการไปยังตำแหน่งที่ต้องการของโครงการใหม่ของคุณ ห้ามเปลี่ยนชื่อชื่อไฟล์. xcodeproj หรือโฟลเดอร์อื่น ๆ ที่เกี่ยวข้องในขั้นตอนนี้

  • ใน Xcode เปลี่ยนชื่อโครงการ เลือกโครงการของคุณจากบานหน้าต่างนำทาง (บานหน้าต่างด้านซ้าย) ในบานหน้าต่างโปรแกรมอรรถประโยชน์ (บานหน้าต่างด้านขวา) เปลี่ยนชื่อโครงการของคุณยอมรับการเปลี่ยนแปลงที่เสนอ Xcode

  • ใน Xcode เปลี่ยนชื่อชุดรูปแบบใน "จัดการแบบแผน" เปลี่ยนชื่อเป้าหมายใด ๆ ที่คุณมี

  • หากคุณไม่ได้ใช้ตัวระบุ Bundle เริ่มต้นซึ่งมี PRODUCT_NAME ปัจจุบันอยู่ที่ท้าย (ดังนั้นจะอัปเดตโดยอัตโนมัติ) จากนั้นเปลี่ยน Bundle Identifier ของคุณเป็นตัวใหม่ที่คุณจะใช้สำหรับโครงการที่ซ้ำกันของคุณ

การเปลี่ยนชื่อโฟลเดอร์ต้นทาง

ดังนั้นหลังจากทำตามขั้นตอนข้างต้นคุณควรมีโครงการ Xcode ที่ทำซ้ำและเปลี่ยนชื่อซึ่งควรสร้างและคอมไพล์ได้สำเร็จอย่างไรก็ตามโฟลเดอร์ซอร์สโค้ดของคุณจะยังคงตั้งชื่อเหมือนเดิมในโปรเจ็กต์ดั้งเดิม สิ่งนี้ไม่ได้ทำให้เกิดปัญหาเกี่ยวกับคอมไพเลอร์ แต่มันไม่ใช่โครงสร้างไฟล์ที่ชัดเจนที่สุดสำหรับผู้ใช้ในการนำทางใน SCM ฯลฯ หากต้องการเปลี่ยนชื่อโฟลเดอร์นี้โดยไม่ทำให้ลิงก์ไฟล์ของคุณทั้งหมดพังให้ทำตามขั้นตอนเหล่านี้:

  • ใน Finder ให้เปลี่ยนชื่อโฟลเดอร์ต้นทาง สิ่งนี้จะทำลายโครงการของคุณเนื่องจาก Xcode จะไม่ตรวจจับการเปลี่ยนแปลงโดยอัตโนมัติ รายชื่อไฟล์ xcode ทั้งหมดของคุณจะสูญเสียลิงก์ไปกับไฟล์จริงดังนั้นทุกอย่างจะเปลี่ยนเป็นสีแดง

  • ใน Xcode คลิกที่โฟลเดอร์เสมือนที่คุณเปลี่ยนชื่อ (ซึ่งน่าจะอยู่ที่ด้านบนสุดภายใต้. xcodeproject ที่แท้จริงของคุณ) เปลี่ยนชื่อสิ่งนี้ให้ตรงกับชื่อใน Finder ซึ่งจะไม่แก้ไขอะไรเลยและไม่ใช่ ขั้นตอนที่จำเป็น แต่เป็นเรื่องดีที่มีชื่อไฟล์ตรงกัน

  • ใน Xcode เลือกโฟลเดอร์ที่คุณเพิ่งเปลี่ยนชื่อในบานหน้าต่างนำทาง จากนั้นในบานหน้าต่างยูทิลิตี้ (ขวาสุด) คลิกไอคอนที่มีลักษณะเหมือนโฟลเดอร์สีเทาเข้มเพียงใต้เมนูแบบเลื่อนลง 'ตำแหน่ง' จากที่นี่นำทางไปยังโฟลเดอร์ที่ถูกเปลี่ยนชื่อของคุณใน Finder และคลิก 'เลือก' สิ่งนี้จะเชื่อมโยงไฟล์ทั้งหมดของคุณใหม่โดยอัตโนมัติและจะไม่ปรากฏเป็นสีแดงในบานหน้าต่างนำทาง Xcode อีกต่อไป

ไอคอนเพื่อคลิก

  • ในการตั้งค่าการสร้างโครงการ / เป้าหมายของคุณให้ค้นหาชื่อโฟลเดอร์เก่าและเปลี่ยนชื่อเหตุการณ์ที่คุณพบด้วยตนเอง โดยปกติจะมีหนึ่งรายการสำหรับ prefix.pch และอีกอันสำหรับ info.plist แต่อาจมีมากกว่านั้น

  • หากคุณใช้ห้องสมุดบุคคลที่สาม (Testflight / Hockeyapp / ฯลฯ ) คุณจะต้องค้นหา 'เส้นทางการค้นหาห้องสมุด' และเปลี่ยนชื่อชื่อไฟล์เก่าที่นี่ด้วย

  • ทำซ้ำกระบวนการนี้สำหรับโฟลเดอร์ซอร์สโค้ดทดสอบหน่วยใด ๆ ที่โครงการของคุณอาจมีกระบวนการเหมือนกัน

สิ่งนี้จะช่วยให้คุณสามารถทำซ้ำและเปลี่ยนชื่อโครงการ xcode และไฟล์ที่เกี่ยวข้องทั้งหมดโดยไม่ต้องแก้ไขไฟล์ xcode ด้วยตนเองและเสี่ยงต่อการเลอะ

เครดิต

ขอขอบคุณNick LockwoodและPauly 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/… (คำตอบของแดเนียล)
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- สำรองข้อมูลโครงการของคุณ

หากคุณกำลังใช้คอมไพล์ให้คอมมิตเปลี่ยนแปลงใด ๆ ทำสำเนาของโฟลเดอร์โครงการทั้งหมดและสำรองข้อมูลในเครื่องย้อนเวลาก่อนทำการเปลี่ยนแปลงใด ๆ (ไม่จำเป็นต้องทำตามขั้นตอนนี้ แต่ขอแนะนำอย่างยิ่ง)

2- เปิดโครงการของคุณ

3-ช้าดับเบิ้ลคลิกหรือกด Enter ที่ชื่อโปรเจ็กต์ (ไอคอนสีน้ำเงินด้านบน) แล้วเปลี่ยนชื่อเป็นอะไรก็ได้ที่คุณต้องการ

หมายเหตุ:หลังจากที่คุณเปลี่ยนชื่อโครงการและกด 'Enter' มันจะแนะนำให้เปลี่ยนรายการที่เกี่ยวข้องกับชื่อโครงการทั้งหมดโดยอัตโนมัติและจะช่วยให้คุณสามารถยกเลิกการเลือกบางรายการได้หากคุณต้องการ เลือกทั้งหมดแล้วคลิกตกลง

4- เปลี่ยนชื่อโครงการ

a) คลิกเมนูด้านขวาถัดจากปุ่มหยุดและเลือกจัดการแบบแผน

b) คลิกครั้งเดียวช้าหรือกด Enter ในรูปแบบชื่อเก่าและเปลี่ยนชื่อเป็นสิ่งที่คุณต้องการ

ค) คลิกตกลง

5 - สร้างและเรียกใช้เพื่อให้แน่ใจว่าใช้งานได้

หมายเหตุ:ณ จุดนี้ไฟล์โครงการสำคัญทั้งหมดควรถูกเปลี่ยนชื่อยกเว้นความคิดเห็นในคลาสที่สร้างขึ้นเมื่อโครงการถูกสร้างขึ้นหรือโฟลเดอร์ต้นทาง ต่อไปเราจะเปลี่ยนชื่อโฟลเดอร์ในระบบไฟล์

6- ปิดโครงการ

7- เปลี่ยนชื่อโฟลเดอร์ main และโฟลเดอร์ source

8-คลิกขวาที่.xcodeprojไฟล์มัดโครงการและเลือก“ แสดงเนื้อหาแพ็คเกจ” จากเมนูบริบท เปิดไฟล์. pbxproj ด้วยโปรแกรมแก้ไขข้อความใด ๆ

9-ค้นหาและแทนที่ชื่อโฟลเดอร์เดิมด้วยชื่อโฟลเดอร์ใหม่

10- บันทึกไฟล์

11- เปิดโครงการ XCode ทดสอบ

12- เสร็จสิ้น

แก้ไข 10/11/19:

มีเครื่องมือในการเปลี่ยนชื่อโครงการใน Xcode ฉันยังไม่ได้พยายามแสดงความคิดเห็นมากพอ https://github.com/appculture/xcode-project-renamer


2
คำถามคือการทำซ้ำและเปลี่ยนชื่อโครงการที่คัดลอกแล้ว คำตอบนี้เป็นเพียงการเปลี่ยนชื่อโครงการที่มีอยู่
martinjbaker

1
สำหรับฉันนี่เป็นวิธีที่ง่ายที่สุด เพียงแค่คัดลอกโฟลเดอร์โครงการดั้งเดิมเช่น MyProject วนซ้ำไปยัง "MyNewProject" จากนั้นเปิด MyNewProject และทำตามคำแนะนำของ fs_tigre ฉันประหลาดใจที่ทั้ง Android Studio และ Xcode ไม่มีตัวเลือก "File-> Clone Project" ซึ่งจะสะดวกมาก อาจจะดีปลั๊กอินโครงการสำหรับใครบางคน ( nshipster.com/xcode-plugins )?
Blisterpeanuts

วิธีเดียวที่ทำงานสำหรับฉัน - XCode 8.2
GreenAsJade

2
ขั้นตอนที่ 10.1 - หากคุณมีการเชื่อมต่อส่วนหัวและ / หรือไฟล์ให้เปลี่ยนชื่อไฟล์เหล่านั้นเพื่อสะท้อนชื่อใหม่ของคุณ หากใช้ Cocoapods ให้แก้ไขชื่อในไฟล์พ็อดของคุณ
David Lari

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
การทำงานนี้ใช้เพื่อเปลี่ยนชื่อ internals ของแอป แต่โฟลเดอร์ภายนอกสำหรับแอพนั้นยังคงไม่เปลี่ยนแปลง
smac89


2

ฉันกำลังใช้งานสคริปต์นี้หลังจากเปลี่ยนชื่อโครงการ iOS ของฉันแล้ว ช่วยในการเปลี่ยนชื่อไดเรกทอรีและสร้างชื่อให้ตรงกัน

http://github.com/ytbryan/rename

หมายเหตุ:คุณจะต้องเปลี่ยนชื่อของโครงการด้วยตนเอง


1

ในรหัสตัวอย่างสำหรับหนังสือ"Instant OpenCV สำหรับ iOS"ฉันพบสคริปต์ทุบตีที่คัดลอกโครงการจากโฟลเดอร์หนึ่งไปยังอีกที่หนึ่ง
ทำวิจัยเล็กน้อยฉันพบบล็อกโพสต์จากสิ่งที่ดูเหมือนจะเป็นผู้เขียนต้นฉบับของสคริปต์: 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

อีกหนึ่งสิ่งที่จะลอง!

เมื่อฉันคัดลอกไฟล์ทั้งหมดของฉันเปิดโครงการและเปลี่ยนชื่อทุกอย่างเปลี่ยนเป็นชื่อโครงการใหม่ของฉันยกเว้นสำหรับเป้าหมายการทดสอบ! ฉันพบข้อผิดพลาด linker ที่ระบุว่าฉันพลาดไฟล์ชื่อ "myOldProjectname.app" นี่คือสิ่งที่แก้ไขมัน:

  1. คลิกที่การตั้งค่าโครงการและเลือกเป้าหมายการทดสอบของคุณ ป้อนคำอธิบายรูปภาพที่นี่

  2. คลิกที่การตั้งค่าการสร้างและค้นหา "ทดสอบโฮสต์" ป้อนคำอธิบายรูปภาพที่นี่

  3. ตรวจสอบพา ธ ของไฟล์ทั้งสอง โอกาสที่ทั้งสองพา ธ จะยังคงชี้ไปที่ชื่อโครงการเก่าของคุณ ป้อนคำอธิบายรูปภาพที่นี่

หวังว่าจะช่วย!


0

สำหรับใครก็ตามที่มีปัญหาเกี่ยวกับกระดานเรื่องราวล้มเหลวหลังจากคัดลอกโครงการของคุณตรงไปที่ Main.storyboard ภายใต้ Identity Inspector

ถัดไปตรวจสอบว่าโมดูลปัจจุบันของคุณเป็นโมดูลที่ถูกเปลี่ยนชื่อถูกต้องไม่ใช่โมดูลเก่า


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.