ฉันต้องการที่จะสามารถทำซ้ำทั้งโครงการ Xcode เปลี่ยนชื่อโครงการและไฟล์ที่เกี่ยวข้องโดยไม่ต้อง Xcode ไปทางจิตและไม่ต้องนำเข้าไฟล์ทั้งหมดไปยังโครงการด้วยตนเอง
ฉันต้องการที่จะสามารถทำซ้ำทั้งโครงการ Xcode เปลี่ยนชื่อโครงการและไฟล์ที่เกี่ยวข้องโดยไม่ต้อง Xcode ไปทางจิตและไม่ต้องนำเข้าไฟล์ทั้งหมดไปยังโครงการด้วยตนเอง
คำตอบ:
คำตอบนี้เป็นสุดยอดของการโพสต์ StackOverflow และแบบฝึกหัดอื่น ๆ อีกมากมายทั่วอินเทอร์เน็ตที่นำมารวมไว้ในที่เดียวเพื่อการอ้างอิงในอนาคตของฉันและเพื่อช่วยเหลือผู้อื่นที่อาจประสบปัญหาเดียวกัน เครดิตทั้งหมดจะได้รับสำหรับคำตอบอื่น ๆ ในตอนท้าย
ใน 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 ที่ให้คำตอบสำหรับปัญหานี้แยกต่างหาก
*.xcodeproj/project.pbxproj
ไฟล์ที่มีเส้นทางโฟลเดอร์ต้นฉบับ โดยเฉพาะอย่างยิ่งการสร้างล้มเหลวเนื่องจากมันยังคงมองหา info.plist ในโฟลเดอร์ต้นฉบับ
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- เสร็จสิ้น
มีเครื่องมือในการเปลี่ยนชื่อโครงการใน Xcode ฉันยังไม่ได้พยายามแสดงความคิดเห็นมากพอ https://github.com/appculture/xcode-project-renamer
ในฐานะของ 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
ฉันกำลังใช้งานสคริปต์นี้หลังจากเปลี่ยนชื่อโครงการ iOS ของฉันแล้ว ช่วยในการเปลี่ยนชื่อไดเรกทอรีและสร้างชื่อให้ตรงกัน
หมายเหตุ:คุณจะต้องเปลี่ยนชื่อของโครงการด้วยตนเอง
ในรหัสตัวอย่างสำหรับหนังสือ"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>
ทำงานได้ดี
ข้อมูลเพิ่มเติมสามารถพบได้เปิดไฟล์ด้วยโปรแกรมแก้ไขข้อความ หวังว่าจะช่วย
ฉันใช้ Xcode 6+ และทำ:
*.xcodeproj or *.xcworkspace
นี่คือทำ แต่ชื่อของหน้าต่าง Xcode และยังคง*.xcodeproj or *.xcworkspace
<old-name>
จากนั้นฉันก็:
pop install
<new name>.xcworkspace
อีกหนึ่งสิ่งที่จะลอง!
เมื่อฉันคัดลอกไฟล์ทั้งหมดของฉันเปิดโครงการและเปลี่ยนชื่อทุกอย่างเปลี่ยนเป็นชื่อโครงการใหม่ของฉันยกเว้นสำหรับเป้าหมายการทดสอบ! ฉันพบข้อผิดพลาด linker ที่ระบุว่าฉันพลาดไฟล์ชื่อ "myOldProjectname.app" นี่คือสิ่งที่แก้ไขมัน:
คลิกที่การตั้งค่าโครงการและเลือกเป้าหมายการทดสอบของคุณ
คลิกที่การตั้งค่าการสร้างและค้นหา "ทดสอบโฮสต์"
ตรวจสอบพา ธ ของไฟล์ทั้งสอง โอกาสที่ทั้งสองพา ธ จะยังคงชี้ไปที่ชื่อโครงการเก่าของคุณ
หวังว่าจะช่วย!
สำหรับใครก็ตามที่มีปัญหาเกี่ยวกับกระดานเรื่องราวล้มเหลวหลังจากคัดลอกโครงการของคุณตรงไปที่ Main.storyboard ภายใต้ Identity Inspector
ถัดไปตรวจสอบว่าโมดูลปัจจุบันของคุณเป็นโมดูลที่ถูกเปลี่ยนชื่อถูกต้องไม่ใช่โมดูลเก่า
ฉันใช้สคริปต์ 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}"
หมายเหตุ:
.git
และ.DS_Store