มีเหตุผลทางเทคนิคหรือไม่ที่คุณไม่สามารถพัฒนาแอพ iOS บนคอมพิวเตอร์ Linux ได้?


23

ฉันเข้าใจว่าทำไมคุณไม่สามารถพัฒนาแอพ OS X บนคอมพิวเตอร์ Linux แต่มีเหตุผลทางเทคนิคที่ดีว่าทำไมคุณไม่สามารถพัฒนาแอพ iPhone และ iPad บน Linux ทำไมจึงไม่สามารถคอมไพล์ซอร์สโค้ด iOS ใน iOS ที่สามารถเรียกใช้งานได้และรันใน iOS simulator บน Linux หรือติดตั้งบนอุปกรณ์ iOS ที่กำลังพัฒนา

เป็นเพราะ XCode IDE เป็นแอปพลิเคชัน Cocoa หรือไม่

คุณสามารถพัฒนาแอพ Android บนแพลตฟอร์มประเภทใดก็ได้ ฉันไม่เห็นสาเหตุที่เหมือนกันไม่สามารถเป็นจริงของ iOS


29
ฉันคิดว่าคำตอบสำหรับคำถามนี้น่าเศร้าที่จะเป็น "ไม่; Apple เพิ่งพูดอย่างนั้น"
Jon Purdy

11
คำถามถูกปิดสำหรับ "blasphemy";)
thorsten müller

1
ในบันทึกด้านข้างคุณสามารถรับเครื่อง "Mac Mini" มันราคาถูกไม่ต้องพูดถึงมันเป็นเครื่องที่ดีจริงๆ
Chiron

2
@ The Legend of 1982: ฉันอ่านผิดเครื่องเป็นเครื่องเวลาและได้สัมผัสกับความตื่นเต้นและความดูถูกของ Apple ในเวลาเดียวกัน
Jon Purdy

@Jon Purdy Well Apple ขอเสนอ "Time Machine" และ "Time Capsule" :)
Chiron

คำตอบ:


17

Mac OS X สามารถทำงานได้ตามสัญญาบน Apple Hardware เท่านั้น iOS ต้องใช้เฟรมเวิร์กของ Cocoa และต้องมีการเข้าถึง Mac เพื่อลงนามพวงกุญแจ ในขณะที่คุณสามารถใช้ Objective-C บน Linux โดยใช้ไลบรารี OpenStep คุณไม่สามารถผลักดันแอปพลิเคชันที่คุณพัฒนาไปเป็น iOS ได้เนื่องจากการขาดไลบรารี Cocoa API ที่ถูกต้องและในขณะที่คุณสามารถกดไปยังอุปกรณ์คุกได้ บัญชีเพื่อขายแอพดังกล่าวหรือแม้กระทั่งมีการดาวน์โหลดสาธารณะคุณได้เล่นตามกฎของ Apple


17
"Mac OS X สามารถทำงานได้อย่างถูกกฎหมายใน Apple Hardware" - ฉันจะประหลาดใจมากถ้าเป็นจริงในระบบกฎหมายที่มีเหตุผล ฉันรู้ถึงความจริงที่ว่ามันไม่เป็นความจริงในเยอรมนีเพราะ Microsoft พยายามที่จะดึงความสนใจแบบเดียวกันออกมา
Jörg W Mittag

4
ฉันจะเปลี่ยนเป็น "สัญญา" เพื่อความแม่นยำมากขึ้น
วิศวกรโลก

3
การละเมิดข้อกำหนดในสัญญาโดยทั่วไปจะเป็นการ จำกัด สิทธิ์การใช้งานของคุณ Apple ต้องการให้บริการลูกค้าที่ดีและวิธีที่ง่ายที่สุดคือ จำกัด พื้นที่ที่สิ่งต่าง ๆ อาจผิดพลาดตั้งแต่แรก หากคุณใช้ระบบปฏิบัติการบนฮาร์ดแวร์ที่ไม่ใช่ของ Apple แสดงว่าคุณเป็นเจ้าของด้วยตัวเอง
Jon Purdy

@ JörgWMittag Microsoft พยายามทำเช่นนั้นอย่างไร ฉันไม่ทราบว่า Microsoft ทำฮาร์ดแวร์มาตั้งแต่แรก
ขีดตกต่ำสุดยอด Sampaoli

4
@NadirSampaoli: ในเยอรมนีไมโครซอฟท์ขายลิขสิทธิ์ Windows มากราคาถูกไปยังผู้สร้างเครื่องคอมพิวเตอร์เพื่อให้พวกเขาสามารถกำ Windows ด้วยคอมพิวเตอร์ของตนโดยไม่ต้องเพิ่มค่าใช้จ่ายมากเกินไปเมื่อเทียบกับเครื่องคอมพิวเตอร์โดยไม่ต้อง OS หรือมาพร้อมกับลินุกซ์ เจตนาคือใบอนุญาตเหล่านี้ติดตั้งไว้ล่วงหน้าบนพีซี อย่างไรก็ตามผู้สร้างพีซีตระหนักว่าพวกเขาสามารถขายใบอนุญาตเหล่านั้นแยกต่างหากโดยมีกำไรมหาศาลเมื่อเทียบกับสิ่งที่พวกเขาจ่ายให้ แต่ก็ยังถูกกว่า Microsoft มาก Microsoft ฟ้องโดยอ้างว่าใบอนุญาตเหล่านั้นสามารถใช้ได้กับพีซีจากผู้สร้างเหล่านั้น แต่หายไป
Jörg W Mittag

17

ไม่มีเหตุผลทางเทคนิคเฉพาะเจาะจง แต่เครื่องมือสำหรับนักพัฒนาซอฟต์แวร์ของ Apple ที่ให้บริการบน Mac เท่านั้นและฉันไม่เห็นว่าพวกเขากำลังรีบเปลี่ยน

เกี่ยวกับเครื่องมือสำหรับนักพัฒนาบุคคลที่สาม Apple ไม่ชอบพวกเขาอย่างเปิดเผยต่อสาธารณชนและเนื่องจาก Apple มีอำนาจยับยั้งสิ่งที่ได้รับใน App Store อย่างสมบูรณ์จึงไม่ใช่ความคิดที่ดีที่จะลงทุนเวลาในการพัฒนา / การใช้งาน

(หนึ่งในเครื่องมือในการพัฒนา - สำหรับ iOS Simulator - มีการเชื่อมโยงอย่างมากที่จะ MacOS X สำหรับเหตุผลที่เสียงเทคนิค AFAIK ก็จริงเสื้อคลุมบาง ๆ ระหว่าง iOS และคล้ายกันมาก MacOS X APIs ซึ่งมันจะเป็นอนันต์ยากที่จะทำบนระบบปฏิบัติการอื่น. คุณจะต้องเริ่มต้นใหม่ตั้งแต่ต้นและอาจจะจบลงด้วยบางสิ่งบางอย่างเช่นสุนัขช้าและน่ากลัวเหมือน Android emulator)


8

ขึ้นอยู่กับสิ่งที่คุณหมายถึงโดย "เหตุผลทางเทคนิค"

พูดอย่างเคร่งครัดฉันไม่เชื่อว่ามีเหตุผลทางเทคนิคที่ iOS Apps ไม่สามารถพัฒนาบน Linux ได้ มันจะต้องมีบางองค์กรไม่ว่าจะเป็น Apple หรือกลุ่มแฮ็กเกอร์ที่กล้าได้กล้าเสีย / มีความสามารถในการเขียน toolchain สำหรับมัน (คอมไพเลอร์, บางที IDE, สิ่งที่จะได้รับบนโทรศัพท์)

ดังนั้นถ้าด้วย "เหตุผลทางเทคนิค" คุณหมายถึง "สิ่งที่พิเศษเกี่ยวกับ Macintosh ที่เป็นไปไม่ได้และอาจไม่มีอยู่บนแพลตฟอร์มอื่น" ถ้าอย่างนั้นก็ไม่ฉันไม่เชื่อว่ามี ตัวอย่างเช่นไม่มีชิปพิเศษใน Macintosh ที่จำเป็นสำหรับสิ่งนี้

ถ้าด้วย "เหตุผลทางเทคนิค" คุณหมายถึง "สิ่งที่ทำให้ฉันไม่สามารถทำมันได้ในวันนี้" ถ้าใช่แล้วรหัสบิตที่เซ็นชื่อทั้งหมดจะไม่มีอยู่บน Linux และถ้า Apple ไม่ทำเช่นนั้น


4

ฉันคิดว่ามันควรจะบอกว่าคุณสามารถพัฒนาสำหรับ iOS บนแพลตฟอร์มอื่น ๆ คุณไม่สามารถสร้างแอปพลิเคชันขั้นสุดท้ายกับพวกเขาได้

ได้รับการอธิบายในคำตอบที่ยอมรับแล้วว่าทำไมคุณไม่สามารถสร้างนอก OS X ได้ แต่มีเครื่องมือพัฒนามากมายที่ให้คุณเขียนแอพ iOS บนแพลตฟอร์มอื่น

เครื่องมือการพัฒนาบางอย่างที่ฉันใช้ซึ่งอนุญาตสิ่งนี้:

  • Qt Framework (C ++ และ Qml): แอปพลิเคชันสามารถเขียนได้ใน Windows หรือ Linux จากนั้นแอปพลิเคชัน iOS จะถูกสร้างขึ้นด้วย XCode บน OS X

  • Unity3D (C #, UnityScript และ Boo): คุณสามารถพัฒนาบน Windows และสร้าง iOS บนแพลตฟอร์มใดก็ได้ที่คุณสร้างโครงการ XCode นอกจากนี้ยังอนุญาตให้รวมกับ Objective-C รหัสอื่นเพิ่มเติม

  • Xamarin (C #): คุณสามารถพัฒนาบน Windows (และฉันเชื่อว่า Linux) และใช้เครื่อง OS X เป็นโฮสต์สร้าง

  • Kivy (Python): สร้างโครงการ XCode ด้วย

และคุณสามารถค้นหาโครงการอื่น ๆ อีกมากมายโดยเฉพาะอย่างยิ่งเมื่อคุณเริ่มมองหาเฟรมเวิร์กไฮบริดและเว็บแอพมือถือเช่น Appcelerator


0

ไม่มีเหตุผลทางเทคนิคเลยที่คุณจะไม่สามารถพัฒนาแอพพลิเคชั่น iOS บน linux ได้ ในความเป็นจริงมันเกิดขึ้นแล้วใน Windows ใน Delphi XE คุณสามารถพัฒนาแอพ iOS ได้ทั้งหมดใน windows สิ่งเดียวที่จำเป็นที่สุดคือแอปของคุณต้องลงชื่อ สามารถทำได้บน mac เท่านั้น


0

มีเหตุผลทางเทคนิคที่ Xcode จะไม่อนุญาตให้มีการพัฒนาแอพ iOS บนระบบอื่น

iOS คล้ายกับ OS X หลายวิธีเฟรมเวิร์กหลายตัวเหมือนกันหรือใกล้เคียงกันมาก iOS Simulator ใช้ประโยชน์จากสิ่งนี้เพื่อจัดเตรียมสภาพแวดล้อมการทดสอบที่รวดเร็วมาก เมื่อ Xcode คอมไพล์แอพให้ทำงานในเครื่องจำลองมันจะสร้าง x86 ไบนารีที่เชื่อมโยงกับเฟรมเวิร์กที่ส่วนใหญ่จะโยนลงไปที่เฟรมเวิร์ก OS X คุณจะพบกับ debug build ที่ทำงานบน Mac ของคุณซึ่งมีประสิทธิภาพยอดเยี่ยม

ถ้าคุณดูที่ Android มันจะสร้าง apks ที่เป็นอิสระจากแพลตฟอร์ม สิ่งนี้จะรันเครื่องเสมือนจริงที่รันทั้ง Android stack เพื่อให้คุณสามารถดีบักได้ มีอีมูเลเตอร์ที่เร็วกว่าตัวอื่น ๆ แต่ทั้งหมดนั้นช้ากว่าตัวจำลอง ประโยชน์คือว่าพวกเขาเป็นแพลตฟอร์มข้าม

เพื่อให้ Apple อนุญาตให้แอป iOS ถูกสร้างขึ้นบนระบบอื่นพวกเขาอาจต้องโอนย้ายเฟรมเวิร์กไปยังระบบปฏิบัติการเหล่านั้นเพื่อให้พวกเขาสามารถเขียนโปรแกรมจำลองหรือต้องสร้างตัวจำลอง หนึ่งในนั้นอาจเป็นชิ้นงานที่ต้องใช้เวลาในการสร้างคุณลักษณะใหม่


0

ในขณะที่คุณไม่สามารถลงทะเบียนแอปพลิเคชันสำหรับ iOS บน Linux และกระจายผ่านวิธีที่ได้รับการยอมรับคุณสามารถพัฒนา (ด้วย API เดียวกัน) บน Linux โดยใช้ Theos นี่คือ toolchain ที่ชุมชนแหกคุกใช้พัฒนาแอพสำหรับ iOS และเป็นแพลตฟอร์มข้ามแพลตฟอร์ม หากอุปกรณ์ iOS ของคุณถูกเจลเบรคเราเชื่อว่าคุณจะสามารถผลักดันแอปพลิเคชันที่คอมไพล์ไปยังอุปกรณ์ของคุณผ่านทาง libimobiled แต่ใครบางคนอาจแก้ไขฉันได้หากฉันผิด

ข้อมูลเพิ่มเติม: http://iphonedevwiki.net/index.php/Theos

ฉันวางแผนที่จะออกเดินทางในวันถัดไปและฉันจะให้การอัปเดต


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