Đổi tên dự án xcode 4 và thư mục thực tế


119

Tôi biết cách đổi tên dự án trong Xcode 4, nhưng làm cách nào để đổi tên thư mục nguồn? Vấn đề là việc đổi tên dự án trong Xcode, chỉ đổi tên trong Xcode (Mặc dù nó là tiến bộ so với trước đó) - nhưng tại sao Xcode không đổi tên thư mục trong hệ thống tệp thì tôi không biết.


Bạn đã thử đổi tên thư mục chưa?
David Brown,

2
Tôi có bạn của tôi, và tất cả các tệp trong tệp dự án khi đó đều bị thiếu - tất cả chúng đều được đánh dấu là đã đọc, vì không có bất kỳ sự phản hồi nào. Nhưng tôi đã tìm thấy linh hồn - hãy xem câu trả lời của tôi. Cảm ơn bạn đã trả lời
Chris G.

Câu trả lời:


259

Bạn có thể thực hiện việc này từ bên trong Xcode mà không cần chỉnh sửa thủ công tệp pbxproj trong trình soạn thảo văn bản!

Đây là cách thực hiện:

  1. Đổi tên thư mục nguồn của bạn trong Finder. Điều này sẽ phá vỡ dự án ban đầu vì Xcode không tự động phát hiện khi các thư mục thực mà thư mục dự án ảo (màu vàng) trỏ đến bị thay đổi, vì vậy tất cả các tệp bên trong thư mục đó sẽ chuyển sang màu đỏ trong Xcode. Đừng lo lắng về điều đó, chúng tôi sẽ sửa nó ở bước 3.

  2. Trong Xcode, nhấp vào thư mục ảo (hiện đã bị hỏng) ở thanh bên bên trái và đổi tên nó để khớp với tên trong Finder (bạn thực sự có thể gọi nó là bất cứ thứ gì bạn muốn hoặc không đổi tên nó, nhưng điều đó sẽ rất điên rồ ). Điều đó sẽ không sửa chữa các tệp màu đỏ bên trong thư mục, nhưng điều đó không sao.

  3. Trong thanh bên bên phải trong Xcode, nhấp vào biểu tượng được hiển thị trong ảnh chụp màn hình bên dưới để hiển thị hộp thoại tệp. Chọn thư mục mà bạn đã đổi tên trước đó. Thao tác này sẽ liên kết lại thư mục ảo với thư mục thực trên đĩa và sẽ tự động sửa các liên kết đến tất cả các tệp bên trong.

  4. Trong cài đặt bản dựng của bạn, hãy tìm kiếm tên thư mục cũ và đổi tên theo cách thủ công bất kỳ lần xuất hiện nào bạn tìm thấy. Thông thường sẽ có hai trong số chúng, oldfolder / prefix.pch và oldfolder / info.plist, nhưng có thể có những cái khác.

Tất cả đã được làm xong!

nhập mô tả hình ảnh ở đây

EDIT: tùy chọn này vẫn có trong Xcode 5, nhưng được ẩn hữu ích theo mặc định. Để hiển thị nó, hãy nhấp vào tiêu đề mỏng "Danh tính và Loại" trong trình kiểm tra phía trên bảng "Cài đặt Văn bản" để mở rộng nó.


Tuyệt vời, tôi chỉ thêm rằng nếu việc đổi tên là một phần của việc đổi tên toàn bộ dự án, thì có một bước khác: Thay đổi "Tên dự án" ở bên phải, khu vực trên cùng và cho phép Xcode đổi tên mọi thứ bên trong để phù hợp.
RedYeti

1
Mọi thứ đều hoạt động tốt và dự án đã được đổi tên, nhưng thông báo xây dựng ở trên cùng và tên bằng trình mô phỏng vẫn giữ nguyên tên cũ, để thay đổi điều này: Đi tới menu sản phẩm, quản lý các lược đồ và đổi tên lược đồ
BlackTigerX

Thật. Bạn cũng có thể chỉ cần xóa lược đồ và nhấn nút tự động tạo lược đồ.
Nick Lockwood

Có ai biết cách làm điều này trong xCode 5 không? Tôi không thấy nút thần kỳ đó nữa. :(
Jason

Nó vẫn ở đó, nó chỉ là ẩn. Bạn phải mở rộng hàng có tên "Nhận dạng và loại" trong trình kiểm tra bằng cách nhấp vào nó. Tôi mất khoảng 20 phút để tìm ra điều đó!
Nick Lockwood

112

Tôi đã làm điều đó hàng chục lần:

  • Đổi tên Dự án bằng cách nhấp vào, sau đó chỉnh sửa Tiêu đề trong Bộ điều hướng Dự án Xcode của bạn.
  • Đóng Xcode.
  • Đổi tên thư mục nguồn.
  • Từ Finder, mở .pbxprojtệp bên trong gói dự án (menu ngữ cảnh "Hiển thị Nội dung Gói") bằng bất kỳ trình soạn thảo văn bản nào.
  • Tìm kiếm và thay thế bất kỳ sự xuất hiện nào của tên thư mục gốc bằng tên thư mục mới.
  • Lưu các tập tin.
  • Mở dự án Xcode.

3
Chỉ cần nhớ để làm điều này sau khi bạn đổi tên dự án
Aram Kocharyan

Tôi làm theo hướng dẫn của bạn và không thành công. Tôi nghĩ rằng vấn đề là trong "Tìm kiếm và thay thế bất kỳ sự xuất hiện nào của tên thư mục gốc bằng tên thư mục mới." Bạn có thể cung cấp hướng dẫn chi tiết hơn về bước này? Cảm ơn
Philip007

Cách thực hiện tìm kiếm và thay thế phụ thuộc vào trình soạn thảo văn bản hoặc công cụ được chọn. Trong trường hợp của tôi, với vim: <ESC>:% s / old / new / g <ENTER> Nó có thể bị lỗi nếu có thứ gì đó khác trong tệp dự án có tên xung đột.
djromero 14/09/12

Cảm ơn @madmw, tôi đã tìm ra. Tôi đang sử dụng TextEdit. Tôi nghĩ mẹo là thay thuộc tính "Chứa" thành "Từ đầy đủ" trong khi tiến hành tìm kiếm và thay thế. Và mình đăng hướng dẫn chi tiết bên dưới.
Philip007

Hoạt động một điều trị! Khi đổi tên thư mục của một mục tiêu, ví dụ như một thư viện tĩnh, tôi cũng phải làm rối tung các lược đồ của mình, đồng thời đổi tên tiêu đề tiền tố và tệp danh sách thông tin.
Tim Potter

12

Nhiệm vụ: Đổi tên "Play" thành "Play2" cả trong Xcode và Finder

Thay đổi điều này:

nhập mô tả hình ảnh ở đây

Về điều này:

nhập mô tả hình ảnh ở đây

CÁC BƯỚC:

// Trước bất cứ điều gì, hãy sao lưu dự án trong Finder!

  • Đổi tên dự án trong trình điều hướng Dự án Xcode // Nhấp vào tên dự án rồi nhấn enter
  • Đổi tên nhóm trong trình điều hướng Dự án Xcode // không ảnh hưởng đến tên thư mục trong Finder
  • Đóng Xcode
  • Đổi tên thư mục bên ngoài (cột bên trái trong hình ảnh) trong Finder

// Tất cả các bước trên đều đơn giản và không có tác dụng phụ // // Bây giờ đến phần phức tạp: đổi tên thư mục bên trong (cột giữa trong hình ảnh) trong Finder (cùng cấp với .xcodeproj)

  • Đổi tên thư mục bên trong trong Finder trong khi vẫn đóng Xcode
  • Nhấp chuột phải .xcodeproj, chọn "Hiển thị Nội dung Gói"
  • Mở tệp .pbxproj bằng Mac TextEdit
  • Tìm kiếm và thay thế tất cả "Play" bằng "Play2". Để đảm bảo mọi thứ đi đúng hướng, hãy nhấp vào mũi tên ở đầu bên trái của thanh tìm kiếm và sửa đổi thuộc tính tìm kiếm. Thay đổi "Chứa" thành "Từ đầy đủ" và bỏ chọn "Bỏ qua chữ hoa chữ thường"
  • Lưu tệp .pbxproj
  • Mở dự án Xcode và chạy

4

Dưới đây là cách đổi tên một dự án hiệu quả trong XCode4 (BAO GỒM THƯ MỤC TỆP):

  1. Đóng tất cả các dự án đang mở hoàn toàn trong XCode để ngăn chặn bất kỳ sự cố nào
  2. Sao chép Dự án được đề cập vào một Thư mục mới (QUAN TRỌNG: HÃY GIỮ BẢN DỰ PHÒNG CỦA DỰ ÁN CŨ CỦA BẠN)
  3. Mở dự án
  4. Đổi tên chính Dự án trong XCode4 (nhấp đúp vào tên dự án), thay đổi tên và làm theo các bước (có với mọi thứ)
  5. Đi tới sản phẩm, quản lý lược đồ và đổi tên lược đồ (nhấp đúp vào tên lược đồ)
  6. Đóng dự án của bạn (đảm bảo đóng hoàn toàn nếu không các bước tiếp theo sẽ không hoạt động)
  7. Trong Finder, hãy chuyển đến thư mục Project và nhấp chuột phải vào tệp .xcodeproj, sau đó chọn tùy chọn "Show Package Contents"
  8. Sau đó nhấp chuột phải vào tệp .pbxproj và mở nó bằng TextEdit
  9. Thay thế tất cả các lần xuất hiện của Tên thư mục nơi các dự án đã từng tồn tại (Tên dự án cũ cho tên dự án mới)
  10. Lưu các tập tin
  11. Mở lại Dự án và Xây dựng nó!

Bạn có thể cung cấp hướng dẫn chi tiết hơn về bước 9 không?
Philip007 14/09/12

2

Đầu tiên - không đổi tên dự án Xcode !!!

Nếu bạn phải làm như vậy, điều bên dưới có thể là nó - tôi không bao giờ làm cho nó hoạt động, cuối cùng đã tạo một dự án mới và bắt đầu tất cả việc sao chép trong các tệp hiện có. Xcode thật quá ahh .... Nó có quá nhiều thứ không hiệu quả, chẳng hạn như hãy thử đổi tên một tệp từ "Tên" thành "tên". Chà, chúc bạn vui vẻ.

Tôi đã tìm thấy câu trả lời hoặc cách giải quyết vấn đề này: Mở tệp pbxproj bằng cách nhấp chuột phải vào "Hiển thị nội dung gói" và trong đó bạn chỉnh sửa tệp project.pbxproj - bạn phải đổi tên tham chiếu được gọi là đường dẫn và một số nội dung khác - chỉ cần tìm kiếm tên thư mục được thêm "/".

Đó là nó. Hy vọng nó sẽ giúp một số người.


2
Tôi đã đổi tên một dự án ngày hôm qua và nó hoạt động tốt. Mặc dù vậy, tôi đồng ý rằng Xcode là "ahh": D
manmal,

Có một cách hoàn toàn an toàn và được hỗ trợ để làm điều này - hãy xem câu trả lời của tôi.
Nick Lockwood

2

Đây là một vấn đề khác mà bạn nên biết khi thay thế các giá trị trong tệp * .pbxproj của mình. Nếu tên thư mục cũ của bạn là FooBar, bạn sẽ có một mục nhập trong tệp * .pbxproj của bạn trông giống như sau:

path = FooBar

Giả sử tên thư mục mới của bạn là Foo Bar. Đó là bạn đang giới thiệu một không gian. Sau đó, dòng này sẽ trở thành

path = "Foo Bar"

Nếu bạn chỉ thực hiện một thao tác tìm và thay thế đơn giản, kết quả sẽ là một tệp * .pbxproj mà Xcode không thể phân tích cú pháp. Nếu tên thư mục mới của bạn có khoảng trắng và tên cũ không có khoảng trắng, hãy đảm bảo bao gồm dấu ngoặc kép.


2

Tôi đang tổng kết cho chính mình, sau khi xem xét các câu trả lời khác nhau ở trên và tự mình thử. Giả sử tên dự án hiện tại là ProjAbc và bạn muốn đổi tên nó thành ProjDef:

  1. Thoát Xcode của dự án đó.

  2. Trong Finder, nhân đôi thư mục TRÊN ProjAbc.xcodeproj để sao lưu.

  3. Trong Finder, tự do đổi tên thư mục TRÊN ProjAbc.xcodeproj nếu bạn cảm thấy cần nó cho phù hợp với tên dự án mới.

  4. Trong Finder, Đổi tên thư mục tệp nguồn song song với ProjAbc.xcodeproj từ ProjAbc thành ProjDef

  5. Mở Xcode cho ProjAbc.xcodeproj (trong Project Navigator, tất cả các tệp trong thư mục nguồn ảo ProjAbc sẽ có màu Đỏ).

  6. Trong Xcode, nhấp vào thư mục ảo (hiện đã bị hỏng) trong Project Navigator ở thanh bên bên trái và đổi tên nó để khớp với tên trong Finder - ProjDef. Điều đó vẫn chưa khắc phục được các tệp màu đỏ bên trong thư mục, nhưng điều đó không sao.

  7. Trong Xcode, (vẫn chọn thư mục ảo trong thanh bên bên trái) ở thanh bên bên phải, trong Trình kiểm tra tệp, hãy nhấp vào biểu tượng được hiển thị trong ảnh chụp màn hình bên dưới để hiển thị hộp thoại tệp. Trong hộp thoại tệp, chọn thư mục mà bạn đã đổi tên trước đó (ProjDef). Thao tác này sẽ liên kết lại thư mục ảo với thư mục thực trên đĩa và sẽ tự động sửa các liên kết đến tất cả các tệp bên trong. Hình ảnh hiển thị nơi để nhấp vào biểu tượng Thư mục trong Trình kiểm tra tệp

  8. Trong Xcode, trong Project Navigator, hãy bấm vào tên dự án ProjAbc và đổi tên nó thành ProjDef.

    • Bạn sẽ được nhắc: "Đổi tên các hạng mục nội dung dự án?". Nhấp vào nút "Đổi tên".
    • Bạn sẽ được nhắc: "Bạn có muốn Xcode chụp ảnh nhanh tự động trước khi Đổi tên dự án và các thao tác tương tự không?". Nhấp vào "Tắt" hoặc "Bật". Không quan trọng.
  9. Trong Xcode, bây giờ hãy mở "Build Settings" bên trong mục tiêu ProjDef (bên trong dự án ProjDef trong Project Navigator). Đổi tên cả tên thư mục và tên tệp của cả tệp * -Info.plist và * -Prefix.pch để chứa ProjDef thay vì ProjAbc.

  10. Trong Xcode, trong Project Navigator, trong thư mục nguồn ảo ProjDef, trong "Tệp hỗ trợ", cũng đổi tên lại cả hai tệp * -Info.plist và * -Prefix.pch để chứa ProjDef thay vì ProjAbc

  11. Trong Menu Xcode, nhấn Product / Scheme / Manage Schemes ... (hoặc nhấp vào "ProjAbc"> Tên sơ đồ trong Thanh lược đồ ở trên cùng bên trái của Xcode và nhấn "Quản lý lược đồ ...") và trong hộp thoại đổi tên Lược đồ từ ProjAbc thành ProjDef, sau đó nhấn nút "OK". Nếu tên Dự án bao gồm một từ duy nhất, bạn có thể chạy nó ngay bây giờ!

  12. Trong Xcode, hãy chỉnh sửa dòng chú thích trên cùng trong tệp Support Files / * - Prefix.pch và thay thế ProjAbc bằng ProjDef (2 lần). Tất nhiên việc sửa lại bình luận này là tùy chọn.

  13. Thoát khỏi Xcode.

  14. Trong Finder, trỏ tới ProjDef.xcodeproj và mở nó trong trình soạn thảo văn bản. (Mở nó trong TextWrangler.app hoặc, nhấp chuột phải và trong menu bật lên, nhấn "Show Package Contents", sau đó chỉnh sửa tệp project.pbxproj trong TextEdit.app)

  15. Trong Trình soạn thảo Văn bản, hãy tìm kiếm "ProjAbc" (Toàn bộ Word, Ghép chữ) sẽ xuất hiện một lần (trong đoạn: / * Bắt đầu phần PBXNativeTarget * / trong dòng: productName = ProjAbc;) và thay thế nó bằng "ProjDef". Thật vậy, dự án vẫn có thể chạy !, vì vậy bước này là tùy chọn.

  16. nếu tên dự án bao gồm 2 từ riêng biệt trở lên, như "ProjDef Geh", thì bạn PHẢI thực hiện các bước tiếp theo: Tìm kiếm tham chiếu đến thư mục Finder của thư mục tệp nguồn ảo -

    • Tìm kiếm dòng: path = ProjDef Geh;
    • Nó sẽ xuất hiện một lần, trong đoạn / * ProjDef Geh * /
    • Thay thế nó bằng dòng: path = "ProjDef Geh";
  17. Lưu từ trình soạn thảo văn bản và thoát khỏi Trình soạn thảo văn bản.

  18. Đó là nó. Như đã viết ở trên, nếu tên dự án bao gồm một từ duy nhất, bạn có thể chạy ngay ở cuối bước 11.


Bạn đã làm cho điều này phức tạp hơn mà nó cần phải được. Nếu bạn thực hiện bước 8 (đổi tên dự án) trước, trước bước 4 (đổi tên thư mục nguồn), nó sẽ tự động đổi tên tệp Info.plist và Prefix.pch của bạn, vì vậy bạn có thể bỏ qua bước 9 và 10.
Nick Lockwood

0

Tôi thấy những câu trả lời trên thực sự hữu ích, đặc biệt là câu trả lời của Nick Lockwood.

Tôi vừa đổi tên một vài thư mục trong Xcode 8 và gặp phải hai vấn đề khác: A) "bị thiếu do lỗi sao chép hoạt động" B) Dữ liệu cốt lõi bị lỗi .

Cách giải quyết hai vấn đề này:

A) " bị thiếu do lỗi sao chép hoạt động "

Tôi thấy câu trả lời dưới đây rất hữu ích: Nâng cấp Swift 3 / Xcode 8 - 100 tệp DerivedData bị thiếu do lỗi sao chép hoạt động

Về cơ bản Xcode 8 có kiểm soát nguồn chặt chẽ, có thể dẫn đến các lỗi trên. Bạn phải:

  1. Làm sạch dữ liệu có nguồn gốc Xcode.
  2. Đi tới Kiểm soát Nguồn và nhấp vào Làm mới Trạng thái.
  3. Đi tới Kiểm soát nguồn và nhấp vào Cam kết; chọn tất cả các tệp trên thanh bên trái của menu cam kết khi cam kết (nhấp chuột phải -> Chọn Tất cả).
  4. Có thể bạn sẽ gặp lỗi.
  5. Đóng menu Cam kết.
  6. Lam mơi tâm trạng.
  7. Đóng dự án của bạn bằng cách thoát khỏi Xcode.
  8. Mở lại dự án của bạn, làm mới trạng thái, cam kết lại.
  9. Lần này cam kết sẽ hoạt động.
  10. Nhấp vào Dự án -> Làm sạch.

Tôi giả định rằng bạn đã bật Kiểm soát nguồn. Nếu bạn chưa làm hoặc nếu bạn gặp khó khăn khi làm theo hướng dẫn của tôi, chỉ cần làm theo hướng dẫn chi tiết hơn trong liên kết được cung cấp.

B) Dữ liệu cốt lõi gặp sự cố

Đổi tên thư mục đôi khi sẽ làm hỏng Dữ liệu cốt lõi. Có một số lý do có thể xảy ra tại sao điều này là như vậy và dưới đây là một số bản sửa lỗi mà tôi có thể đề xuất:

  1. Tên mô hình AppDelegate không chính xác . Đây là trường hợp trong tình huống của tôi. Truy cập AppDelegate của bạn và tìmlet container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME") . Đảm bảo rằng tên là chính xác.

    Trong tương lai (vài năm sau bài đăng này, khi Apple lại thay đổi Core Data) hoặc nếu bạn đang sử dụng phiên bản Core Data cũ hơn, hãy xem xét kỹ AppDelegate. Có thể có điều gì đó thú vị đang gây rối với Dữ liệu cốt lõi của bạn.

  2. Tên kiểu máy trong xcdatamodeld không chính xác . Đi tới Finder và mở .xcdatamodeld của bạn trong trình soạn thảo văn bản.

Kiểm tra lượt theo dõi:

<plist version="1.0">
  <dict>
     <key>_XCCurrentVersionName</key>
     <string>YOUR CORE DATA MODEL NAME.xcdatamodel</string>  <-- Make sure this is correct.
  </dict>
</plist>

Chi tiết hơn tại đây: Các tệp mô hình Dữ liệu cốt lõi không tải khi đổi tên

  1. Nếu hai điều trên không hoạt động, hãy thử 1) xóa thực thể của bạn rồi thêm một thực thể khác giống hệt hoặc 2) xóa xcdatamodeld của bạn rồi thêm một mô hình dữ liệu khác giống hệt (và đảm bảo rằng tên của xcdatamodeld mới khớp những gì trong AppDelegate của bạn và phần còn lại của mã của bạn). Không bao giờ làm điều này với một Ứng dụng trực tiếp - hoặc nếu bạn làm điều này, hãy đảm bảo di chuyển Dữ liệu cốt lõi của bạn đúng cách trong khi làm như vậy.

0

Nếu bạn có tham chiếu cũ của dự án nguồn vào dự án của mình, Khi công khai dự án (mọi thay đổi được thực hiện đều ảnh hưởng đến cả hai dự án) ở đây giải pháp

  • Dự án Dublicate từ dự án nguồn
  • Đổi tên thư mục nguồn của dự án nguồn gây ra sự cố tham chiếu.
  • Trong proejct dublicate, mọi thứ chuyển sang màu đỏ, hãy chọn thư mục dự án hiện tại của bạn. (ảnh chụp màn hình được hiển thị trong câu trả lời đánh dấu màu xanh lá cây của stackoverflow)

================================================== ======================

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.