Sebuah posting terbaru oleh John Gruber mencatat bahwa legalese berikut:
3.3.1 — Applications may only use Documented APIs in the manner prescribed by Apple and must not use or call any private APIs.
Telah direvisi sebagai berikut:
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).
Dan buatlah observasi berikut:
Saya membaca bahasa baru ini bahwa cross-compiler, seperti kompiler Flash-ke-iPhone dalam rilis Adobe Flash CS5 mendatang, dilarang. Ini juga melarang aplikasi yang dikompilasi menggunakan MonoTouch - alat yang mengkompilasi aplikasi C # dan .NET ke iPhone.
Apakah ini sebenarnya melarang penggunaan Monotouch untuk IPhone?
sumber
Jawaban:
Perbarui -
Ya, tampaknya cukup jelas dari perjanjian lisensi mereka sekarang bahwa jika aplikasi asli ditulis dalam C # maka itu akan melanggar lisensi:
Mereka bahkan memalu sedikit lebih jauh:
Agak mengecewakan, MonoTouch dan Flash CS5 -> iPhone converter sangat keren.
sumber
Memperbarui:
Apple telah menjatuhkan (hampir) semua persyaratan teknis untuk bahasa dan perpustakaan untuk iOS, jadi MonoTouch tanpa diragukan lagi merupakan solusi yang layak. Lihat pengumuman Apple .
Kebanyakan orang di sini hanya ingin mengambil dokumen Apple dengan kata dan mengatakan "ya, itu dilarang". Nah, inilah sudut pandang saya: pada titik ini, tidak ada yang benar-benar tahu apakah MonoTouch akan dilarang atau tidak, dan saya akan menjelaskan alasannya:
Perjanjian Apple versi 3 (bukan yang terbaru, yang sebelumnya) dengan jelas menyatakan bahwa ilegal menggunakan kerangka kerja lain untuk mengembangkan aplikasi selain yang disediakan oleh Apple:
Meskipun demikian (dan sebenarnya adalah kasus sejak 2.x, apel tidak memiliki masalah menerima aplikasi yang melakukan hal itu. Misalnya, SEMUA game EA menggunakan skrip Lua, dan banyak dan banyak orang menggunakan perpustakaan eksternal yang bukan asli iPhone. Bahkan ketika iPhone memiliki API asli itu, Apple tidak pernah memiliki masalah menerima aplikasi dengan versi yang berbeda, seperti SQLite.
Maksud saya adalah mengatakan "YA, mereka akan dilarang" sekarang ini terlalu dini. Hal yang hanya jelas pada titik ini adalah bahwa Apple bisa pada kenyataannya digunakan yang untuk melarang aplikasi. Sama seperti mereka menerima Aplikasi hari ini yang melanggar beberapa aturan mereka, mereka mungkin akan terus melakukannya.
Ada juga fakta bahwa ada ratusan (atau mungkin beberapa ribu?) Aplikasi di toko yang saat ini menjalankan Mono, dan Apple harus menerima pembaruan untuk aplikasi tersebut. Aplikasi utama dengan jutaan penjualan dibuat menggunakan Mono (dan Lua), dan saya ragu mereka akan mengembalikan setiap pengguna.
Terakhir, aplikasi Enterprise digunakan untuk iPhone tanpa persetujuan Apple, dan itulah pasar besar tempat MonoTouch aktif (saya sendiri yang mengembangkan aplikasi enterprise). Tidak mungkin pada saat ini bahwa Apple dapat melarang MonoTouch untuk aplikasi-aplikasi itu, dan itu mungkin akan cukup untuk menjaga MonoTouch tetap hidup untuk waktu yang lama.
sumber
Memperbarui:
Perubahan baru pada bagian 3.3.1, 3.3.2 dan 3.3.9 telah membuat MonoTouch (dan semua kompiler silang lainnya / bahasa / dll) sangat dapat diterima di iPhone. Lihat pengumuman Apple
Miguel sepertinya tidak berpikir begitu. Lihat tweet dan respons Miguel . Jangan bereaksi berlebihan di sini dan katakan bahwa Monotouch sudah mati, atau berhenti berkembang dengan Monotouch sampai beberapa klarifikasi dibuat oleh semua pihak yang terlibat.
Yang mengatakan saya pasti akan mulai menempatkan panas pada Apple untuk kebijakan pengembangan kejam seperti itu. Hal-hal seperti ini, dan proses samar-samar yang merupakan kebijakan persetujuan aplikasi iphone / ipad / touch harus membuat ketakutan para pengembang. Apa selanjutnya, lisensi mereka yang menyatakan bahwa satu-satunya platform Iklan yang diizinkan untuk Anda gunakan adalah iAd? Tidak mengizinkan distribusi aplikasi gratis tanpa iAd? Perlahan meningkatkan bagian Apple dari pendapatan penjualan aplikasi? Sebagai pengembang dalam sistem ramah lingkungan yang terkunci, kami adalah sejenis katak di dalam panci berisi air panas, dan Apple perlahan-lahan meningkatkan panasnya. Sekarang adalah waktunya untuk menjelajahi platform seluler lainnya, karena seiring membaiknya, hal utama yang menahan orang ke platform Apple adalah kurangnya aplikasi pada platform lain.
sumber
Saya menghabiskan waktu berbulan-bulan di malam hari untuk mengerjakan ide untuk aplikasi iPhone yang mematikan di Objective C. Pekerjaan saya sehari-hari adalah C #. Saya mengunduh MonoTouch C # ketika itu menjadi alternatif yang layak dan baru saja menghabiskan 3 bulan mengonversi kode saya ke iPhone khusus MonoTouch C #. Yang menghentikan saya menjadi gila karena beralih dari C # / Objective C.
Apa yang saya lakukan sekarang membuang semuanya dan mulai lagi atau menyerah!?!
Saya merasa sangat kasihan pada Mono guys. Ini jelas salah. Ini adalah satu hal untuk menghentikan Adobe yang belum meluncurkan produk mereka dan tidak memiliki pelanggan dan menghentikan MonoTouch yang melakukannya dan juga telah menyetujui produk di AppStore.
Mengapa ada orang yang ingin membangun bisnis dan berinvestasi di Apple ketika mereka akan mengambil semuanya pada saat pemberitahuan tanpa ada jawaban atau dipertanyakan?
Jelas pengembang dan pelanggan Apple merawat mereka dan produk mereka adalah jalan satu arah.
sumber
Saya harap Apple akan dikalahkan oleh kebijakan konyol ini. Arogansi tidak menarik dan umumnya buruk untuk bisnis. Ini adalah salah satu alasan saya belum memulai pengembangan iPhone.
Sebagian besar penyedia perangkat keras dan OS senang memiliki alat dan pemirsa tambahan untuk menulis ke platform mereka. Apple mengambil sikap bahwa alat (braindead) adalah satu-satunya permainan di kota.
Iklan "Big Brother" mulai tahun 1984 semakin relevan ...
EDIT
Cara itu ditulis juga tampaknya menyiratkan bahwa jika saya menulis .net ke objektif C / apple translator bahwa kode tidak dapat diterima karena kode asli tidak objektif c. Itu menggelikan (dan tidak bisa dilaksanakan.)
sumber
Persatuan juga didasarkan pada Mono dan dengan itu menjadi produk komersial yang cukup besar saya membayangkan bahwa ini adalah masalah yang belum kita dengar akhir.
Melarang semua aplikasi yang tidak ditulis dalam Obj-C / C ++ akan, secara teori melarang semua game Unity juga, yang sudah ada dalam jumlah besar di app store.
Pertanyaan ini juga telah ditanyakan di situs Unity Answers, dan jawaban resmi mereka adalah:
Menarik untuk melihat apa yang mereka dapatkan dari Apple.
Masalahnya, tentu saja mengatakan bahwa aplikasi harus ditulis dalam bahasa tertentu sedikit keliru, karena begitu aplikasi dikompilasi, selalu biner asli terlepas dari bagaimana itu dibangun. Dugaan saya adalah bahwa semua yang mereka dapat cari adalah semacam tanda tangan dalam biner untuk mendeteksi alat apa yang dibuat. Pendekatan yang cacat.
EDIT: Ada ikhtisar menarik dari situasi di blog ini: monotouch sekarang mati di air apa arti apel dari perjanjian pengembang iphone baru
sumber
Perjanjian lisensi baru secara eksplisit jelas tentang hal itu. Jadi YA, itu akan dilarang.
Saran, jika Anda ingin benar-benar mengembangkan untuk iPhone, coba XCode. Jika Anda sudah terbiasa dengan Java atau C # atau C ++ yang lebih baik, maka belajar Objective-C tidak akan sulit.
iPhone / iPad adalah bisnis baru yang sukses dari Apel, dan mereka akan melakukan apa saja untuk menjaga pertumbuhan bisnis ini, mungkin mereka tidak akan mencekal aplikasi Monotouch sekarang, tetapi siapa yang tahu langkah selanjutnya? Jadi, jika Anda benar-benar benar-benar tertarik pada dev iPhone, alih-alih memiliki mimpi buruk bahwa pekerjaan Anda mungkin hanya ditolak. Cukup beralih ke XCode, setidaknya itu akan menurunkan persentase penolakan aplikasi Anda. Makanya, saran saya.
sumber
Saya pikir sesuatu yang sangat dipertimbangkan adalah motivasi Apple.
Saya setuju dengan sentimen lain yang diposting online bahwa Apple berusaha mencegah komoditisasi aplikasi - artinya, semakin banyak aplikasi yang ditulis menggunakan kerangka kerja yang menghasilkan aplikasi yang dapat berjalan di beberapa perangkat.
Tapi bukan itu Monotouch. Monotouch adalah tentang menggunakan kerangka kerja Apple untuk menulis aplikasi - tetapi melalui Mono, bukan Objective-C. Jadi dari sudut pandang itu, apa yang dilakukan Monotouch bukanlah sesuatu yang seharusnya mengganggu Apple.
Saya masih berpendapat bahwa pengembang lebih baik menulis dalam bahasa asli dari platform yang mereka gunakan, karena hal-hal yang umumnya lebih lancar ketika Anda tidak memperkenalkan sistem yang dapat memiliki ketidakcocokan impedansi abstraksi - kerangka kerja Cocoa semua dibangun untuk digunakan dari Objective-C, dan mereka paling masuk akal ketika Anda terbiasa dengan filosofi Objective-C. Tapi saya berharap Apple turun untuk mengizinkan MonoTouch digunakan.
sumber
Semua yang dikatakan Apple adalah bahwa Anda semua sekarang harus menggunakan bahasa 1980-an untuk mengembangkan pesaing Anda mengalahkan aplikasi Mobile yang canggih ....
Masuk akal. Kedengarannya seperti strategi kemenangan bagi saya.
Ini juga menghentikan Anda dari menggunakan perpustakaan pihak ke-3 yang tidak dapat Anda jamin yang telah dikembangkan dalam C, C ++ atau Objective C.
Jadi pada dasarnya itu berarti Anda tidak dapat membeli di API Game seperti Unity.
sumber
Hanya menambahkan 2 sen saya. Tampaknya setelah membaca bagian ini: (mis. Aplikasi yang menautkan ke API yang didokumentasikan melalui terjemahan perantara atau lapisan atau alat kompatibilitas dilarang) tidak ada yang perlu didiskusikan. Mereka telah mengungkapkannya dengan jelas. Tidak hanya mereka melarang MonoTouch dan Unity3d, tampaknya mereka juga melarang Titanium Framework . Namun, setelah membaca artikel ini , saya merasa sangat bingung. Saya tidak terbiasa dengan undang-undang AS, tetapi apakah itu legal? Maksudku, bukankah mereka melanggar beberapa undang-undang anti-monopoli?
Selain semua ini, saya tidak dapat memahami motivasi mereka. Tidak hanya sebagian mereka akan kehilangan minat pengembang, mereka juga akan kehilangan rasa hormat pengembang, saya pikir.
sumber
Sampai hari ini, Bagian 3.3.1 dari Lisensi Program Pengembang Apple iOS kini telah dikembalikan ke teks lama:
Apple telah merilis pernyataan resmi tentang perubahan lisensi.
Ini akan menunjukkan bahwa sekarang diizinkan untuk menggunakan MonoTouch.
sumber
Salah satu tujuan dari tim Mono adalah memindahkan Silverlight ke iPhone melalui MonoTouch / Moonlight untuk pengembangan lintas platform. Itu agak seperti porting Flash ke iPhone. Ada juga Monodroid dalam perjalanan untuk membantu kami porting aplikasi dan, Anda tahu, Apple menjalankan amonk setiap kali seseorang mengatakan "Android" :-) IMHO, jika Apple menargetkan Adobe dengan perjanjian baru, mereka juga menargetkan Novel. Kami mungkin berspekulasi dan ada NDA tetapi banyak dari kami menginvestasikan banyak waktu pada platform ini sehingga kami perlu memperjelas situasinya. Kita tidak bisa menunggu musim panas mendatang untuk membahas masalah ini. Misalnya, saya telah diminta oleh seorang teman untuk membantu perusahaannya membuat prototipe aplikasi MonoTouch untuk seorang pelanggan. Apakah perjanjian baru hanya memengaruhi distribusi App Store? Bagaimana dengan distribusi in-house?
sumber
Spreadsheet google docs ini memiliki daftar panjang aplikasi yang akan terpengaruh oleh perjanjian baru. Beberapa yang penting yang telah menjadi # 1 di appstore untuk kategorinya:
Salah satu inklusi lucu adalah Toy Story.
sumber
oBanyak aplikasi telah diterima dalam beberapa hari terakhir yang ditulis dengan bantuan monotouch dan unity, sedangkan saya juga menggunakannya serta obj-c, sejak pengumuman dan perubahan dalam perjanjian, jadi GO FIGURE, ... the good ol'WTF datang ke pikiran. Sepertinya itu adalah celengan bipolar.
JUGA, Game Unity GiantMOTO terakhir, yang berada di bawah HOT NEW GAMES - YESTERDAY, ada di layar splash onLoad dalam huruf besar, DIKUASA OLEH UNITY. Jadi, semua dugaan, asumsi, dll. Benar-benar keluar dari pintu. Mungkin mengatakan semua itu dalam versi baru, itu pasti TIDAK ditegakkan. Dan montouch adalah satu-satunya platf pengembangan yang SEPENUHNYA mengekspos iPhone API dan membangun SEPENUHNYA ke obj-c menggunakan XCode.
sumber
Dari apa yang dikatakan dalam perjanjian lisensi, aplikasi MonoTouch jelas tidak akan diizinkan di AppStore.
Pertanyaan yang lebih menarik adalah, terhadap kerangka / aplikasi mana mereka akan menegakkannya? Mereka juga harus menulis tes otomatis untuk memeriksa apakah aplikasi ditulis secara asli atau tidak, karena orang-orang yang menyetujui aplikasi tidak akan memiliki waktu / keterampilan untuk melakukannya untuk setiap aplikasi. Aplikasi ini tidak akan menempatkan stiker di sana 'Menggunakan MonoTouch / Flash'.
sumber
Jawaban singkat untuk semua gumpalan dalam perjanjian itu adalah YA .
Apple pada dasarnya menembak dirinya sendiri dengan membatasi program ke beberapa bahasa:
Mereka sengaja membatasi alat apa yang dapat Anda gunakan untuk mengembangkan untuk iPhone, yang hampir pasti akan membuat mereka dalam masalah serius. Saya yakin sebagian besar komunitas hanya akan berhenti dari pengembangan iPhone dan bermigrasi ke platform yang berbeda seperti Windows Mobile, Symbian, Android atau Maemo, yang benar-benar terbuka - Anda bebas untuk menulis aplikasi Anda di LOLCODE.
Selain kemungkinan membuat sampah iPhone untuk pengembang, Adobe juga memberikan ciuman yang bagus: Apple sengaja memblokir Flash dari iPad, dan sekarang mereka juga memblokirnya dari iPhone. Angka adalah fitur CS5 Adobe Flash terbesar menyebarkan aplikasi Flash ke iPhone.
tl; dr: Apple pada dasarnya menembak dirinya sendiri dengan gerakan ini.
sumber
Sekarang berbulan-bulan setelah bencana kilat dan cukup jelas Monotouch dan Unity baik-baik saja.
Sesuai "Aplikasi yang menautkan ke API yang Didokumentasi melalui terjemahan perantara atau lapisan atau alat kompatibilitas dilarang"
Monotouch mengkompilasi kode ke biner asli, tidak ada "lapisan". Mereka mengacu pada sesuatu seperti. NET runtime, Java JVM atau Flash runtime.
sumber
Aplikasi Mono biasanya akan dikompilasi ke bytecode yang dan akan membutuhkan kompilasi JIT (tepat waktu) untuk menjalankannya sehingga diperlukan kerangka kerja .Net atau kerangka kerja Mono. Namun, dalam kasus iOS dan Android, aplikasi Mono mengkompilasi ke kode asli. Karena itu, di mata Apple, tidak ada lapisan ketiga , Apple tidak akan pernah melarang Mono. Jadi Anda dapat merasa bebas untuk mengembangkan dengan MonoTouch dan mendistribusikan aplikasi Anda. Untuk memastikan Anda lebih lanjut, ada berbagai aplikasi Mono (termasuk game dan aplikasi) di AppStore yang telah ada sejak lama.
sumber