Linux 컴퓨터에서 iOS 앱을 개발할 수없는 기술적 이유가 있습니까?


23

Linux 컴퓨터에서 OS X 앱을 개발할 수없는 이유를 이해하지만 Linux에서 iPhone 및 iPad 앱을 개발할 수없는 좋은 기술적 이유가 있습니까? iOS 소스 코드를 iOS 실행 파일로 컴파일하여 Linux의 iOS 시뮬레이터에서 실행하거나 개발 iOS 장치에 설치할 수없는 이유는 무엇입니까?

XCode IDE가 Cocoa 애플리케이션이기 때문입니까?

모든 종류의 플랫폼에서 Android 앱을 개발할 수 있습니다. iOS에서도 같은 이유가 무엇인지 알 수 없습니다.


29
슬프게도이 질문에 대한 대답은 "아니오; 애플은 그렇게 말했을 것"이라고 생각합니다.
존 퍼디

11
"신성 모독"폐쇄 질문)
뮐러 토르스텐

1
참고로 "Mac Mini"기계를 구할 수 있습니다. 그것은 정말로 훌륭한 기계라는 것은 말할 것도없이 싸다.
Chiron

2
1982 년 @The 전설 : 나는 오해 미세 기계타임 머신 , 동시 보이쉬의 흥분과 애플의 경멸의 순간을 경험했다.
존 퍼디

@Jon Purdy Well Apple은 "Time Machine"과 "Time Capsule"을 제공합니다 :)
Chiron

답변:


17

Mac OS X은 계약 상 Apple Hardware에서만 실행할 수 있습니다. iOS에는 Cocoa 프레임 워크가 필요하며 키 체인에 서명하려면 Mac에 액세스 할 수 있어야합니다. OpenStep 라이브러리를 사용하여 Linux에서 Objective-C를 사용할 수는 있지만 올바른 Cocoa API 라이브러리가 없기 때문에 개발중인 애플리케이션을 iOS로 푸시 할 수 없으며 완전한 개발자와 키 체인 없이도 탈옥 된 디바이스로 푸시 할 수 있습니다 계정을 사용하여 해당 앱을 판매하거나 공개적으로 다운로드하려면 Apple의 규칙에 따라야합니다.


17
"Mac OS X은 합법적으로 Apple Hardware에서만 실행할 수 있습니다"– 제정신 법률 시스템에서 사실이라면 매우 놀랐습니다. 나는 알고 는있는 사실 아닌 마이크로 소프트가 같은 곡예를 당기려고 노력하기 때문에, 독일에서 사실, 사람들은 마이크로 소프트가 소송을 제기, 손실, 그것을 무시했습니다.
Jörg W Mittag

4
더 정밀하게하기 위해 "계약 상"으로 변경하겠습니다.
세계 엔지니어

3
계약 조건을 위반하면 기본적으로 지원 권한이 박탈됩니다. Apple은 훌륭한 고객 서비스를 제공하고자하며이를 수행하는 가장 간단한 방법은 처음부터 잘못 될 수있는 공간을 제한하는 것입니다. Apple 이외의 하드웨어에서 OS를 실행하고 있다면 스스로 운영하는 것입니다.
존 퍼디

@ JörgWMittag Microsoft는 어떻게 그렇게하려고 했습니까? 나는 마이크로 소프트가 하드웨어를 처음부터 만드는 것을 모른다.
Nadir Sampaoli

4
@NadirSampaoli : 독일에서 Microsoft는 Windows 라이센스 를 PC 빌더에게 매우 저렴한 가격으로 판매 하므로 OS가 없거나 번들로 제공되는 Linux가 설치된 PC에 비해 너무 많은 비용을 들이지 않고도 Windows와 PC를 번들로 묶을 수 있습니다. 이러한 라이센스는 PC에 사전 설치되어 있습니다. 그러나 PC 제조업체는 라이센스에 비해 막대한 이익을 얻지 만 Microsoft보다 훨씬 저렴한 가격으로 라이센스를 별도로 판매 할 수 있다는 것을 깨달았습니다 . Microsoft는 해당 라이센스를 해당 빌더의 PC에서만 사용할 수는 있었지만 분실했다고 주장했습니다.
Jörg W Mittag

17

특별한 기술적 이유는 없지만 Apple이 제공하는 개발자 도구는 Mac에서만 실행되며 변경하기 위해 서두르지 않습니다.

타사 개발자 도구와 관련하여 Apple은 공개적으로 도구를 싫어하고 App Store에 포함되는 것에 대한 Apple의 절대 거부권을 감안할 때 도구를 만들고 사용하는 데 상당한 개발 시간을 투자하는 것은 좋은 생각이 아닙니다.

(개발 도구 중 하나 인 iOS 시뮬레이터 건전한 기술적 인 이유로 MacOS X와 ​​매우 밀접한 관련이 있습니다. AFAIK는 실제로 iOS와 매우 유사한 MacOS X API 사이의 얇은 래퍼입니다. 처음부터 다시 시작해야하며 Android 에뮬레이터처럼 개가 느리고 끔찍한 것으로 끝날 것입니다.)


8

"기술적 인 이유"의 의미에 따라 다릅니다.

엄밀히 말하면 iOS 앱을 Linux에서 개발할 수 없었던 기술적 이유가 있다고 생각하지 않습니다. 애플이나 진취적인 해커 그룹과 같은 툴체인을위한 툴체인 (컴파일러, IDE, 전화로 가져갈 수있는 무언가)을 작성하려면 엔티티가 필요합니다.

"기술적 인 이유"가 "매킨토시에서 불가능하고 다른 플랫폼에 존재하지 않았을 수있는 특별한 것"을 의미한다면, 아닙니다. 예를 들어, Macintosh에는 특별한 칩이 필요하지 않습니다.

"기술적 인 이유"라는 말이 "오늘 내가 그것을 할 수 없게 만드는 것"을 의미한다면, 서명 된 전체 코드 비트는 Linux에 존재하지 않으며 Apple이 그것을 포팅하지 않는 한 그것은 공 게임입니다.


4

다른 플랫폼에서 iOS를 위해 개발할 수 있다고 말해야하며 최종 애플리케이션 을 빌드 할 수는 없습니다 .

허용 된 답변에서 OS X 외부에서 빌드 할 수없는 이유에 대해 설명했지만 다른 플랫폼에서 iOS 앱을 작성할 수있는 많은 개발 도구가 있습니다.

내가 사용한 몇 가지 개발 도구는 다음과 같습니다.

  • Qt 프레임 워크 (C ++ 및 Qml) : 응용 프로그램은 Windows 또는 Linux로 작성 될 수 있으며 iOS 응용 프로그램은 OS X의 XCode로 빌드됩니다.

  • Unity3D (C #, UnityScript 및 Boo) : Windows에서 개발하고 XCode 프로젝트를 생성하는 플랫폼 중 하나에서 iOS를 빌드 할 수 있습니다. 또한 다른 Objective-C 코드와의 추가 통합이 가능합니다.

  • Xamarin (C #) : Windows에서 개발할 수 있으며 Linux를 믿고 OS X 시스템을 빌드 호스트로 사용할 수 있습니다.

  • Kivy (Python) : XCode 프로젝트도 생성합니다.

특히 Appcelerator와 같은 하이브리드 및 모바일 웹 앱 프레임 워크를 살펴보면 이와 같은 더 많은 프로젝트를 찾을 수 있습니다 .


0

리눅스에서 iOS 애플리케이션을 개발할 수 없다는 기술적 인 이유는 없습니다. 사실 그것은 이미 Delphi XE의 창에서 발생합니다. 거기에서 iOS 앱을 완전히 창에서 개발할 수 있습니다. 결국 필요한 유일한 것은 앱에 서명해야한다는 것입니다. 이것은 Mac에서만 가능합니다.


0

Xcode가 다른 시스템에서 iOS 앱을 개발할 수없는 기술적 이유가 있습니다.

iOS는 여러면에서 OS X와 ​​비슷합니다. 많은 프레임 워크가 동일하거나 매우 가깝습니다. iOS 시뮬레이터는이를 사용하여 매우 빠른 테스트 환경을 제공합니다. Xcode는 시뮬레이터에서 실행되도록 앱을 컴파일 할 때 주로 OS X 프레임 워크에 영향을주는 프레임 워크와 연결되는 x86 바이너리를 만듭니다. 결국 Mac에서 기본적으로 실행되는 디버그 빌드로 인해 성능이 뛰어납니다.

Android를 살펴보면 플랫폼 독립적 인 APK를 생성 한 다음 Android 에뮬레이터 또는 다른 에뮬레이터에서 에뮬레이션합니다. 이것은 당신이 디버깅 할 수 있도록 전체 안드로이드 스택을 실행하는 가상 머신을 실행합니다. 다른 것보다 빠른 에뮬레이터가 있지만 모두 시뮬레이터보다 훨씬 느립니다. 그러나 이점은 플랫폼 간입니다.

Apple이 다른 시스템에서 iOS 앱을 빌드 할 수 있도록하려면 프레임 워크를 해당 OS로 이식하여 시뮬레이터를 작성하거나 에뮬레이터를 빌드해야합니다. 이 중 하나는 새로운 기능을 구축하는 데 시간이 걸리는 작업 일 것입니다.


0

Linux에서 iOS 용 애플리케이션에 서명 할 수 없으므로 승인 된 메소드를 통해 애플리케이션을 배포 할 수 있지만 Theos를 사용하여 Linux에서 (동일한 API로) 개발할 수 있습니다. 이것은 탈옥 커뮤니티가 iOS 용 앱을 개발하는 데 사용하는 툴체인이며, 플랫폼 간입니다. iOS 기기가 탈옥 된 경우 libimobiledevice를 통해 컴파일 된 응용 프로그램을 기기로 푸시 할 수 있다고 생각하지만 내가 틀렸다면 누군가 나를 바로 잡을 수 있습니다.

추가 정보 : http://iphonedevwiki.net/index.php/Theos

나는 다음 날쯤에 이것을 할 계획이며 업데이트를 제공 할 것입니다.


1
업데이트하십시오!
Kyle Strand
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.