programing

이제 iPhone에서 MonoTouch가 금지됩니까?

copysource 2023. 6. 4. 17:53
반응형

이제 iPhone에서 MonoTouch가 금지됩니까?

John Gruber의 최근 게시물은 다음과 같은 법률 용어에 주목합니다.

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.

다음과 같이 수정되었습니다.

3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs. Applications must be originally written in Objective-C, C, C++, or JavaScript as executed by the iPhone OS WebKit engine, and only code written in C, C++, and Objective-C may compile and directly link against the Documented APIs (e.g., Applications that link to Documented APIs through an intermediary translation or compatibility layer or tool are prohibited).

그리고 다음과 같은 관찰을 합니다.

제가 이 새로운 언어에 대해 읽은 바로는 어도비의 다가오는 Flash Professional CS5 릴리스에 있는 Flash-to-iPhone 컴파일러와 같은 교차 컴파일러가 금지되어 있다는 것입니다.또한 C# 및 .NET 앱을 iPhone에 컴파일하는 도구인 MonoTouch를 사용하여 컴파일된 앱도 금지됩니다.

이것은 사실 IP 전화에 모노터치 사용을 금지합니까?

업데이트 -

이것은 최근에 바뀌었습니다.MonoTouch는 더 이상 계약과 충돌하지 않아야 합니다.아래의 모든 진술은 순전히 역사적인 것입니다!

예, 원본 애플리케이션이 C#으로 작성된 경우 라이센스를 위반하는 것이라는 것은 라이센스 계약에서 매우 분명해 보입니다.

...애플리케이션은 iPhone OS WebKit 엔진에서 실행되는 Objective-C, C, C++ 또는 JavaScript로 작성되어야 합니다.

그들은 심지어 조금 더 멀리까지 그것을 때립니다.

중간 번역 또는 호환성 계층 또는 도구를 통해 Documented API에 연결하는 애플리케이션은 금지됩니다.

좀 아쉽긴 하지만, MonoTouch와 Flash CS5 -> iPhone 컨버터는 매우 멋집니다.

업데이트:

Apple은 iOS용 언어 및 라이브러리에 대한 모든 기술 요구 사항을 (거의) 철회했으므로 MonoTouch는 의심할 여지 없이 실행 가능한 솔루션입니다.Apple의 발표를 참조하십시오.


여기에 있는 대부분의 사람들은 단순히 애플의 문서를 그대로 받아들여 "네, 금지되었습니다."라고 말하기를 원합니다.제 관점은 이렇습니다. 현재로서는 아무도 MonoTouch가 금지될 지 여부를 알지 못합니다. 그 이유를 설명하겠습니다.

Apple 계약 버전 3(최신 버전이 아닌 이전 버전)에서는 Apple이 제공하는 것 이외의 다른 프레임워크를 사용하여 애플리케이션을 개발하는 것은 불법이라고 명시하고 있습니다.

3.3.2 애플리케이션은 플러그인 아키텍처를 사용하거나 다른 프레임워크, 다른 API 또는 기타 API를 호출하는 것을 포함하여 어떠한 방법으로도 다른 실행 코드를 설치하거나 실행할 수 없습니다.Apple의 Documented API 및 내장 인터프리터에 의해 해석 및 실행되는 코드를 제외하고 응용 프로그램에서 해석된 코드를 다운로드하거나 사용할 수 없습니다.http://adcdownload.apple.com/iphone/iphone_sdk_3.2__final/iphone_sdk_agreement.pdf

2.x 이후로 실제로 그러했지만 Apple은 정확히 그렇게 하는 애플리케이션을 수락하는 데 문제가 없습니다.예를 들어, ALLEA 게임은 루아 스크립트를 사용하고, 많은 사람들이 아이폰이 기본이 아닌 외부 라이브러리를 사용합니다.아이폰에 이러한 네이티브 API가 있을 때도 애플은 SQLite와 같은 다른 버전의 애플리케이션을 받아들이는 데 문제가 없었습니다.

제 요점은 지금 "네, 그들은 금지될 것입니다"라고 말하는 것은 단순히 너무 이르다는 것입니다.이 시점에서 유일하게 분명한 것은 Apple이 실제로 앱을 금지하는 데 사용할 수 있다는 것입니다.그들이 오늘날 일부 규칙에 위배되는 앱을 받아들이는 것처럼, 그들은 아마도 계속 그렇게 할 것입니다.

또한 현재 Mono를 실행 중인 스토어에 수백 개(또는 수천 개?)의 앱이 있으며, Apple은 이러한 앱에 대한 업데이트를 수락해야 합니다.수백만 개의 매출을 올린 주요 앱은 모노(및 루아)를 사용하여 만들어졌으며, 사용자 한 명 한 명에게 환불해 줄지 의심스럽습니다.

마지막으로, 엔터프라이즈 애플리케이션은 Apple의 승인 없이 iPhone에 배포되며, MonoTouch가 차지하는 큰 시장입니다(저 자신이 엔터프라이즈 애플리케이션을 개발합니다).현재로서는 Apple이 이러한 애플리케이션에 대해 MonoTouch를 금지할 수 있는 방법이 없으며, 이는 MonoTouch를 오랫동안 유지하기에 충분할 것입니다.

업데이트:

섹션 3.3.1, 3.3.2 및 3.3.9의 새로운 변경 사항으로 인해 MonoTouch(및 기타 모든 크로스 컴파일러/언어 등)가 iPhone에서 완벽하게 허용되었습니다.Apple의 발표 보기


미겔은 그렇게 생각하지 않는 것 같습니다.트윗과 미구엘의 반응을 보세요.여기서 과민반응을 하지 말고 모노노우치가 죽었다고 말하거나, 관련된 모든 당사자가 어느 정도 설명할 때까지 모노노우치와 함께 개발을 중단합시다.

그것은 제가 그러한 엄격한 개발 정책에 대해 분명히 애플에 압력을 가하기 시작할 것이라는 것을 의미합니다.이와 같은 것들, 그리고 아이폰/아이패드/터치 앱의 승인 정책인 모호한 과정은 개발자들의 마음에 두려움을 안겨줄 것입니다.다음은 무엇입니까, 당신이 사용할 수 있는 유일한 광고 플랫폼이 iAd라는 그들의 라이센스입니까?iAd 없이 무료 앱 배포를 허용하지 않습니까?앱 판매 수익에서 애플이 차지하는 비중을 서서히 높이는 것은?폐쇄된 생태계의 개발자로서, 우리는 뜨거운 물이 담긴 냄비 안에 있는 개구리와 같은 존재입니다. 그리고 애플은 서서히 열을 올리고 있습니다.이제는 다른 모바일 플랫폼을 탐색할 때입니다. 애플 플랫폼이 발전함에 따라 사람들이 애플 플랫폼에 접근할 수 있는 주요 요소는 다른 플랫폼의 애플리케이션이 부족하다는 것이기 때문입니다.

저는 오브젝티브 C에서 살인적인 아이폰 앱에 대한 아이디어를 생각하는 데 몇 달 동안 저녁을 보냈습니다.저의 낮 직업은 C#입니다.저는 MonoTouch C#이 실행 가능한 대안이 되었을 때 다운로드했고 코드를 iPhone 전용 MonoTouch C#으로 변환하는 데 3개월이 걸렸습니다.C#/Objective C에서 전환하는 동안 제가 미쳐가는 것을 막았습니다.

이제 어떻게 하면 모든 것을 버리고 다시 시작하거나 포기할 수 있습니까!?

저는 모노 형제들에게 정말 미안합니다.이것은 명백한 잘못입니다.제품을 출시하지 않고 고객이 없는 Adobe를 중지하는 것과 AppStore에서 제품을 출시하고 승인한 MonoTouch를 중지하는 것은 별개의 일입니다.

책임감이나 의문 없이 즉각 모든 것을 빼앗을 텐데 왜 누군가가 사업을 구축하고 애플에 투자하려고 합니까?

분명히 애플의 개발자들과 고객들은 그들과 그들의 제품을 걱정하고 있습니다.

나는 애플이 이 말도 안 되는 정책으로 트집을 잡기를 바랍니다.오만은 매력적이지 않고 일반적으로 사업에 좋지 않습니다.이것이 제가 아이폰 개발을 시작하지 않은 이유 중 하나입니다.

대부분의 하드웨어 및 OS 공급업체는 플랫폼에 쓰기 위한 추가 툴과 사용자를 확보하게 되어 기쁩니다.애플은 자사의 (뇌사) 도구가 이 도시에서 유일한 게임이라는 입장을 취하고 있습니다.

1984년의 "빅 브라더" 광고는 점점 더 관련이 깊어지고 있습니다.

편집

그것이 작성되는 방식은 또한 내가 객관적인 C/apple 번역기에 .net을 썼다면 원래 코드가 객관적인 C가 아니었기 때문에 코드를 받아들일 수 없다는 것을 의미하는 것 같습니다.그것은 터무니없고 시행할 수 없습니다.

유니티는 또한 모노에 기반을 두고 있으며 상당한 규모의 상업적 제품이기 때문에 이것은 우리가 아직 끝까지 듣지 못한 문제라고 생각합니다.

Obj-C/C++로 작성되지 않은 모든 앱을 금지하는 것은 이론적으로 앱 스토어에 이미 많은 수가 있는 모든 유니티 게임도 금지할 것입니다.

이 질문은 Unity Answers 사이트에서도 확인되었으며 공식 답변은 다음과 같습니다.

"우리는 방금 아이폰 OS 4.0과 새로운 서비스 약관에 대해 들었습니다.우리는 이것들을 완전히 준수하고 있다고 믿지만, 우리는 지금 이것을 Apple에 의해 검증받기 위해 최선을 다하고 있습니다.우리가 정확히 알게 되면, 우리는 당연히 그 정보를 모두에게 공유할 것입니다.우리가 이 사건을 해결하는 동안 단단히 버텨주세요."

그들이 Apple로부터 무엇을 듣는지 보는 것은 흥미롭습니다.

중요한 것은 앱이 특정 언어로 작성되어야 한다고 말하는 것은 약간의 잘못된 이름입니다. 일단 앱이 컴파일되면 어떻게 구축되었는지에 관계없이 항상 네이티브 바이너리이기 때문입니다.제 생각에 그들이 찾을 수 있는 것은 바이너리에서 어떤 종류의 서명을 통해 어떤 도구로 만들어졌는지 감지하는 것입니다.결함이 있는 접근법.

편집: 이 블로그에는 상황에 대한 흥미로운 개요가 있습니다. 모노터치는 이제 물 속에서 죽었습니다. 애플의 새로운 아이폰 개발자 계약이 의미하는 바는 무엇입니까?

새 라이센스 계약은 이에 대해 명확하게 설명합니다.그래서 네, 그것은 금지될 것입니다.

조언, 만약 당신이 정말로 아이폰을 위해 개발하고 싶다면, XCode를 사용해 보세요.이미 Java나 C# 또는 C++에 익숙하다면 목표 C를 배우는 것은 그리 어렵지 않을 것입니다.

iPhone/iPad는 Apple의 새로운 성공적인 사업이며, 그들은 이 사업을 계속 성장시키기 위해 무엇이든 할 것입니다. 아마도 그들은 지금 모노터치 앱을 금지하지 않을 것입니다. 하지만 다음 움직임을 누가 알겠습니까?그래서 만약 당신이 아이폰 개발에 정말로 관심이 있다면, 당신의 작품이 그냥 거절당할지도 모른다는 악몽을 꾸는 대신에.XCode로 전환하면 최소한 앱 거부율이 낮아집니다.그러므로, 제 충고입니다.

저는 애플의 동기부여를 강하게 고려해야 한다고 생각합니다.

저는 애플이 애플리케이션의 상품화를 방지하기 위해 노력하고 있다는 온라인의 다른 의견에 동의합니다. 즉, 여러 장치에서 실행할 수 있는 애플리케이션을 생성하는 프레임워크를 사용하여 점점 더 많은 애플리케이션을 작성하는 것입니다.

하지만 모노노우치는 그렇지 않습니다.모노터치는 Apple 프레임워크를 사용하여 애플리케이션을 작성하는 것이지만 Objective-C가 아닌 Mono를 통해 작성됩니다.그래서 그 관점에서 모노터치가 하는 일은 애플을 정말로 괴롭힐 일이 아닙니다.

저는 여전히 개발자들이 사용 중인 플랫폼의 모국어로 쓰는 것이 더 낫다고 생각합니다. 추상화 임피던스 불일치를 가질 수 있는 시스템을 도입하지 않을 때 일반적으로 상황이 더 원활하기 때문입니다. 코코아 프레임워크는 모두 Objective-C에서 사용하도록 제작되었습니다.목표-C의 철학에 익숙할 때 가장 의미가 있습니다.하지만 저는 애플이 모노터치 사용을 허용하는 쪽으로 기울기를 바랍니다.

Apple이 말하고 있는 것은 여러분 모두가 이제 1980년대 언어를 사용하여 경쟁사를 능가하는 최신 모바일 애플리케이션을 개발해야 한다는 것입니다.

완벽히 말이 되는.제게는 승리 전략처럼 들리네요.

또한 Stright C, C++ 또는 Objective C에서 개발된 타사 라이브러리를 사용할 수 없도록 합니다.

따라서 기본적으로 유니티와 같은 게임 API에서는 구매할 수 없다는 것을 의미합니다.

내 2센트를 더하면 됩니다.이 부분을 읽은 후에는 (예: 중간 번역이나 호환성 계층 또는 도구를 통해 Documented API에 링크하는 애플리케이션은 금지됨) 논의할 것이 없는 것 같습니다.그들은 그것들을 명확하게 표현했습니다.그들은 MonoTouch와 Unity3d를 금지할 뿐만 아니라 Titanium Framework도 금지하고 있는 것 같습니다.하지만, 이 기사를 읽고 난 후, 저는 제 자신이 정말 혼란스럽다는 것을 알게 되었습니다.저는 미국 법에 익숙하지 않은데, 합법적인가요?내 말은, 그들이 독점금지법을 어기고 있지 않나요?

이 모든 것 외에도, 저는 그들의 동기를 이해할 수 없습니다.그들은 개발자들의 흥미를 부분적으로 잃을 뿐만 아니라, 개발자들의 존경도 잃을 것이라고 생각합니다.

오늘부로 Apple iOS 개발자 프로그램 라이센스의 섹션 3.3.1이 이전 텍스트로 반환되었습니다.

3.3.1 애플리케이션은 Apple이 규정한 방식으로만 Documented API를 사용할 수 있으며, 개인 API를 사용하거나 호출해서는 안 됩니다.

애플은 라이선스 변경에 대한 공식 성명을 발표했습니다.

이는 이제 MonoTouch를 사용할 수 있음을 나타냅니다.

Mono 팀의 한 가지 목표는 교차 플랫폼 개발을 위해 MonoTouch/Moonlight를 통해 Silverlight를 iPhone으로 포팅하는 것입니다.그것은 마치 아이폰에 플래시를 이식하는 것과 같습니다.애플리케이션을 이식하는 데 도움이 되는 모노드로이드도 있습니다. 아시다시피, 애플은 누군가 "안드로이드"라고 말할 때마다 돈을 내고 있습니다. :-) IMHO, 만약 애플이 새로운 계약으로 어도비를 목표로 한다면, 그들도 노벨을 목표로 하고 있습니다.우리는 아마도 추측하고 있고 NDA가 있지만 우리 중 많은 사람들이 이 플랫폼에 많은 시간을 투자했기 때문에 상황을 분명히 해야 합니다.우리는 이 문제를 논의하기 위해 내년 여름을 기다릴 수 없습니다.예를 들어, 한 친구로부터 고객을 위해 MonoTouch 애플리케이션을 프로토타입화하는 데 도움을 요청받았습니다.새로운 계약은 앱스토어 배포에만 영향을 미칩니까?사내 유통은 어떻습니까?

이 Google 문서 스프레드시트에는 새 계약의 영향을 받는 앱 목록이 많이 있습니다.앱스토어 카테고리에서 1위를 차지한 몇 가지 주목할 만한 것들:

  • 독점
  • 레모네이드 타이쿤
  • 스키볼
  • 정착민들
  • 좀비빌

재미있는 내용 중 하나는 토이 스토리입니다.

o 지난 며칠 안에 많은 앱들이 모노터치와 유니티의 도움으로 작성되었으며, 저도 obj-c와 함께 사용하고 있습니다. 계약 발표 및 변경 이후로 GO FIGLE, ...good ol'WTF가 떠오릅니다.그것은 양극성 돼지저금통인 것 같습니다.

또한, 어제 핫 뉴 게임 중인 마지막 유니티 게임 자이언트 모토는 큰 글자로 로드의 스플래시 화면에 유니티로 구동됩니다.그래서, 모든 추측, 가정 등은 정말로 문밖에 있습니다.새 버전에서는 확실히 시행되지 않는다고 말할 수 있습니다.그리고 montouch는 iPhone API를 완전히 공개하고 XCode를 사용하여 obj-c로 완전히 구축하는 유일한 개발 플랫폼입니다.

라이센스 계약에 따르면 MonoTouch 앱은 AppStore에서 허용되지 않습니다.

그러나 더 흥미로운 질문은 어떤 프레임워크/애플리케이션에 대해 이를 적용할 것인가 하는 것입니다.또한 앱을 승인하는 사람들이 모든 앱에 대해 이를 수행할 시간/기술이 없기 때문에 앱이 네이티브로 작성되었는지 여부를 확인하기 위해 자동 테스트를 작성해야 합니다.이러한 앱에는 'MonoTouch/Flash 사용'이라는 스티커가 붙지 않습니다.

합의서의 모든 블롭에 대한 짧은 대답은 YES입니다.

Apple은 기본적으로 프로그램을 몇 가지 언어로 제한함으로써 스스로를 공격하고 있습니다.

  • C - 요즘은 낮은 수준의 특성 때문에 애플리케이션 개발에 적합하지 않습니다.오늘날 대부분은 시스템 프로그래밍 언어입니다.
  • C++ - 이것은 당신의 핸드폰을 촬영하는 것을 더 어렵게 하지만, 그것이 일어났을 때, 그것은 바주카와 함께 있습니다.Qt 외에도, C++에서 사용할 완전한 애플리케이션 프레임워크가 없습니다(그리고 Qt는 아직 아이폰을 지원하지 않습니다).
  • Objective-C - 애플이 발명했으며 당연히 지원될 것입니다.
  • WebKit에서 실행되는 JavaScript - 기본적으로 웹 응용프로그램입니다.

그들은 아이폰을 위해 개발하는 데 사용할 수 있는 도구를 의도적으로 제한하고 있으며, 이는 거의 확실히 그들을 심각한 문제에 빠뜨릴 것입니다.저는 상당한 규모의 커뮤니티가 아이폰 개발을 그만두고 완전히 개방된 Windows Mobile, Symbian, Android 또는 Maemo와 같은 다른 플랫폼으로 마이그레이션할 것이라고 확신합니다. LOLCODE로 애플리케이션을 자유롭게 작성할 수 있습니다.

개발자들을 위해 아이폰을 정크로 만들 수도 있는 것 외에도 Adobe에게 멋진 키스를 해줍니다.애플은 일부러 아이패드에서 플래시를 차단하고, 이제는 아이폰에서도 플래시를 차단하고 있습니다.이 숫자는 Adobe Flash의 CS5의 가장 큰 기능은 iPhone에 플래시 애플리케이션을 배포하는 것입니다.

tl;dr: 애플은 기본적으로 이 움직임으로 스스로를 쏘고 있습니다.

플래시 장애가 발생한 지 몇 달이 지났고 모노터치와 유니티가 잘 작동하고 있다는 것은 분명합니다.

"중간 번역 또는 호환성 계층 또는 도구를 통해 Documented API에 링크하는 애플리케이션은 금지됩니다."

모노터치는 코드를 네이티브 바이너리로 컴파일합니다. "레이어"는 없습니다..NET 런타임, Java JVM 또는 Flash 런타임과 같은 것을 말합니다.

모노 애플리케이션은 일반적으로 바이트코드로 컴파일되며, 이를 실행하기 위해서는 JIT(적시) 컴파일이 필요합니다.넷 프레임워크 또는 모노 프레임워크가 필요합니다.그러나 iOS와 Android의 경우 Mono 어플리케이션이 네이티브 코드로 컴파일됩니다.따라서, 애플의 눈에는 제3의 층이 없으며, 애플은 모노를 절대 금지하지 않을 것입니다.따라서 MonoTouch로 자유롭게 개발하고 앱을 배포할 수 있습니다.더욱 확실하게 하기 위해 AppStore에는 오래전부터 존재해온 다양한 Mono 애플리케이션(게임 및 애플리케이션 포함)이 있습니다.

언급URL : https://stackoverflow.com/questions/2604033/is-monotouch-now-banned-on-the-iphone

반응형