Sao y và đổi tên dự án Xcode & các thư mục liên quan [đã đóng]


195

Tôi muốn có thể sao chép toàn bộ dự án Xcode, đổi tên dự án và các tệp liên quan mà không cần Xcode, và không phải nhập lại tất cả các tệp vào dự án theo cách thủ công.

Câu trả lời:


368

Câu trả lời này là đỉnh cao của các bài đăng và hướng dẫn khác nhau của StackOverflow trên internet được đưa vào một nơi để tôi tham khảo trong tương lai và để giúp bất kỳ ai khác có thể phải đối mặt với cùng một vấn đề. Tất cả tín dụng được đưa ra cho câu trả lời khác vào cuối.

Sao chép dự án Xcode

  • Trong Finder, sao chép thư mục dự án vào vị trí mong muốn của dự án mới của bạn. Không đổi tên tên tệp .xcodeproj hoặc bất kỳ thư mục liên quan nào ở giai đoạn này.

  • Trong Xcode, đổi tên dự án. Chọn dự án của bạn từ khung điều hướng (khung bên trái). Trong ngăn Tiện ích (khung bên phải) đổi tên dự án của bạn, Chấp nhận các thay đổi Xcode đề xuất.

  • Trong Xcode, đổi tên các lược đồ trong "Quản lý lược đồ", cũng đổi tên bất kỳ mục tiêu nào bạn có thể có.

  • Nếu bạn không sử dụng Mã nhận dạng gói mặc định có chứa Product_NAME hiện tại ở cuối (vì vậy sẽ tự động cập nhật), sau đó thay đổi Mã nhận dạng gói của bạn thành mã nhận dạng mới mà bạn sẽ sử dụng cho dự án trùng lặp của mình.

Đổi tên thư mục nguồn

Vì vậy, sau khi làm theo các bước trên, bạn nên có một dự án Xcode trùng lặp và đổi tên thành xây dựng và biên dịch thành công, tuy nhiên thư mục mã nguồn của bạn sẽ vẫn được đặt tên như trong dự án ban đầu. Điều này không gây ra bất kỳ vấn đề nào về trình biên dịch, nhưng nó không phải là cấu trúc tệp rõ ràng nhất để mọi người điều hướng trong SCM, v.v. Để đổi tên thư mục này mà không phá vỡ tất cả các liên kết tệp của bạn, hãy làm theo các bước sau:

  • Trong Finder, đổi tên thư mục nguồn. Điều này sẽ phá vỡ dự án của bạn, vì Xcode sẽ không tự động phát hiện các thay đổi. Tất cả các danh sách tệp xcode của bạn sẽ mất liên kết với các tệp thực tế, vì vậy tất cả sẽ chuyển sang màu đỏ.

  • Trong Xcode, nhấp vào thư mục ảo mà bạn đã đổi tên (Điều này có thể sẽ ở ngay trên cùng, ngay dưới .xcodeproject thực tế của bạn) Đổi tên này để khớp với tên trong Finder, điều này sẽ không sửa bất cứ điều gì và hoàn toàn không phải là một bước bắt buộc nhưng thật tuyệt khi có tên tệp phù hợp.

  • Trong Xcode, Chọn thư mục bạn vừa đổi tên trong ngăn điều hướng. Sau đó, trong ngăn Tiện ích (ngoài cùng bên phải), nhấp vào biểu tượng trông giống như thư mục màu xám đậm, ngay bên dưới trình đơn thả xuống 'Vị trí'. Từ đây, điều hướng đến thư mục đã đổi tên của bạn trong công cụ tìm và nhấp vào 'Chọn'. Điều này sẽ tự động liên kết lại tất cả các tệp của bạn và chúng sẽ không còn xuất hiện màu đỏ trong ngăn điều hướng Xcode.

Biểu tượng để nhấp

  • Trong cài đặt xây dựng dự án / mục tiêu của bạn, tìm kiếm tên thư mục cũ và đổi tên thủ công bất kỳ lần xuất hiện nào bạn tìm thấy. Thông thường có một cho prefix.pch và một cho info.plist, nhưng có thể có nhiều hơn.

  • Nếu bạn đang sử dụng bất kỳ thư viện bên thứ ba nào (Testflight / Hockeyapp / etc), bạn cũng sẽ cần tìm kiếm 'Đường dẫn tìm kiếm thư viện' và đổi tên bất kỳ lần xuất hiện nào của tên tệp cũ ở đây.

  • Lặp lại quy trình này cho bất kỳ thư mục mã nguồn kiểm tra đơn vị nào mà dự án của bạn có thể chứa, quy trình này giống hệt nhau.

Điều này sẽ cho phép bạn sao chép và đổi tên dự án xcode và tất cả các tệp được liên kết mà không phải chỉnh sửa thủ công bất kỳ tệp xcode nào và có nguy cơ làm mọi thứ rối tung lên.

Tín dụng

Rất nhiều lời cảm ơn được dành cho Nick LockwoodPauly Glott đã cung cấp các câu trả lời riêng cho vấn đề này.


3
Sau khi làm theo ở trên, tôi chỉ tìm kiếm dự án lỗ cho "tên cũ" và tìm thấy những gì cần thay đổi (tiêu đề tiền tố) và nó được biên dịch ok với "tên mới" và ở một nơi khác. Hướng dẫn tuyệt vời - chỉ những gì tôi cần. (Đã kiểm tra w Xcode 5.0.1 / iOS 7.0)
Mac

Điều này dường như không đưa tôi đến đó (trên Xcode 5.0.2 ở đây, với một dự án đã được di chuyển từ 4.6.3 đến 5.0.0). Có nhiều thứ bên trong *.xcodeproj/project.pbxprojtệp chứa đường dẫn thư mục gốc. Cụ thể, quá trình xây dựng đã thất bại vì nó tiếp tục tìm kiếm một info.plist trong thư mục gốc.
Steven Lu

2
Vì tò mò, đây là một cách học cũ để làm điều này ... stackoverflow.com/questions/10006482/ ((câu trả lời của Daniel)
Fattie

1
Xcode 7.1.1 gặp sự cố với tôi ở rào cản đầu tiên - đổi tên dự án. Sẽ điều tra, nhưng có ai khác tìm thấy điều này?
HughHughTeotl

5
Việc thiếu cách xử lý khi bạn tích hợp Cocoapods trong dự án. Tôi cũng tìm thấy một liên kết hữu ích để xử lý vấn đề đó: h4ckish.com/2015/01/22/renaming-your-cocoapods-ios-project
KK

30

Tôi đang đăng bài này vì tôi luôn gặp khó khăn khi đổi tên dự án trong XCode .

Đổi tên dự án là tốt và đơn giản nhưng điều này không đổi tên thư mục nguồn. Đây là từng bước của những gì tôi đã làm mà hoạt động rất tốt trong Xcode 4 và 5 nhờ các liên kết bên dưới.

Liên kết REF:
Đổi tên dự án.
Đổi tên Thư mục nguồn và các tệp khác.

1- Sao lưu dự án của bạn.

Nếu bạn đang sử dụng git, cam kết bất kỳ thay đổi nào, hãy tạo một bản sao của toàn bộ thư mục dự án và sao lưu trong cỗ máy thời gian trước khi thực hiện bất kỳ thay đổi nào (bước này không bắt buộc nhưng tôi rất khuyến khích).

2- Mở dự án của bạn.

3- Nhấp đúp chuột chậm hoặc nhấn enter vào tên Dự án (biểu tượng trên cùng màu xanh) và đổi tên thành bất cứ thứ gì bạn thích.

LƯU Ý: Sau khi bạn đổi tên dự án và nhấn 'enter', nó sẽ đề xuất tự động thay đổi tất cả các mục liên quan đến tên dự án và sẽ cho phép bạn bỏ chọn một số trong số chúng nếu bạn muốn. Chọn tất cả chúng và nhấp vào ok.

4- Đổi tên Đề án

a) Nhấp vào menu ngay bên cạnh nút dừng và chọn Quản lý lược đồ.

b) Nhấp một lần chậm hoặc nhấn enter trên sơ đồ tên cũ và đổi tên thành bất cứ thứ gì bạn thích.

c) Nhấp vào ok.

5 - Xây dựng và chạy để đảm bảo nó hoạt động.

GHI CHÚ: Tại thời điểm này, tất cả các tệp dự án quan trọng nên được đổi tên ngoại trừ các nhận xét trong các lớp được tạo khi dự án được tạo cũng như thư mục nguồn. Tiếp theo chúng tôi sẽ đổi tên thư mục trong hệ thống tập tin.

6- Đóng dự án.

7- Đổi tên thư mục chính và thư mục nguồn.

8- Nhấp chuột phải vào gói dự án.xcodeproj tập tin và chọn Nội dung gói Hiển thị Gói từ menu ngữ cảnh. Mở tệp .pbxproj bằng bất kỳ trình soạn thảo văn bản nào.

9- Tìm kiếm và thay thế bất kỳ sự xuất hiện của tên thư mục gốc bằng tên thư mục mới.

10- Lưu tập tin.

11- Mở dự án XCode, kiểm tra nó.

12- Xong.

EDIT 10/11/19:

Có một công cụ để đổi tên các dự án trong Xcode mà tôi chưa thử đủ để nhận xét về nó. https://github.com/appcARM/xcode-project-renamer


2
Câu hỏi là để sao chép và sau đó đổi tên dự án đã sao chép. Câu trả lời này chỉ để đổi tên một dự án hiện có.
martinjbaker

1
Điều này, đối với tôi, là cách tiếp cận đơn giản nhất. Chỉ cần sao chép thư mục dự án ban đầu, ví dụ MyProject, đệ quy vào "MyNewProject". Sau đó mở MyNewProject và tiếp tục với hướng dẫn của fs_tigre. Tôi ngạc nhiên khi cả Android Studio và Xcode đều không cung cấp tùy chọn "File-> Clone Project" sẽ rất tiện lợi. Có lẽ một dự án plugin đẹp cho ai đó ( nshipster.com/xcode-plugins )?
Blisterpeanuts 17/2/2016

Phương pháp duy nhất hiệu quả với tôi - XCode 8.2
GreenAsJade

2
Bước 10.1 - Nếu bạn có các tệp tiêu đề và / hoặc quyền kết nối, hãy đổi tên chúng để phản ánh tên mới của bạn. Nếu sử dụng Cocoapods, hãy chỉnh sửa tên trong tệp pod của bạn.
David Lari

6

Kể từ XCode 7, điều này đã trở nên dễ dàng hơn nhiều.

Apple đã ghi lại quá trình trên trang của họ: https://developer.apple.com/l Library / ios / recipes / xcode_help-project_editor / ReamingaProject / ReamingaProject.html

Cập nhật: Liên kết XCode 8: http://help.apple.com/xcode/mac/8.0/#/dev3db3afe4f


2
Điều này chỉ hoạt động để đổi tên bên trong của ứng dụng, nhưng bên ngoài các thư mục cho ứng dụng vẫn không thay đổi
smac89

Liên kết xCode
Atara

2

Tôi đang sử dụng tập lệnh này sau khi đổi tên Dự án iOS của mình. Nó giúp thay đổi tên thư mục và làm cho tên đồng bộ.

http://github.com/ytbryan/rename

LƯU Ý: bạn sẽ cần thay đổi tên chương trình theo cách thủ công.


1

Trong mã ví dụ cho cuốn sách "OpenCV tức thì cho iOS" tôi đã tìm thấy một tập lệnh bash sao chép một dự án từ một thư mục sang một thư mục khác.
Thực hiện một nghiên cứu nhỏ Tôi đã tìm thấy một bài đăng blog từ những người dường như là tác giả chính của kịch bản: http://mohrt.blogspot.it/2009/01/renaming-xcode-project-from-command.html , trong đó bạn có thể tải về kịch bản . Tôi đã thử và chạy nó từ thiết bị đầu cuối như thế này

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

hoạt động tốt
Thông tin bổ sung có thể được tìm thấy khi mở tệp bằng trình soạn thảo văn bản. Mong rằng sẽ giúp


0

Tôi sử dụng Xcode 6+ và tôi chỉ cần làm:

  • Sao chép tất cả các tệp trong thư mục dự án sang Thư mục mới (có tên mới).
  • Mở *.xcodeproj or *.xcworkspace
  • Thay đổi tên dự án.
  • Nhấp vào lược đồ và xóa chema hiện tại và thêm cái mới.

Ở đây đã xong, nhưng tên của cửa sổ Xcode và *.xcodeproj or *.xcworkspacevẫn còn <old-name>. Sau đó tôi làm:

  • pop install
  • Mở <new name>.xcworkspace

0

Một điều nữa để thử!

Khi tôi sao chép tất cả các tệp của mình, mở dự án và đổi tên nó, mọi thứ đã thay đổi thành tên dự án mới của tôi ngoại trừ mục tiêu thử nghiệm! Tôi đã gặp một lỗi liên kết cho biết tôi đang thiếu một tệp có tên "myOldProjectname.app". Đây là những gì đã sửa nó:

  1. Nhấp vào cài đặt dự án của bạn và chọn mục tiêu thử nghiệm của bạn nhập mô tả hình ảnh ở đây

  2. Nhấp vào cài đặt bản dựng và tìm kiếm "máy chủ thử nghiệm" nhập mô tả hình ảnh ở đây

  3. Kiểm tra 2 đường dẫn tệp. Rất có thể là 2 đường dẫn đó vẫn đang chỉ vào tên dự án cũ của bạn. nhập mô tả hình ảnh ở đây

Mong rằng sẽ giúp!


0

Đối với bất kỳ ai khác có vấn đề với sự cố bảng phân cảnh sau khi sao chép dự án của bạn, hãy truy cập Main.storyboard trong Trình kiểm tra danh tính.

Tiếp theo, kiểm tra xem mô-đun hiện tại của bạn là mô-đun được đổi tên chính xác chứ không phải mô-đun cũ.


0

Tôi đang sử dụng tập lệnh BASH đơn giản để đổi tên.

Sử dụng: ./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}"

Ghi chú:

  1. Kịch bản này sẽ bỏ qua tất cả các tệp như .git.DS_Store
  2. Sẽ không hoạt động nếu tên cũ / tên mới chứa khoảng trắng
  3. Có thể không hoạt động nếu bạn sử dụng nhóm (không được kiểm tra)
  4. Tên lược đồ sẽ không được thay đổi (dù sao dự án vẫn chạy và biên dịch bình thường)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.