리눅스에서 아이폰 앱 개발을 시작 하시나요? [닫은]


529

iPhone 앱을 개발하려면 Mac이 필요하다고 들었습니다. 이것이 사실입니까?

Linux를 사용하여 iPhone 앱을 개발할 수 있습니까? 그렇다면 필요한 것은 무엇이며 필요한 도구는 어디에서 다운로드합니까?



2
누군가이 s / Linux / unix를 편집하여 일반화 할 수 있습니까?
좋은 사람

5
@GoodPerson 그렇다면 OS X와 ​​다른 OS 사이의 경계가 모호해질 것입니다.이 질문에 관한 것입니다.
Mr Lister

2
내가 찾은 가장 중요한 정보 중 하나입니다. 절대적으로 주제에 대해 말하고 싶습니다 ...
Marco Faustinelli

답변:


303

다른 응답을 제공하기 위해 Linux의 가상화 된 (VMware) 시스템에서 OS X 및 Xcode를 실행하고 있습니다. CPU는 Core2Quad (Q8800)이며 완벽하게 빠릅니다. USB를 통해 전화 자체로 디버깅하는 것처럼 Xcode / iPhone 개발이 완벽하게 작동하는 사전 구축 된 VM을 온라인에서 찾았습니다.

실제로 저를 많이 놀라게했지만 전혀 문제가 없었습니다.


11
따라서 접근 방식을 사용하여 iTunes에 서명하고 배포 할 수 있습니까?
Eldelshell

43
네-문제 없습니다. XCode를 사용하고 있으며 서명이 올바르게 작동합니다. 이제 VM에서 제출 된 상점에 프로덕션 앱이 있습니다. 나는 명백한 이유로 그것을 이름을 짓지 않을 것입니다.
카오스

18
@ 차오스 : 설정을 실행하는 데 사용한 것과 정확히 일치하는 링크를 게시 할 수 있습니까?
Glycan

4
사전 구축 된 VM을 신뢰할 수 있습니까? 나는 내장 된 범인의 소프트웨어, 백도어를 말은 ...
DummyBeginner

2
확인. 이것에 대한 나의 의견. 앱을 개발 한 후에는이 서비스를 사용하여 macincloud.com
Fabrizio Bertoglio

75

이에 대한 대답은 실제로 iPhone 스토어를 통해 배포되는 앱을 개발할지 여부에 달려 있습니다. 만약 당신이 "감옥 된"아이폰 군중을 위해 개발하는 것을 신경 쓰지 않는다면, 리눅스에서 개발하는 것이 가능하다.

수행해야 할 작업에 대한 포괄적 인 (조금 복잡한 경우) 가이드는이 장의 페이지를 확인하십시오.

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


26

지금까지는 사실 인 것 같습니다. Apple에서 제공하는 유일한 SDK는 MacOS 환경 만 대상으로합니다. 나는 그것에 대해 화가 났지만, 아이폰 개발을 위해 지금 맥을 사려고한다. 나는 그들이하는 일을 정말로 싫어하며 Linux 및 Windows와 같은 다른 환경에 좋은 SDK가 나오기를 바랍니다.

SDK와 관련된 장애물 :

iPhone SDK 및 무료 소프트웨어 : 일치하지 않습니다

애플은 최근 아이폰 용 소프트웨어 개발 키트 (SDK)를 출시했지만, 오리지널 오픈 소스 소프트웨어를 포팅하거나 개발하고 싶다면 뉴스가 좋지 않다. 코드 서명 및 비공개 조건으로 인해 무료 소프트웨어가 필요하지 않습니다.

SDK 자체는 무료로 다운로드 할 수 있으며 소프트웨어 시뮬레이터에서 프로그램을 작성하고 실행할 수 있습니다. 그러나 실제로 작성한 소프트웨어를 실제로 출시하려면 SDK 다운로드와 별도의 단계 및 Apple의 승인이 필요한 단계 인 iPhone 개발자 프로그램에 등록해야합니다.

나는 macos 사용자 만 휴대 전화 용 프로그램을 작성하기에 충분하다고 생각하는 것이 오히려 엘리트 주의자라고 생각하며, 물건을 게시하려면 100 달러 라이센스를 구입해야한다는 사실은 실제로 취미 프로그래머에게는 더 어려워집니다. 그것이 당신이해야 할 일이라면, 나는 그들의 농구를 뛰어 넘을 계획입니다. 나는 내 아이폰에서 개발 된 것들을 정말로 얻고 싶다.


9
이전에 말했듯이, 나는 그것이 잘못 된 엘리트주의라고 생각하지 않습니다. XCode와 다른 모든 개발 도구 (GCC와 같은 하위 수준 항목 제외)는 모든 iPhone 프레임 워크와 마찬가지로 Cocoa로 작성됩니다. 먼저이 모든 것을 다른 OS로 포팅해야합니다. 그것은 작은 일이 아닙니다.
Brad Larson

24
... 마이크로 소프트는 리눅스와 Mac 용 비주얼 스튜디오를 놓을 때 알려주세요
스티븐 달링턴에게

12
Microsoft가 Visual Studio, Access, Frontpage, XNA, DirectX, Office (모든 기능 포함), Movie Maker, Visio, IIS 또는 Mac / Linux 용 Exchange를 출시 할 때 알려주십시오.
Brock Woolf

97
(Dar) Wine에서 Visual Studio, Access, Frontpage, XNA, DirectX, Office, Movie Maker, Visio, IIS 또는 Exchange를 실행하기 위해 Microsoft가 EULA에 반하는 시점을 알려주십시오.
lfaraone

5
@MarceloMason 종류. 전체 IDE가 아닌 Visual Studio Code 입니다.
Stephen Darlington

20

로 사용 :이 결함을 해결하기 위해 최선을 다하고 프로젝트 아이폰 데브

iphone-dev 프로젝트의 목표는 ARM / Darwin 플랫폼을 기반으로하는 Apple iPhone 및 기타 임베디드 장치를 개발할 수있는 무료 휴대용 고품질 툴체인을 만드는 것입니다.


4
프로젝트는 사이트에서 정기적으로 개발 또는 유지 보수를 진행하지 않는 것 같습니다 (예 : 도구 / 이동성 구축에 대한 Wiki 항목은 2010 년 2 월부터입니다).
ely

4
@씨. F, 사실 죽었어.
Johan Boulé

13

대체 툴 체인에 관해 Saurik의 사이트는 유용하지만 최신 펌웨어 개발의 경우 iPhone 자체를 기반으로하고 있으며 필요한 iPhone 펌웨어 파일을 Linux 환경에 복사해야 할 수도 있음을 알 수 없습니다. 불가능하지는 않지만 특히 코드 서명을 위해 추가 작업이 필요합니다 (개방형 솔루션도 있습니다).

또한보다 체계적으로 접근하는 다른 가이드 (동일한 툴 체인 용)를 살펴보십시오.

Apple에 응용 프로그램을 제출할 때 문제가 발생하면 XCode에서 최종 빌드 및 코드 서명 및 패키징을 수행하는 것이 좋습니다 (다른 사람의 Mac을 빌릴 수도 있음). 대체 툴 체인을 사용하면 (적어도 Mac에서는) XCode 이외의 다른 IDE를 사용하여 응용 프로그램을 개발하고 시뮬레이터를 사용한 배포 및 테스트를 위해 XCode에 다시 의존 할 수 있습니다.

물론 XCode 외부의 명령 줄에서 코드 서명 / 인증서 생성이 작동하면 실제 iPhone에 인증서를 설치하고 테스트 할 수 있습니다 (인증서가있는 iTunes를 통해 응용 프로그램 설치).


7

iPhone 용 Linux에서 개발하는 것을 아는 유일한 방법은 Vmware를 설치하고 가상 시스템에서 OS X을 실행하는 것입니다. 그것으로 말하면 그렇게하는 데에는 "법적"문제가 있습니다. OS X 서버는 가상화 될 수 있지만, 내가 알지 못하는 개발 스토리까지는 가능합니다.

당신이 진심이라면, 그것이 제가 조사한 것입니다.

행운을 빕니다.


4
VMWare 옵션을 시도했지만 적어도 내 하드웨어 (T5200 Core2, 2M 램)에서 사용할 수 없을 정도로 느립니다. 내 친구도 비슷한 경험을했습니다.
Parand

3
나도. 천천히, 천천히, 천천히 당신은 시도하고 싶지도 않습니다.
Nosredna

5
@Parand 물론 2M 램에서는 속도가 느려질 것입니다.
Jeshurun ​​April

2
vmware 대신 VirtualBox를 사용해 볼 수 있습니다. 내 생각에는 VMWare가 부풀어 오른다.
Harindaka

5

당신은 사용할 수 있습니다 Tersus (오픈 소스), 그리고 당신은 Xcode 프로젝트로 응용 프로그램을 내보낼 수 있습니다.


Tersus Studio generates native iPhone applications in the form of Xcode projects that you can compile and sign using Apple's iPhone SDK.따라서 기본 iOS 앱을
준수

5

iPhone 또는 iPad에서 자동으로 발견되는 Linux 상자에 코드를 작성할 수 있지만 궁극적으로 코드를 테스트하거나 iPhone에 배포하거나 App Store에 제출하려면 Mac이 필요합니다. 따라서 궁극적으로 Mac이 필요하므로 Apple이 제공하는 모든 도구를 사용하여 Mac에서도 작업을 수행 할 수 있습니다. Monotouch와 같은 Xcode & Objective-C에 대한 대안이 있지만 Apple 도구도 활용합니다.

일부 작업으로 Linux의 VM에서 OS X를 실행할 수 있습니다. 그러나 OSX 사본을 구입하더라도 Apple 하드웨어에서만 실행할 수 있기 때문에 OSX 라이센스 계약을 위반하게됩니다.

이 소식을 전해 드려 죄송합니다. iPhone / iPad 주변의 생태계는 매우 엄격하게 통제됩니다.

편집 : 이것에 대한 한 가지 주요 예외는 iPhone 용 웹 응용 프로그램을 작성하는 것입니다. 기본 앱처럼 사용자 경험만큼이나 훌륭한 iPhone 용 웹 응용 프로그램이 있습니다. 그러나 귀하의 질문을 기본 앱 개발에 관한 것으로 해석했습니다. 웹 응용 프로그램은 사용자가 웹 응용 프로그램을 시작하기위한 아이콘을 만들 수 있지만 여전히 '제 2 류'시민입니다.


4
Mac에서 Linux를 실행하는 경우 가상화에서 Lion을 실행하는 것이 허용 될 수 있습니다.
Cajunluke

4

cjackeriOS clang 툴체인을 사용하여 Linux에서 iOS 앱을 빌드하는 데 성공 했습니다 . 기본적으로 Linux 배포판의 업스트림 clang 및 llvm 도구, Apple 링커의 Linux 포트 및 빌드 프로세스를 단순화하는 데 도움이되는 추가 도구 (예 : xcode 프로젝트를 Makefile 형식으로 변환)로 구성됩니다.

설치하는 데 몇 단계가 필요하지만 소프트웨어 개발자이므로 익숙 할 것입니다. 데비안 7 (Wheezy)의 최신 howto를 온라인으로 게시했습니다.

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

그렇지 않으면 조금 더 오래된 일반적인 지침을 따르고 싶습니다.

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

행운을 빕니다.


2

Rhodes 라는 프레임 워크가 있습니다 .

이 개념은 Ruby on Rails를 기반으로하며 Ruby 및 HTML로 모바일 앱을 개발하며 Linux 환경에서 코드를 작성할 수 있습니다. 그런 다음 Rhohub 에서 계정을 생성하면 ( GitHub를 통해 ) 코드를 추가 할 수 있으며 동일한 코드 를 사용하여 iPhone, Blackberry, Android, Windows Mobile 및 Symbian 용으로 컴파일 할 수 있습니다. iPhone 용 Objective-C 또는 Android 용 Java 등으로 코딩 할 필요가 없습니다. 변환이 자동으로 수행됩니다. iPhone 응용 프로그램 (또는 개발하려는 전화)을 만드는 규칙을 고수하면 iTunes (또는 동등한 시장)에서 받아 들일 수 있습니다.

이를 통해 iTunes에 앱을 추가 할 수도 있습니다.

그러나 에뮬레이터를 찾지 못했습니다. 즉, 앱을 테스트하려면 iPhone에 놓아야합니다. 미션입니다.

모든 전화 용 앱을 만들고 싶을 때이 옵션을 사용하고 있으며 이미 Ruby on Rails를 사용하고 있습니다. iPhone 용 앱을 만들고 싶다면 Mac에 투자하십시오.

도움이 되었기를 바랍니다.


1

당신은 맞습니다. 탈옥되지 않은 휴대폰은 Apple의 App Store로 제한되어 있으며 Apple은 규칙이없는 모든 권리를 갖습니다. 그러나 개발하는 동안 애플을 전혀 다룰 필요가 없습니다. 예를 들어 rsync를 사용하여 장치에 코드를 업로드하고 테스트 할 수 있습니다.


이 프로젝트는 Stephen Cox가 제시 한 문제를 극복합니까? ". 당신은 당신의 응용 프로그램은 엑스 코드 절대로을 사용하여 개발되어 있지 않은 경우 애플에 의해 승인되지 얻을 않을 것이다 당신은 리눅스에서 개발하기 위해 SDK를 해킹 할 애플은 알게합니다." 감사합니다
진정한 동안

libmobiledevice에는 실제로 iDevice에 rsync / ssh가 없어도 응용 프로그램을 설치할 수있는 적절한 인터페이스가 있습니다.
드와이트 스펜서

1

어느 정도는 가능합니다. Objective-C 코드를 입력하고 프로젝트를 설정할 수 있습니다. gcc로 코드의 C 및 C ++ 부분을 테스트 할 수도 있습니다.

할 수없는 것 :

  • Interface Builder를 사용하여 Mac 전용 인터페이스를 설정하십시오. 필수는 아니지만 권장됩니다.
  • Apple의 Cocoa 클래스를 사용하는 컴파일 코드-Linux에는 존재하지 않습니다.
  • 시뮬레이터의 테스트 코드-Linux 용 코드는 없습니다.
  • 실제 기기 또는 App Store 용 코드 컴파일-이 모든 것은 Apple이 OS X에만 제공하는 도구가 필요합니다.

수업이 존재하지 않는다고 말하면 무슨 뜻입니까? 헤더 만 있으면 Apple에서 어쨌든 링크 해줍니다. AFAIK는 앱 제출이 작동하는 방식입니다.
Janus Troelsen

1

Mac을 구해야합니다. Windows에서 i Phone 응용 프로그램을 실제로 작성하고 빌드 할 수있는 도구 체인 (예 : win-chain)이 있습니다. Windows에서 Objective C 코드를 빌드하기위한 여러 관련 학습서가 있습니다. 그러나 문제가 있습니다. 따라서 개발 된 앱은 Jail broken i Phone에서만 작동합니다.

우리는 그것을 극복하고 App Store로 가져가는 데 몇 가지 해킹을 보았지만 Apple이 SDK를 계속 업데이트함에 따라 툴 체인에는 정기적 인 업데이트가 필요합니다. 항상 앱을 만들려면 번거 롭습니다. 준비된 앱을 원한다면 합리적인 가격으로 앱을 시작하는 arcapps의 도움을받을 수도 있습니다. 아이폰 앱 개발


1

cocos2d-iphone을 GNUstep으로 포팅 하여 cocos2d 기반 게임 을 개발 하려고했습니다 . 그러나 게시하려면 Mac이 필요합니다. cocos2d-GNUstep .


0

iOS 시뮬레이터는 앱의 초기 단계에서 테스트하기에 훌륭하기 때문에 Mac을 얻는 것이 좋습니다. 그러나 저는 Unity를 사용하여 개발 한 소규모 회사가 Mac을 많이 필요로하지 않는다는 것을 알고 있습니다. 그렇게하면 사무실에 하나의 Mac 만 있으면되며 최종 빌드를 컴파일하는 것입니다. 또한 안드로이드에서 작동하지만 게임 엔진이기 때문에 건물에 따라 다릅니다. Sencha Touch Mobile과 같은 프레임 워크를 사용하여 웹 앱을 살펴볼 수 있습니다.

화합 : http://unity3d.com/ Sencha Touch : http://www.sencha.com/products/touch/


-5

시간을 소중히 생각한다면 Mac을 구입하십시오! 실행 가능한 솔루션을 제공하기 위해 Linux 개발 옵션에 대해 충분히 알지 못하지만 제안 된 방법에는 약간의 원형 작업이 필요합니다. iPhone 앱을 진지하게 작성하고 판매하려는 경우 Mac Mini 또는 Macbook의 비용을 쉽게 회수 할 수 있다고 생각합니다. :-)


4
이제 50,000 개의 앱이 있으므로 많은 것을 만드는 것이 쉽지는 않습니다. 샐러드 일이 끝났을 것입니다.
Nosredna

@ Nosredna 나는 샐러드 일이 다시 여기 에 있다고 믿는 것을 좋아 합니다. 그러나 진지하게, 당신이 옳습니다.
Wyatt8740

야, 만약 우리가 그것을위한 대안을 찾고 있다면, 하나를 구입할 수있는 옵션이 없기 때문이다.
Roger Russel

-5

Xcode를 사용하여 개발되지 않은 경우 Apple이 앱을 승인하지 않습니다. 못. 그리고 Linux에서 개발하기 위해 SDK를 해킹하고 Apple에서 알게 된 경우 서비스를 제공받을 때 놀라지 마십시오. 저는 ADC 및 iPhone 개발자 프로그램의 회원입니다. 신뢰, 애플은 이것에 대해 매우 진지합니다.

위험을 감수하지 마십시오 .Macbook 또는 Mac mini를 구입하십시오 (예를 들어 mini가 Xcode를 실행할 수는 있지만 미니와 함께 갈 경우 RAM을 증가시킵니다). 또한 OS X가 해킹되어 VMware에서 실행되는 것을 보았지만 VM에서 Xcode를 실행하는 사람은 없었습니다. 행운을 빈다 문제를 해결하기 전에 EULA를 확인하겠습니다.

추신 : 위의 내용을 읽은 후 동의합니다. SDK를 해킹하고 Linux에서 개발하면 적어도 Mac에서 최종 패키징을 수행하십시오. 그리고 Mac을 통해 제출하십시오. Apple은 코드를 한 줄씩 실행하지 않으므로 그 점을 알 것입니다. 그러나 사람, 그것은 많은 경우와 일입니다. 그래도 재미있게 보내십시오. :)


1
새로운 미니는이 작업에 적합합니다. 나는 그들이 약 600 달러라고 생각하고 거의 모든 마우스, 키보드 및 모니터를 사용할 수 있습니다. 모니터를 교정하십시오! XCode는 확장되지 않은 미니에서 잘 작동하는 것 같습니다.
Nosredna

7
Xcode는 Mac OS X 가상 머신에서 제대로 실행됩니다.
dave1010 April

2
Apple은 XCode와의 상호 작용없이 항상 Air SDK 앱을 승인합니다. linux / windows에서 전체 빌드를 수행 할 수 있습니다.
j_mcnally
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.