Câu trả lời nhanh chóng là: Có, chúng tôi có thể!
Trước khi tôi đến phần " cách nó được thực hiện ", đây là một số lưu ý về bản vá / hack / sửa lỗi của tôi. Ngay từ đầu các mục tiêu chính đã là:
Giữ tất cả các sửa đổi ở mức tối thiểu tuyệt đối.
Chúng tôi muốn giữ các thiết lập Xcode càng ban đầu càng tốt.
Bằng mọi cách, hãy cố gắng tránh vá hoặc sửa đổi bất kỳ tệp nào.
Chúng tôi muốn tất cả các tệp được giữ nguyên và giữ nguyên nội dung ban đầu của chúng.
Cố gắng tránh di chuyển hoặc sao chép tệp xung quanh, trừ khi thực sự cần thiết.
Tôi đã có thể giữ tất cả những mục tiêu đó. Hầu hết mọi thứ được thực hiện bằng cách tạo các liên kết tượng trưng. Chỉ một liên kết biểu tượng hiện có duy nhất phải được thay thế và chúng tôi sẽ sao lưu nó trước khi thay thế, đề phòng.
Nếu bạn không phải là chuyên gia về hoạt động của thiết bị đầu cuối, tôi thực sự khuyên bạn nên sao chép / dán tất cả các lệnh đầu cuối từ thư trả lời của tôi đến thiết bị đầu cuối của bạn, để tránh lỗi chính tả. Hãy nhớ rằng thậm chí khoảng cách, trích dẫn và đặc biệt là viết hoa có thể quan trọng. Sao chép / dán chúng từng dòng, không bao giờ nhiều hơn một dòng cùng một lúc và nhấn quay lại sau mỗi dòng đã dán để thực hiện lệnh. Nếu bất kỳ thao tác nào nhắc bạn nhập mật khẩu, đây sẽ là mật khẩu của người dùng quản trị viên hiện đang đăng nhập (các tổ hợp phím của bạn không được hiển thị khi nhập, điều này là bình thường, đừng lo lắng, chỉ cần tiếp tục nhập mật khẩu và nhấn trở lại; lại -thử nếu bạn có lỗi chính tả và được nhắc lại).
Điều kiện tiên quyết
Trước khi chúng ta có thể bắt đầu, hãy đảm bảo các điều kiện sau là đúng:
- Bạn đã đăng nhập với tư cách là người dùng quản trị viên.
- Bạn đã khởi động Terminal.app (Ứng dụng / Tiện ích) và một cửa sổ đầu cuối đang mở.
- Bạn có sẵn bản sao của Xcode3 (ví dụ 3.2.5) và hình ảnh đĩa Xcode4 (DMG) hoặc trình cài đặt.
- Nếu bạn đã cài đặt một trong hai phiên bản Xcode, hãy xem xét gỡ cài đặt nó trước tiên , để bạn có thể bắt đầu với thiết lập mới / sạch. Gỡ cài đặt Xcode sẽ không loại bỏ các tùy chọn, bảng màu hoặc liên kết khóa của bạn. Lý tưởng nhất là bạn nên bắt đầu với một hệ thống không có phiên bản Xcode (không phải 3 hay 4) hiện được cài đặt.
Bước 1: Cài đặt Xcode3
Quan trọng : Không cài đặt gói " Công cụ Hệ thống " hoặc " Phát triển Unix " của Xcode3.
Việc bạn muốn cài đặt " Mac OS X 10.4 SDK " và / hoặc " Tài liệu " là tùy thuộc vào bạn. Nếu đó là Xcode3 với iOS SDK, bạn có cài đặt chúng hay không cũng tùy thuộc vào bạn.
Bạn có thể tự do chọn bất kỳ thư mục đích nào để cài đặt. Đối với hướng dẫn này, tôi đã chọn " / Xcode3 ", nhưng hãy chọn một hướng dẫn khác. Chỉ cần đảm bảo thay đổi tất cả các lệnh đầu cuối cho phù hợp.
Thứ tự của các bước được đưa ra ở đây thường không thực sự quan trọng, nhưng tôi thực sự khuyên bạn không nên hoán đổi bước 1 và bước 2. Xcode luôn cài đặt một vài tệp bên ngoài thư mục đích đã chọn và tin tôi đi, cuối cùng thì bạn muốn Phiên bản Xcode4 của các tệp đó trên đĩa của bạn. Bằng cách cài đặt Xcode3 trước Xcode4, bạn có thể chắc chắn rằng Xcode4 sẽ ghi đè các tệp đó nếu cần. Tôi đã từng hoán đổi bước 1 và bước 2 và cuối cùng tôi gặp một số vấn đề khá lạ có thể liên quan đến thứ tự không chính xác (tôi không thể nói chắc chắn, nhưng sau khi cài đặt lại theo đúng thứ tự, sự cố đã biến mất).
Bước 2: Cài đặt Xcode4
Chọn bất kỳ gói nào bạn thích. Việc cài đặt " Công cụ hệ thống " được khuyến khích, nhưng không hoàn toàn cần thiết (mặc dù hầu hết mọi người sớm hay muộn sẽ bỏ lỡ chức năng đó).
Một lần nữa, hãy chọn bất kỳ thư mục đích nào bạn thích. Đối với hướng dẫn này, tôi đã chọn thư mục đích bình thường " / Developer ", nếu bạn chọn một thư mục khác, hãy thay đổi tất cả các lệnh đầu cuối cho phù hợp.
Bước 3: Khôi phục hỗ trợ SDK 10.4 / 10.5
Chuyển sang cửa sổ dòng lệnh của bạn và chạy các lệnh sau:
cd / Nhà phát triển / SDK
sudo ln -s /Xcode3/SDKs/MacOSX10.4u.sdk.
sudo ln -s /Xcode3/SDKs/MacOSX10.5.sdk.
Tất nhiên chỉ chạy lệnh cho 10.4u nếu bạn cũng đã cài đặt SDK 10.4 ở bước 1.
Điều này đủ để đưa SDK 10.5 (và có thể là 10.4) trở lại danh sách lựa chọn trong Xcode4. Hãy thử nếu bạn thích. Kích hoạt Xcode4, mở một dự án, thử thay đổi SDK đã chọn. Điều đó thật dễ dàng, phải không? Đảm bảo đóng Xcode4 một lần nữa (ứng dụng, không chỉ cửa sổ) trước khi tiếp tục bước tiếp theo.
Bước 4: Khôi phục hỗ trợ GCC 4.0
Nếu bạn chưa cài đặt MacOS 10.4 SDK hoặc nếu bạn không có kế hoạch sử dụng nó, bạn có thể bỏ qua bước này một cách an toàn và tiếp tục với bước 5.
Để sử dụng SDK 10.4, bạn sẽ phải sử dụng GCC 4.0, GCC 4.2 sẽ không hoạt động. Apple tuyên bố rằng GCC 4.2 không tương thích với SDK 10.4, nếu bạn hỏi tôi, đây là một trò lừa bịp. Tôi đã ghi đè những giới hạn này nhiều lần và chưa bao giờ có vấn đề nhỏ nhất vì nó. Sẽ rất dễ dàng để sửa đổi SDK 10.4 để Xcode cho phép bạn sử dụng GCC 4.2 cho nó, nhưng mục tiêu của tôi là tránh tất cả các sửa đổi tệp, vì vậy chúng tôi chỉ thêm hỗ trợ GCC 4.0 trở lại Xcode, đó cũng là một điều tốt, bởi vì một số dự án thực sự phụ thuộc vào GCC 4.0 (ví dụ: có một số lỗi trong GCC 4.2 ngăn mã hợp lệ nội tuyến hợp lệ để biên dịch mà không có lỗi, trong khi cùng một mã biên dịch hoàn hảo trên GCC 4.0 và GCC 4.4).
Quay lại thiết bị đầu cuối:
cd / Developer / usr / bin
sudo ln -s /Xcode3/usr/bin/*4.0*.
cd / Developer / usr / libexec / gcc / powerpc-apple-darwin10
sudo ln -s /Xcode3/usr/libexec/gcc/powerpc-apple-darwin10/4.0.1.
Ngay bây giờ, chúng tôi đã khôi phục hỗ trợ GCC 4.0 đầy đủ ngoại trừ thực tế là GCC 4.0 vẫn không thể chọn được trong Xcode4. Đó là vì Xcode4 không còn trình cắm thêm trình biên dịch GCC 4.0 nữa. May mắn thay, trình cắm Xcode3 cũng hoạt động trong Xcode4, chỉ có điều vị trí đã thay đổi hoàn toàn. Apple hiện đã giấu những plug-in đó sâu trong một gói và chỉ những plug-in ở đó mới hoạt động được, việc đặt chúng về vị trí cũ dường như không có tác dụng gì.
cd / Nhà phát triển / Thư viện / Xcode / PrivatePlugIns
cd Xcode3Core.ideplugin / Contents / SharedSupport / Developer / Library / Xcode / Plug-in
sudo ln -s "/ Xcode3 / Library / Xcode / Plug-ins / GCC 4.0.xcplugin".
Bây giờ hãy kích hoạt lại Xcode4, mở một dự án và thử chọn trình biên dịch. Bạn sẽ có GCC 4.0 trở lại trong danh sách. Bây giờ bạn thực sự đã có thể chọn SDK 10.4 hoặc 10.5, GCC 4.0 và bạn sẽ không gặp vấn đề gì khi tạo tệp nhị phân PPC. Chỉ cần chọn " Khác ... " cho cài đặt xây dựng " Kiến trúc " và nhập " ppc " theo cách thủ công , sau đó thay đổi " Kiến trúc hợp lệ " để bao gồm cả " ppc ". Chúng tôi gần như đã hoàn thành, ngoại trừ việc cố gắng tạo tệp nhị phân PPC bằng GCC 4.2 và SDK 10.5 sẽ vẫn không thành công.
Bước 5: Khôi phục hỗ trợ của PPC cho GCC 4.2
Vì Apple chỉ hỗ trợ nền tảng Intel trong Xcode4 nên không phải tất cả các công cụ GCC 4.2 đều được xây dựng với sự hỗ trợ của PPC. Có một công cụ quan trọng không có hỗ trợ PPC, công cụ này được đặt tên là " as " và nó là GNU Assembler. Để biên dịch mã nhị phân ppc / ppc64 với GCC 4.2, chúng ta cần sử dụng phiên bản " as " có hỗ trợ ppc / ppc64. Đây là tệp duy nhất (thực sự nó cũng là một liên kết biểu tượng) trước tiên chúng ta phải chuyển sang một bên (tạo một bản sao lưu) trước khi chúng ta có thể thay thế nó bằng một liên kết biểu tượng:
cd /Developer/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1
sudo mv as as.bak
sudo ln -s / Xcode3 / usr / bin / as.
Bước 6: Không có Bước 6
Đó là tất cả mọi người. Xem xét điều đó dễ dàng như thế nào, bạn có thể tưởng tượng rằng Apple chắc chắn đã không bỏ hỗ trợ SDK 10.4 / 10.5 hoặc ppc / ppc64 hoặc GCC 4.0 vì đây là một điều cần thiết, họ đã bỏ tất cả những điều đó vì họ muốn bỏ nó.
Tôi hy vọng thiết lập này hoạt động tốt cho bạn cũng như cho tôi. Tôi đã có thể biên dịch tất cả các dự án cũ của mình trong Xcode4 mà không có bất kỳ thay đổi lớn nào, ngoại trừ việc phải thay đổi đường dẫn tìm kiếm ở đây và ở đó.
Tái bút:
Tôi trả lời câu hỏi của chính mình ở đây có vẻ lạ, nhưng vì tôi đã tự mình tìm ra cách giải quyết vấn đề này, tôi muốn chia sẻ kiến thức của mình với cộng đồng, vì tôi tin rằng đây thực sự là đầu vào có giá trị tất cả các nhà phát triển MacOS ngoài đó. Câu hỏi này đã được hỏi rất nhiều lần ở rất nhiều nơi và cho đến nay tôi chưa bao giờ thấy ai đưa ra cách sửa chữa tương tự. Chia sẻ sự giàu có, truyền bá kiến thức và như vậy, bạn biết tôi muốn nói gì.
Nếu bạn vẫn có vấn đề / câu hỏi:
Nếu bạn có thêm câu hỏi liên quan đến chủ đề này hoặc nếu bạn vẫn gặp vấn đề để xây dựng các dự án cũ của mình một cách chính xác, vui lòng thực hiện những gì Stack Overflow đã được thiết kế cho: Nhấp vào "Đặt câu hỏi" ở góc trên bên phải của trang này và tạo một câu hỏi mới . Bằng cách đó, cả cộng đồng có thể giúp bạn giải quyết những vấn đề đó, vì các vấn đề có thể không trực tiếp (thậm chí có thể không gián tiếp) liên quan đến vụ hack này.
Tôi khuyên bạn nên đề cập đến thực tế là bạn đã áp dụng hack này ngay từ đầu câu hỏi của bạn. Có thể bạn thậm chí muốn liên kết trực tiếp đến câu hỏi này để những người chưa bao giờ nghe nói về bản hack này có thể dễ dàng tra cứu. Nếu không, hầu hết mọi người sẽ khá bối rối khi bạn đề cập đến SDK 10.4 / 10.5, PPC hoặc GCC 4.0 kết hợp với Xcode4, vốn chính thức hỗ trợ cả hai thứ này. Bạn có thể nhận được những bình luận khá ngu ngốc thay vì những câu trả lời đàng hoàng nếu bạn quên đề cập đến vụ hack này.
Vui lòng không đăng câu hỏi hoặc vấn đề của bạn ở đây dưới dạng trả lời hoặc nhận xét. Đăng chúng dưới dạng câu trả lời sẽ không có ý nghĩa gì vì chúng không phải là câu trả lời và không có cách nào để mọi người có thể trả lời lại bạn, nếu không thì sử dụng nhận xét và nhận xét có thể không cung cấp đủ chỗ cho câu trả lời phù hợp cho câu hỏi của bạn hoặc một giải pháp phù hợp cho bạn vấn đề. Và đăng chúng dưới dạng nhận xét có nghĩa là bạn bị giới hạn rất ít chỗ và việc theo dõi các bình luận trả lời sẽ khó khăn vì các bình luận không có hệ thống phân cấp giống như cây (hơn nữa chúng sẽ vẫn cung cấp rất ít chỗ cho các câu trả lời / giải pháp phù hợp). Cảm ơn bạn.
Tất nhiên các loại nhận xét khác cũng như câu trả lời tốt hơn cho câu hỏi ban đầu luôn được hoan nghênh ;-)