Bạn có thể chạy Xcode trong Linux không?


186

Bạn có thể chạy Xcode trong Linux không? Mac OS X được dựa trên BSD Unix, vậy có khả thi không?

Từ những gì tôi đã nghe, có một plugin MonoDevelop có trình giả lập iPhone.


2
Tôi nghĩ rằng đây là những gì bạn đang tìm kiếm Apple phát hành nhanh chóng để thay thế xcode cho linux ios devs cnet.com/news/apple-int
sinhes

Họ phát hành swift không phải Xcode.
Antzi

Vẫn không tốt. Chỉ là ngôn ngữ là nguồn mở và được xuất bản trên Linux cùng với một thư viện chuẩn. Nó không có ý định tạo ứng dụng iOS hoặc thay thế Xcode. Thích làm ứng dụng Linux hơn với swift. Tất nhiên điều này sẽ đơn giản hóa công việc của những người muốn tạo một trình biên dịch chéo.
Antzi

Câu trả lời:


399

Chuỗi công cụ cấp thấp cho Xcode (họ trình biên dịch gcc, trình gỡ lỗi gdb, v.v.) là tất cả nguồn mở và phổ biến cho các nền tảng Unix và Linux. Nhưng IDE - trình soạn thảo, quản lý dự án, lập chỉ mục, điều hướng, hệ thống xây dựng, trình gỡ lỗi đồ họa, mô hình dữ liệu trực quan, hệ thống SCM, tái cấu trúc, ảnh chụp dự án, v.v .-- là một ứng dụng Mac OS X Cocoa và không khả dụng.


76
+1 phân tích ngắn tuyệt vời về những gì phổ biến và những gì là mac centric
curtisk

11
Chưa kể rằng việc chạy nó trên một hệ điều hành khác có thể phá vỡ EULA của nó. Apple đặc biệt keo kiệt khi nói đến thỏa thuận cấp phép.
jpaugh

1
Điều này không chính xác 100% (hoặc cập nhật). GCC tiêu chuẩn không thể tạo tệp đối tượng Mach-O, nhưng Clang thì có thể. Nhưng sau đó, bạn vẫn cần ld của Apple để liên kết nhị phân cuối cùng. Người yêu có thể chạy chuỗi công cụ Xcode gốc trên Linux (nhưng không phải Xcode IDE).
LubosD

38

Chưa có ai đề xuất Vagrant , vì vậy đây là hộp Vagrant cho OSX

vagrant init https://vagrant-osx.nyc3.digitaloceanspaces.com/osx-sierra-0.3.1.box
vagrant up

và bạn có một máy ảo MACOS. Nhưng theo EULA của Apple, bạn vẫn cần chạy nó trên phần cứng MacOS: D Nhưng ở bất cứ đâu, đây là một trong tất cả các chuyên viên máy tính đã xóa MacOS và cài đặt Ubuntu: D

Thật không may, bạn không thể chạy các trình soạn thảo từ bên trong bằng X-forwardingtùy chọn SSH .


3
Bạn có cần chạy trình soạn thảo GUI để xây dựng ứng dụng bằng Xcode không hoặc có thể thực hiện được từ CLI không?
Jose V

26

Tôi thực sự muốn bình luận, không trả lời. Nhưng nói chính xác, OSX không dựa trên BSD, đây là một sự tiến hóa của NeXTStep. Hệ điều hành NeXTStep sử dụng nhân Mach được phát triển bởi CMU. Ban đầu nó được thiết kế dưới dạng MicroKernel, nhưng do hạn chế về hiệu năng, cuối cùng họ đã quyết định họ cần đưa phần Unix của API vào chính kernel và do đó, một "máy chủ" tương thích BSD (ban đầu dự định xử lý các yêu cầu tương thích với BSD thông điệp kernel) đã được chuyển vào kernel, biến nó thành kernel Monolithic. Nó có thể tương thích BSD trong API lập trình, nhưng nó không phải là BSD.

Phần còn lại của HĐH liên quan đến ObjectiveC (theo sự sắp xếp giữa Stepstone và Richard Stallman của GNU / GCC) với GUI dựa trên công nghệ có tên là "Hiển thị bài viết" ... giống như một máy chủ X, nhưng có lệnh postcript. OS X đã thay đổi Hiển thị Bản ghi thành Hiển thị PDF và tăng yêu cầu phần cứng chung gấp 1000 lần (NeXT có thể chạy trong 8-16 MB, bây giờ bạn cần GB).

Do sự kết hợp chặt chẽ giữa GCC và Objective C và NeXT, đặt cược tốt nhất của bạn khi chạy XCode vốn có trong Linux sẽ là làm một cổng (nếu bạn có thể nhận được nguồn - chúc may mắn) sử dụng các thư viện GNUStep. Được thiết kế ban đầu cho NextStep và sau đó là khả năng tương thích OpenStep, tôi đã nghe nói rằng chúng bây giờ ít nhiều tương thích với Cacao, nhưng tôi đã không chơi với bất kỳ ứng dụng nào trong gần 2 thập kỷ. Tất nhiên, điều đó chỉ đưa bạn đến tận ObjC chứ không phải Swift và tôi không biết liệu Apple có định mở OpenSource không.


9

Nếu bạn chạy VMware Player hoặc Workstation (hoặc có thể là VirtualBox, tôi không chắc nó có hỗ trợ Mac OS X không, nhưng có thể), và sau đó Mac OS X Server (Máy khách không thể được ảo hóa một cách hợp pháp). Tất nhiên, trong trường hợp này bạn đang chạy XCode trên OS X, nhưng máy chủ của bạn có thể là linux.


5
Thực sự có thể chạy OS X bên trong VirtualBox. Tôi chạy 10.8 Mountain Lion theo cách này. Bạn phải làm theo một hướng dẫn. Nó hoạt động gần như hoàn hảo. Tôi là người Đan Mạch, vì vậy tôi phải xây dựng bố cục keybord của riêng mình.
Kristian Spangsege

3
Ngay cả Máy chủ chỉ có thể được ảo hóa (về mặt pháp lý) trên Phần cứng của Apple; Tôi nghĩ tuy nhiên sẽ hợp pháp khi chạy Linux trên phần cứng của Apple và sau đó là Mac OS X với tư cách là khách của nó (mặc dù tôi không chắc đây là một lựa chọn hấp dẫn). @KristianSpangsege: rất vui khi biết nó chạy cho bạn trong VirtualBox ... Tôi đã cài đặt khoảng 5 phiên bản khác nhau và tất cả đều rất chậm. Tôi nghĩ đó là một vấn đề với tất cả các MacOSX ảo hóa cho đến khi tôi chuyển sang VMware ... hầu như không có vấn đề gì ở đó (thỉnh thoảng vẫn xảy ra hiện tượng chậm chậm).
johndodo


4

Tôi nghĩ bạn cần MonoTouch (không miễn phí!) Cho plugin đó.

Và không, không có cách nào để chạy Xcode trên Linux.

Xin lỗi vì tất cả những tin xấu. :)


2

Không, bạn đã nghe nói về MonoTouch , một môi trường .NET / mono để phát triển iPhone. Nhưng bạn vẫn cần Mac và SDK iPhone chính thức. Và trình giả lập là một ứng dụng chính thức, nó hoạt động như một IDE riêng biệt và cho phép bạn không phải mã hóa trong Objective C, thay vào đó bạn mã hóa trong c #

Đó là một dự án thú vị để nói rằng ít nhất ....

EDIT: rõ ràng, bạn có thể phân phối trên cửa hàng ứng dụng ngay bây giờ, ngay từ đầu đã không còn ....



0

Nếu bạn muốn XCode trên một HĐH khác, tôi đề nghị điện toán đám mây. Bằng cách đó, ứng dụng của bạn đang được phát triển trên máy Mac và có thể được gửi tới App Store.



0

Thật kỳ lạ khi không ai đề xuất KVM .

Nó sẽ cung cấp cho bạn hiệu năng gần như nguyên gốc và nó được tích hợp sẵn trong Linux. Đi và kiểm tra xem nó ra.

bạn sẽ cảm thấy như bạn chỉ đang sử dụng mac và sau đó cài đặt Xcode, thậm chí bạn có thể chọn khởi động trực tiếp vào GUI OSX thay vì Linux khi khởi động


-2

OSX dựa trên BSD , không phải Linux. Bạn không thể chạy Xcode trên máy Linux.


1
Nó không có gì để làm với kernel đang chạy. Và MacOS hầu như không "dựa trên BSD", hãy xem câu trả lời của tôi ở trên về lịch sử
Evan Langlois
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.