คุณสามารถเรียกใช้ Xcode ใน Linux ได้หรือไม่?


186

คุณสามารถรัน Xcode ใน Linux ได้หรือไม่? Mac OS X ใช้ BSD Unix เป็นไปได้หรือไม่

จากสิ่งที่ฉันได้ยินมีปลั๊กอิน MonoDevelop ที่มีตัวจำลอง iPhone


2
ฉันคิดว่านี่คือสิ่งที่คุณกำลังมองหา Apple เปิดตัว swift เพื่อแทนที่ xcode สำหรับ linux ios devs cnet.com/news/apple-introduces-swift-2
PauAI

พวกเขาปล่อยอย่างรวดเร็วไม่ใช่ Xcode
Antzi

ยังไม่ดี เป็นเพียงภาษาที่เป็นโอเพ่นซอร์สและเผยแพร่บน Linux พร้อมกับไลบรารีมาตรฐาน มันไม่ได้มีวัตถุประสงค์เพื่อสร้างแอพ iOS หรือแทนที่ Xcode ชอบสร้างแอพ Linux ด้วยความรวดเร็ว ของหลักสูตรนี้จะลดความซับซ้อนของงานของคนที่ต้องการสร้างคอมไพเลอร์ข้าม
Antzi

คำตอบ:


399

Toolchain ระดับต่ำสำหรับ Xcode (ตระกูลคอมไพเลอร์ gcc, gdb debugger, ฯลฯ ) เป็นโอเพนซอร์สทั้งหมดและใช้ร่วมกับแพลตฟอร์ม Unix และ Linux แต่ IDE - ตัวแก้ไข, การจัดการโครงการ, การทำดัชนี, การนำทาง, ระบบการสร้าง, ตัวแก้จุดบกพร่องแบบกราฟิก, การสร้างแบบจำลองข้อมูลภาพ, ระบบ SCM, การสร้างใหม่, ภาพรวมของโครงการเป็นต้น - เป็นแอปพลิเคชัน Mac OS X Cocoa


76
+1 การแจกแจงสั้น ๆ ที่ยอดเยี่ยมของสิ่งที่พบได้ทั่วไปและ mac centric คืออะไร
curtisk

11
ไม่ต้องพูดถึงว่าการใช้งานบนระบบปฏิบัติการอื่นอาจทำให้ EULA แตกหัก แอปเปิลตระหนี่โดยเฉพาะอย่างยิ่งเมื่อมันมาถึงข้อตกลงใบอนุญาต
jpaugh

1
สิ่งนี้ไม่ถูกต้อง 100% (หรือทันสมัย) GCC มาตรฐานไม่สามารถสร้างไฟล์วัตถุ Mach-O แต่เสียงดังกราวสามารถ แต่คุณยังต้องการแอปเปิ้ล ld เพื่อเชื่อมโยงไบนารีสุดท้าย ดาร์ลิ่งสามารถเรียกใช้ toolcode Xcode ดั้งเดิมบน Linux (แต่ไม่ใช่ Xcode IDE)
LubosD

38

ยังไม่มีใครแนะนำVagrantเลยดังนั้นนี่คือกล่อง Vagrant สำหรับ OSX

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

และคุณมีเครื่องเสมือน MACOS แต่ตาม EULA ของ Apple คุณยังคงต้องเรียกใช้บนฮาร์ดแวร์ MacOS: D แต่ทุกที่นี่เป็นหนึ่งใน geeks ทั้งหมดของคุณที่เช็ด MacOS และติดตั้ง Ubuntu: D

น่าเสียดายที่คุณไม่สามารถเรียกใช้โปรแกรมแก้ไขจากภายในโดยใช้X-forwardingตัวเลือกSSH


3
คุณจำเป็นต้องเรียกใช้ตัวแก้ไข GUI เพื่อสร้างแอปด้วย Xcode หรือสามารถทำได้จาก CLI หรือไม่
Jose V

26

ฉันต้องการแสดงความคิดเห็นจริงๆไม่ตอบ แต่เพื่อให้แม่นยำ OSX ไม่ได้ใช้ BSD เป็นวิวัฒนาการของ NeXTStep NeXTStep OS ใช้เคอร์เนล Mach ที่พัฒนาโดย CMU เดิมได้รับการออกแบบเป็น MicroKernel แต่เนื่องจากข้อ จำกัด ด้านประสิทธิภาพในที่สุดพวกเขาจึงตัดสินใจที่จะรวมส่วน Unix ของ API ลงในเคอร์เนลและ "เซิร์ฟเวอร์" ที่เข้ากันได้กับ BSD (เดิมทีตั้งใจจะประมวลผลคำขอสำหรับ BSD ที่เข้ากันได้ ข้อความเคอร์เนล) ถูกย้ายไปยังเคอร์เนลทำให้เป็นเคอร์เนลเสาหิน อาจเข้ากันได้กับ BSD ในการเขียนโปรแกรม API แต่ไม่ใช่ BSD

ส่วนที่เหลือของระบบปฏิบัติการที่เกี่ยวข้องกับ ObjectiveC (ภายใต้ข้อตกลงระหว่าง Stepstone และ Richard Stallman ของ GNU / GCC) โดยใช้ GUI บนพื้นฐานของเทคโนโลยีที่เรียกว่า "Display Postcript" ... เรียงลำดับเหมือน X Server แต่มีคำสั่งแบบลงท้ายด้วย OS X เปลี่ยน Display Postscript เป็น Display PDF และเพิ่มความต้องการฮาร์ดแวร์ทั่วไป 1,000 เท่า (NeXT สามารถทำงานได้ใน 8-16MB ตอนนี้คุณต้องการ GB)

เนื่องจากการแต่งงานที่ใกล้ชิดของ GCC และ Objective C และ NeXT ทางออกที่ดีที่สุดของคุณในการใช้งาน XCode โดยกำเนิดภายใต้ Linux คือการทำพอร์ต (ถ้าคุณสามารถควบคุมแหล่งที่มา - ขอให้โชคดี) ใช้ไลบรารี GNUStep เดิมทีออกแบบมาสำหรับ NextStep จากนั้นก็เข้ากันได้กับ OpenStep ฉันได้ยินมาว่าตอนนี้พวกเขาเข้ากันได้กับ Cocoa มากขึ้นหรือน้อยลง แต่ฉันไม่ได้เล่นกับมันเลยในเกือบสองทศวรรษ แน่นอนว่าจะทำให้คุณเท่าที่ ObjC ไม่ใช่ Swift และฉันไม่รู้ว่า Apple กำลังจะไป OpenSource หรือไม่


9

ถ้าคุณเรียกใช้ VMware Player หรือ Workstation (หรืออาจเป็น VirtualBox ฉันไม่แน่ใจว่ามันรองรับ Mac OS X แต่อาจ) และจากนั้น Mac OS X Server (ไคลเอนต์ไม่สามารถทำเสมือนจริงได้ตามกฎหมาย) แน่นอนในกรณีนี้คุณกำลังรัน XCode บน OS X แต่เครื่องโฮสต์ของคุณอาจเป็น linux


5
เป็นไปได้แน่นอนที่จะเรียกใช้ OS X ภายใน VirtualBox ฉันวิ่ง 10.8 Mountain Lion ด้วยวิธีนี้ คุณต้องทำตามวิธีการ มันใช้งานได้แทบไม่มีที่ติ ฉันเป็นคนเดนมาร์กดังนั้นฉันจึงต้องสร้างรูปแบบแป้นพิมพ์ของฉัน
Kristian Spangsege

3
แม้แต่เซิร์ฟเวอร์เท่านั้นที่สามารถเป็นเสมือน (ถูกกฎหมาย) เสมือนจริงบน Apple Hardware เท่านั้น ฉันคิดว่ามันจะถูกกฎหมาย แต่การรัน Linux บนฮาร์ดแวร์ Apple และ Mac OS X เป็นแขกของมัน (แม้ว่าฉันไม่แน่ใจว่านี่เป็นตัวเลือกที่น่าสนใจ) @KristianSpangsege: ดีใจที่ได้ยินว่ามันทำงานให้คุณภายใต้ VirtualBox ... ฉันติดตั้งประมาณ 5 รุ่นที่แตกต่างกันและทุกอย่างช้ามาก ฉันคิดว่ามันเป็นปัญหากับ MacOSX เสมือนจริงทั้งหมดจนกว่าฉันจะเปลี่ยนเป็น VMware ... แทบจะไม่มีปัญหาเลย (การชะลอตัวสั้น ๆ เป็นครั้งคราวยังคงเกิดขึ้น)
johndodo


4

ฉันคิดว่าคุณต้องการMonoTouch (ไม่ฟรี!) สำหรับปลั๊กอินนั้น

และไม่มีทางที่จะเรียกใช้ Xcode บน Linux

ขออภัยสำหรับข่าวร้ายทั้งหมด :)


2

ไม่คุณเคยได้ยินMonoTouchซึ่งเป็นสภาพแวดล้อม. NET / ขาวดำสำหรับการพัฒนา iPhone แต่คุณยังต้องใช้ Mac และ SDK iPhone อย่างเป็นทางการ และอีมูเลเตอร์คือแอปเปิ้ลอย่างเป็นทางการตัวนี้ทำหน้าที่เป็น IDE แยกต่างหากและอนุญาตให้คุณไม่ต้องเขียนโค้ดใน Objective C แต่คุณเขียนโค้ดใน c #

มันเป็นโครงการที่น่าสนใจที่จะพูดน้อยที่สุด ....

แก้ไข: เห็นได้ชัดว่าคุณสามารถแจกจ่ายในแอพสโตร์ตอนนี้ แต่เนิ่น ๆ นั่นก็ไม่เป็นไร ....


1

ตัวเลือกที่ง่ายที่สุดในการทำเช่นนั้นคือเรียกใช้ VM พร้อมกับสำเนา OSX


0

หากคุณต้องการ XCode ในระบบปฏิบัติการอื่นฉันแนะนำให้ใช้การคำนวณแบบคลาวด์ วิธีนี้ทำให้แอปของคุณได้รับการพัฒนาบน Mac และสามารถส่งไปยัง App Store



0

มันก็แปลกที่ไม่มีใครแนะนำKVM

มันจะให้ประสิทธิภาพการทำงานเกือบเป็นมาตรฐานแก่คุณและมันติดตั้งมากับ Linux ไปและตรวจสอบมัน

คุณจะรู้สึกว่าคุณใช้ mac เท่านั้นแล้วติดตั้ง Xcode ตรงนั้นคุณอาจเลือกที่จะบูตเข้าสู่ OSX GUI โดยตรงแทนที่จะใช้ Linux ในการเริ่มต้น


-2

OSX อิงกับ BSDไม่ใช่ Linux คุณไม่สามารถรัน Xcode บนเครื่อง Linux


1
มันไม่เกี่ยวอะไรกับเคอร์เนลที่มันทำงานอยู่ และ MacOS นั้นแทบจะไม่ "ยึดตาม BSD" ดูคำตอบของฉันข้างต้นสำหรับประวัติ
Evan Langlois
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.