Bắt đầu phát triển ứng dụng iPhone trong Linux? [đóng cửa]


529

Tôi đã nghe nói rằng bạn cần có máy Mac nếu muốn phát triển ứng dụng iPhone. Điều này có đúng không?

Có thể phát triển ứng dụng iPhone bằng Linux không? Nếu có, tôi cần gì và tải xuống các công cụ cần thiết ở đâu?



2
ai đó có thể chỉnh sửa s / Linux / unix này để khái quát nó không?
Người tốt

5
@ GoodPerson Sau đó, bạn sẽ làm mờ ranh giới giữa OS X và các HĐH khác, đó là câu hỏi này là gì.
Ông Lister

2
một trong những thông tin quan trọng nhất mà tôi từng tìm thấy. hoàn toàn trong chủ đề, tôi muốn nói ...
Marco Faustinelli 20/07/18

Câu trả lời:


303

Để cung cấp một phản hồi khác nhau, tôi đang chạy OS X và Xcode trên máy ảo (VMware) trên Linux. CPU là Core2Quad (Q8800), và nó hoàn toàn nhanh. Tôi đã tìm thấy một máy ảo dựng sẵn trực tuyến (tôi sẽ để nó cho bạn tìm) Phát triển Xcode / iPhone hoạt động hoàn hảo, cũng như gỡ lỗi qua USB vào chính điện thoại.

Nó thực sự làm tôi ngạc nhiên rất nhiều - nhưng tôi không có vấn đề gì cả.


11
Vì vậy, bằng cách sử dụng phương pháp của bạn, bạn có thể ký và phân phối nó trên iTunes không?
Eldelshell

43
Đúng - không có vấn đề. Bạn đang sử dụng XCode, việc ký kết hoạt động tốt, giờ tôi đã có một ứng dụng sản xuất trên cửa hàng, được gửi từ VM. Tôi sẽ không đặt tên cho nó vì lý do rõ ràng.
Hỗn loạn

18
@Chaos: Bạn có thể vui lòng gửi liên kết đến chính xác những gì bạn đã sử dụng để thiết lập của bạn chạy không?
Glycan

4
Một VM dựng sẵn có thể được tin cậy? Ý tôi là phần mềm thủ phạm nhúng,
backtime

2
Đồng ý. Ý kiến ​​của tôi về điều này. Khi bạn đã phát triển ứng dụng, bạn có thể sử dụng dịch vụ này để xuất bản macincloud.com
Fabrizio Bertoglio

75

Câu trả lời cho điều này thực sự phụ thuộc vào việc bạn có muốn phát triển ứng dụng sau đó được phân phối thông qua cửa hàng iPhone hay không. Nếu bạn không và không ngại phát triển cho đám đông iPhone "đã bẻ khóa" - thì có thể phát triển từ Linux.

Kiểm tra trang của chap này để biết hướng dẫn toàn diện (nếu hơi phức tạp) về những việc cần làm:

http://www.saurik.com/id/4


26

Nó dường như là sự thật cho đến nay. SDK duy nhất có sẵn từ Apple chỉ nhắm vào môi trường MacOS. Tôi đã rất buồn về điều đó, nhưng tôi đang tìm mua một chiếc mac bây giờ, chỉ để phát triển iPhone. Tôi thực sự không thích những gì họ đang làm và tôi hy vọng một SDK tốt sẽ xuất hiện cho các môi trường khác, chẳng hạn như Linux và Windows.

Những trở ngại liên quan đến SDK:

IPhone SDK và phần mềm miễn phí: không phải là đối sánh

Gần đây, Apple đã phát hành một bộ công cụ phát triển phần mềm (SDK) cho iPhone, nhưng nếu bạn hy vọng chuyển hoặc phát triển phần mềm nguồn mở ban đầu với nó, thì tin tức không tốt. Việc ký mã và các điều kiện không tiết lộ làm cho phần mềm miễn phí trở nên dễ dàng.

Bản thân SDK là một bản tải xuống miễn phí, trong đó bạn có thể viết chương trình và chạy chúng trên trình giả lập phần mềm. Nhưng để thực sự phát hành phần mềm bạn đã viết, bạn phải đăng ký Chương trình dành cho nhà phát triển iPhone - một bước tách biệt với việc tải xuống SDK và một phần mềm cần có sự chấp thuận của Apple.

Tôi nghĩ rằng họ khá tinh hoa khi nghĩ rằng chỉ người dùng macos mới đủ khả năng viết chương trình cho điện thoại của họ và thực tế bạn cần mua giấy phép 100 đô la nếu bạn muốn xuất bản nội dung của mình, thực sự gây khó khăn hơn cho lập trình viên sở thích. Mặc dù, nếu đó là những gì bạn cần làm, tôi dự định nhảy qua vòng của họ; Tôi thực sự muốn có một số thứ được phát triển trên iPhone của tôi.


9
Như đã nói trước đây, tôi không nghĩ đó là lỗi tinh hoa ở đây. XCode và tất cả các công cụ phát triển còn lại (ngoại trừ các mục cấp thấp như GCC) được viết bằng Ca cao, cũng như tất cả các khung iPhone. Trước tiên, họ cần chuyển tất cả điều này sang các HĐH khác. Đó không phải là nhiệm vụ nhỏ.
Brad Larson

24
Hãy cho tôi biết khi Microsoft phát hành Visual Studio cho Linux và Mac ...
Stephen Darlington

12
Hãy cho tôi biết khi Microsoft phát hành Visual Studio, Access, Frontpage, XNA, DirectX, Office (với tất cả các tính năng), Movie Maker, Visio, IIS hoặc Exchange cho Mac / Linux.
Brock Woolf

97
Hãy cho tôi biết khi Microsoft hợp tác với EULA để chạy Visual Studio, Access, Frontpage, XNA, DirectX, Office, Movie Maker, Visio, IIS hoặc Exchange in (Dar) Wine.
lfaraone

5
@MarceloMason Loại. Đó là Visual Studio Code , không phải IDE đầy đủ.
Stephen Darlington

20

Đã từng có một dự án dành riêng để giải quyết khiếm khuyết này: iphone-dev

Mục tiêu của dự án iphone-dev là tạo ra một chuỗi công cụ miễn phí, di động, chất lượng cao để cho phép phát triển cho iPhone của Apple và các thiết bị nhúng khác dựa trên nền tảng ARM / Darwin.


4
Dự án dường như không được phát triển hoặc bảo trì thường xuyên từ trang web (ví dụ: các mục nhập Wiki về xây dựng công cụ / tính di động là từ tháng 2 năm 2010).
ely

4
@Ông. F, quả thực là nó đã chết.
Johan Boulé

13

Về chuỗi công cụ thay thế, trang web của Saurik rất hữu ích nhưng đối với sự phát triển phần sụn mới nhất, anh ta chỉ ra việc xây dựng trên chính iPhone và không cho biết rằng bạn có thể cần phải sao chép các tệp phần sụn iPhone cần thiết vào môi trường Linux của mình. Điều đó không phải là không thể, nhưng chỉ cần có thêm công việc, đặc biệt là để ký mã (cũng có các giải pháp thay thế mở).

Ngoài ra, hãy xem các hướng dẫn khác (cho cùng một chuỗi công cụ) tiếp cận nó một cách có phương pháp hơn.

Tôi đề nghị vẫn thực hiện việc xây dựng và ký mã và đóng gói mã cuối cùng trong XCode (có thể có nghĩa là mượn máy Mac của ai đó) trong trường hợp bạn gặp vấn đề khi gửi ứng dụng cho Apple. Sử dụng chuỗi công cụ thay thế sẽ mở ra (ít nhất là trên Mac) khả năng sử dụng các IDE khác ngoài XCode để phát triển ứng dụng và một lần nữa dùng đến XCode để triển khai và thử nghiệm với trình giả lập.

Tất nhiên, nếu bạn nhận được việc tạo mã / tạo chứng chỉ làm việc từ dòng lệnh bên ngoài XCode thì bạn có thể cài đặt chứng chỉ trên iPhone thực tế của mình và kiểm tra tại đó (cài đặt ứng dụng qua iTunes với chứng chỉ của bạn).


7

Cách duy nhất tôi biết để thực hiện phát triển Linux cho iPhone là cài đặt Vmware và làm việc để OS X chạy trong máy ảo. Với điều đó nói rằng có một số mối quan tâm "hợp pháp" trong việc đó. Có thông tin rằng OS X Server có thể được ảo hóa nhưng theo như câu chuyện phát triển mà tôi không biết.

Nếu bạn thực sự nghiêm túc, đó là những gì tôi sẽ điều tra.

Chúc may mắn.


4
Tôi đã thử tùy chọn VMWare và ít nhất là trên phần cứng của tôi (T5200 Core2, ram 2M), nó chậm một cách khó tin. Bạn tôi đã có một kinh nghiệm tương tự.
Parand

3
Tôi cũng vậy. Chậm, chậm, chậm. Bạn thậm chí không muốn thử.
Nosredna

5
@Parand Tất nhiên là nó sẽ chậm trên ram 2M, tôi ngạc nhiên khi nó khởi động!
Jeshurun

2
Bạn có thể muốn dùng thử VirtualBox thay vì vmware. VMWare quá phình to theo ý kiến ​​của tôi.
Harindaka

5

Bạn có thể sử dụng Tersus (mã nguồn mở) và nó cho phép bạn xuất ứng dụng dưới dạng dự án Xcode.


Tersus Studio generates native iPhone applications in the form of Xcode projects that you can compile and sign using Apple's iPhone SDK.Vì vậy, nó sẽ không thể tuân thủ và ký một ứng dụng iOS gốc
MarSoft

5

Bạn có thể viết mã trên hộp Linux mà cuối cùng sẽ tự tìm thấy trên iPhone hoặc iPad, nhưng cuối cùng bạn sẽ cần máy Mac để kiểm tra hoặc triển khai mã cho iPhone hoặc gửi mã đến cửa hàng Ứng dụng. Vì vậy, cuối cùng bạn cũng cần máy Mac, vì vậy bạn cũng có thể thực hiện công việc trên máy Mac, với tất cả các công cụ mà Apple cung cấp. Có những lựa chọn thay thế cho Xcode & Objective-C, chẳng hạn như Monotouch - nhưng chúng cũng sử dụng các công cụ của Apple.

Bạn có thể với một số công việc chạy OS X trong VM trên Linux. Tuy nhiên tôi nên chỉ ra rằng điều này sẽ phá vỡ thỏa thuận cấp phép OSX, ngay cả khi bạn mua bản sao OSX - vì nó chỉ được cấp phép để chạy trên phần cứng của Apple.

Xin lỗi để cung cấp cho bạn tin tức này - hệ sinh thái xung quanh iPhone / iPad được kiểm soát rất chặt chẽ.

EDIT: Một ngoại lệ chính cho điều này là viết một ứng dụng web cho iPhone. Có một số ứng dụng web tuyệt vời dành cho iPhone gần như trải nghiệm người dùng như ứng dụng gốc. Tuy nhiên tôi đã giải thích câu hỏi của bạn là về phát triển ứng dụng gốc. Các ứng dụng web, mặc dù người dùng có thể tạo biểu tượng để khởi chạy chúng - vẫn là công dân 'hạng hai'.


4
Mặc dù có thể cho phép chạy Lion trong ảo hóa nếu bạn đang chạy Linux trên máy Mac.
Cajunluke

4

Tôi đã thành công trong việc xây dựng các ứng dụng iOS trên linux bằng cách sử dụng chuỗi công cụ clang iOS của cjacker . Về cơ bản, nó bao gồm các công cụ clang và llvm ngược dòng từ bản phân phối linux của bạn, một cổng linux của trình liên kết apple và một số công cụ bổ sung để giúp đơn giản hóa quá trình xây dựng (như chuyển đổi các dự án xcode sang định dạng Makefile).

Phải mất vài bước để cài đặt, nhưng bạn là nhà phát triển phần mềm nên bạn sẽ quen với điều đó. Tôi đã đăng một bản cập nhật hướng dẫn cho Debian 7 (Wheezy) trực tuyến:

http://www.ninthavenue.com.au/how-to-build-an-ios-toolchain-for-linux-debian-7

Nếu không, bạn muốn thực hiện theo các hướng dẫn chung cũ hơn một chút:

http://code.google.com.vn/p/ios-toolchain-basing-on-clang-for-linux/wiki/HowTo_en

Chúc may mắn.


2

Có một khung gọi là Rhodes .

Khái niệm này dựa trên Ruby on Rails và bạn phát triển ứng dụng di động của mình bằng Ruby và HTML và bạn có thể viết mã của mình trong môi trường Linux. Sau đó, bạn có thể tạo một tài khoản tại Rhohub , nơi bạn thêm mã (thông qua GitHub ) và cho phép bạn biên dịch nó cho iPhone, Blackberry, Android, Windows Mobile và Symbian, tất cả cùng một mã. Bạn không phải viết mã trong Objective-C cho iPhone, cũng không phải Java cho Android, v.v. Nó thực hiện các chuyển đổi cho bạn. Tất cả những gì bạn cần làm là tuân thủ Quy tắc tạo ứng dụng iPhone (hoặc Điện thoại bạn muốn phát triển) để có thể chấp nhận ứng dụng này tại iTunes (hoặc thị trường tương đương).

Điều này cũng sẽ cho phép bạn thêm ứng dụng vào iTunes.

Tôi chưa tìm thấy bất kỳ trình giả lập nào, tuy nhiên, điều đó có nghĩa là để kiểm tra ứng dụng của bạn, bạn cần đưa nó lên iPhone, đây là một nhiệm vụ.

Tôi đang sử dụng tùy chọn này vì tôi muốn tạo ứng dụng cho tất cả các điện thoại và tôi đã sử dụng Ruby on Rails. Nếu bạn chỉ muốn tạo một ứng dụng cho iPhone, thì hãy đầu tư vào máy Mac.

Hi vọng điêu nay co ich.


1

Các điện thoại không jailbreak đúng của bạn được giới hạn trong cửa hàng Ứng dụng của Apple và Apple "có quyền" thực thi bất kỳ quy tắc nào, đó là lãnh thổ hoàn toàn không có quyền. Tuy nhiên, trong khi phát triển, người ta sẽ không phải đối phó với Apple. Bạn có thể sử dụng ví dụ rsync để tải mã lên thiết bị và kiểm tra nó.


Dự án này có khắc phục được vấn đề mà Stephen Cox đã trình bày không? "Bạn sẽ không bao giờ được ứng dụng của mình chấp thuận nếu Apple không được phát triển bằng Xcode. Không bao giờ. Và nếu bạn hack SDK để phát triển trên Linux và Apple phát hiện ra" Cảm ơn
trong khi đúng vào

libmobiledevice thực sự có một giao diện tốt để cài đặt các ứng dụng mà không cần rsync / ssh trên iDevice.
Dwight Spencer

1

Ở một mức độ nhất định, có, nó có thể. Bạn có thể nhập mã Objective-C và thiết lập các dự án của bạn. Bạn thậm chí có thể kiểm tra các phần C và C ++ trong mã của mình bằng gcc.

Những gì bạn không thể làm:

  • Sử dụng Trình tạo giao diện để thiết lập giao diện của bạn, vì nó chỉ dành cho máy Mac. (Không bắt buộc, nhưng được khuyến nghị.)
  • Biên dịch mã sử dụng các lớp Cacao của Apple - chúng không tồn tại trên Linux.
  • Mã kiểm tra trong Trình mô phỏng - không có mã nào cho Linux.
  • Biên dịch mã cho các thiết bị thực hoặc cho App Store - tất cả điều này đòi hỏi các công cụ mà Apple chỉ cung cấp cho OS X.

Khi bạn nói rằng các lớp không tồn tại, bạn có ý gì? Tôi chỉ cần các tiêu đề, Apple sẽ liên kết nó cho tôi nào. Đó là cách trình ứng dụng hoạt động, AFAIK.
Janus Troelsen

1

Bạn cần phải có mac cho nó. Có một số chuỗi công cụ có sẵn (như chuỗi win) thực sự cho phép bạn viết và xây dựng các ứng dụng i Phone trên windows. Có một số hướng dẫn liên quan để xây dựng mã Objective C trên Windows. Nhưng có một vấn đề, các ứng dụng do đó được phát triển sẽ chỉ hoạt động trên Bẻ khóa i Điện thoại.

Chúng tôi đã thấy một số hack để vượt qua điều đó và đưa nó lên App Store, nhưng khi Apple tiếp tục cập nhật SDK, chuỗi công cụ cần cập nhật thường xuyên. Đó là một rắc rối để làm cho nó luôn luôn. Nếu bạn muốn có ứng dụng sẵn sàng, bạn cũng có thể nhận trợ giúp từ arcapps ra mắt ứng dụng với giá cả hợp lý. phát triển ứng dụng iphone


1

Tôi đã cố gắng chuyển cocos2d-iphone sang GNUstep để bạn có thể Phát triển trò chơi dựa trên cocos2d. Tuy nhiên để xuất bản bạn cần một máy mac. cocos2d-GNUstep .


0

Tôi khuyên bạn nên tải mac vì trình giả lập ios rất tuyệt vời để thử nghiệm trong giai đoạn đầu của ứng dụng. Nhưng tôi biết một công ty nhỏ mà chúng tôi hợp tác phát triển bằng Unity để họ không cần tải mac. Bằng cách đó, họ chỉ cần một máy mac cho văn phòng và đó chỉ là để biên dịch bản dựng cuối cùng. Nó cũng có nghĩa là nó hoạt động trên Android nhưng nó thực sự phụ thuộc vào tòa nhà của bạn bởi vì nó là một công cụ trò chơi. Bạn có thể muốn xem xét các ứng dụng web bằng các khung như Sencha Touch Mobile

Thống nhất: http://unity3d.com/ Sencha Touch: http://www.sencha.com/products/touch/


-5

Nếu bạn coi trọng thời gian của mình, hãy mua máy Mac! Tôi không biết đủ về các tùy chọn phát triển Linux để cung cấp một giải pháp khả thi, nhưng có vẻ như các phương pháp được đề xuất liên quan đến một số công việc vòng xoay đẹp. Nếu bạn có kế hoạch nghiêm túc viết và bán ứng dụng iPhone, tôi nghĩ bạn có thể dễ dàng thu lại chi phí của Mac Mini hoặc Macbook. :-)


4
Bây giờ có khoảng 50.000 ứng dụng, không nhất thiết phải kiếm được nhiều tiền. Salad ngày có lẽ không còn nữa.
Nosredna

@Nosredna Tôi cho một người thích tin ngày salad lại ở đây. Nhưng nghiêm túc, bạn đúng.
Wyatt8740

Anh bạn, nếu chúng tôi đang tìm kiếm một sự thay thế cho nó, đó là vì mua một cái không phải là một lựa chọn có sẵn.
Roger Russel

-5

Bạn sẽ không bao giờ nhận được ứng dụng của mình được Apple chấp thuận nếu ứng dụng không được phát triển bằng Xcode. Không bao giờ. Và nếu bạn hack SDK để phát triển trên Linux và Apple phát hiện ra, đừng ngạc nhiên khi bạn được phục vụ. Tôi là thành viên của chương trình ADC và nhà phát triển iPhone. Tin tưởng, Apple rất nghiêm túc về điều này.

Đừng mạo hiểm, Mua Macbook hoặc Mac mini (vâng, mini có thể chạy Xcode - mặc dù chậm - tăng RAM nếu bạn đi với mini). Ngoài ra, trong khi tôi thấy OS X bị hack để chạy trên VMware, tôi chưa từng thấy ai chạy Xcode trên VM. Vậy thì chúc may mắn. Và tôi sẽ kiểm tra EULA trước khi bạn gặp rắc rối.

PS: Sau khi đọc phần trên, tôi đồng ý Nếu bạn hack SDK và phát triển trên Linux ít nhất là thực hiện việc đóng gói cuối cùng trên máy Mac. Và gửi nó qua máy Mac. Apple không chạy qua từng dòng mã nên tôi nghi ngờ họ sẽ nắm bắt được điều đó. Nhưng bạn ơi, đó là rất nhiều nếu và công việc. Hãy vui vẻ để làm mặc dù. :)


1
Minis mới là tốt cho nhiệm vụ. Tôi nghĩ rằng chúng có giá khoảng 600 đô la và bạn có thể sử dụng bất kỳ con chuột, bàn phím và màn hình nào. Hãy chắc chắn để hiệu chỉnh màn hình! XCode dường như chạy khá tốt trên chiếc mini chưa được mở rộng của tôi.
Nosredna

7
Xcode chạy tốt trong máy ảo Mac OS X.
dave1010

2
Apple chấp thuận các ứng dụng Air SDK mọi lúc, không tương tác với XCode. Bạn có thể thực hiện toàn bộ quá trình xây dựng trên linux / windows.
j_mcnally
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.