Akankah aplikasi berbasis Swift bekerja pada OS X 10.9 (Mavericks) / iOS 7 dan lebih rendah?
Sebagai contoh, saya memiliki mesin yang menjalankan OS X 10.8 (Mountain Lion), dan saya bertanya-tanya apakah aplikasi yang saya tulis di Swift akan berjalan di atasnya.
Atau apa yang harus saya buat untuk membuat aplikasi Swift menggunakan Mac OS?
Jawaban:
Saya baru saja mengujinya untuk Anda, aplikasi Swift mengkompilasi ke dalam binari standar dan dapat dijalankan pada OS X 10.9 dan iOS 7.
Aplikasi Swift sederhana yang digunakan untuk pengujian:
sumber
UIViewController
setelah titik dua mewakili jenis variabel dan kejadian kedua setelah=
tanda memanggil konstruktor (menginisialisasi variabel).Kode Swift dapat digunakan untuk OS X 10.9 dan iOS 7.0. Biasanya akan crash saat diluncurkan pada versi OS yang lebih lama.
sumber
Apple telah mengumumkan bahwa aplikasi Swift akan kompatibel dengan iOS 7 dan OS X Mavericks. Aplikasi WWDC ditulis dalam bahasa Swift.
sumber
Pembaruan - Sesuai Xcode 6 Beta 4
Dari catatan rilis Xcode 6
Jadi jawaban saya sebelumnya (Tampil di bawah) tidak akan berlaku untuk pengembangan lebih lanjut. Swift tidak lagi tersedia untuk iOS6 dan di bawahnya
Aplikasi Swift dapat dijalankan di iOS 6. Meskipun banyak orang mengatakan bahwa Swift hanya akan mendukung iOS 7+ dan OS X 10.9+, dari pengalaman saya bukan.
Saya telah menguji aplikasi sederhana yang ditulis sepenuhnya dalam Swift di perangkat iOS 6. Ini bekerja dengan sangat baik . Seperti yang dikatakan Apple, kode Swift kompatibel dengan biner dengan kode Objective-C. Ia menggunakan kompiler dan runtime yang sama untuk membuat biner.
Ini kode yang sudah saya uji:
Ini adalah aplikasi sederhana, hanya menambahkan tombol secara terprogram. Aplikasi saya hanya berisi dua file,
AppDelegate.swift
danViewController.swift
.Jadi jika Anda tidak menggunakan API baru yang ditambahkan sebagai bagian dari iOS 8 SDK atau beberapa API khusus Swift (API yang sesuai tidak tersedia untuk Objective-C) aplikasi Anda akan bekerja dengan lancar di iOS 6 atau lebih baru (diuji dan bekerja), bahkan di iOS 5 (tidak diuji). Sebagian besar API di Swift hanyalah penggantian dari API Objective-C yang ada. Sebenarnya mereka sama dalam biner.
Catatan: Sesuai Xcode 6 beta 4 untuk target penyebaran aplikasi cepat harus iOS 7 atau OS X 10.9 (lihat pembaruan di atas). Jadi swift tidak lagi tersedia untuk iOS6 dan di bawahnya
sumber
Secara singkat:
Aplikasi berbasis Swift dapat menargetkan kembali ke OS X Mavericks atau iOS 7 dengan aplikasi yang sama.
Bagaimana itu mungkin ?
Xcode menyematkan pustaka Swift runtime kecil dalam bundel aplikasi Anda . Karena perpustakaan tertanam, aplikasi Anda menggunakan versi Swift yang konsisten yang berjalan pada rilis OS masa lalu, sekarang, dan masa depan.
Mengapa saya harus mempercayai jawaban ini?
Karena saya tidak mengatakan jawaban ini seperti yang dikatakan seorang pria apel di twitter saya atau saya menulis halo dunia dan mengujinya.
Saya mengambilnya dari blog pengembang apel .
jadi kamu bisa percaya ini.
sumber
Swift menggunakan runtime yang sama dengan Objective-C dan bahkan dapat hidup Objective-C berdampingan dalam aplikasi yang sama (sesuai dengan keynote WWDC 2014).
Ini perlu diperiksa / diverifikasi menggunakan Xcode 6 dan SDK baru untuk menemukan jawaban akhir.
sumber
Saya membaca semua jawaban yang mengatakan: Tidak, Swift tidak bekerja dengan kurang dari iOS 7. Tapi saya katakan YA , saya baru saja membuat proyek Swift yang berjalan di Xcode 5 dengan target penyebaran 6.0.
Kemudian proyek itu berjalan dengan baik di simulator 6.1 . Saya MacOS X adalah 10.9.3 , jadi aku berkata ya, yang berjalan di lebih rendah dari iOS 7. dengan 10.9.3 Mac OS X .
Ini dia screenshot dari simulator:
Ini juga demo
sumber
Sementara kode menegaskan hal itu, Apple sendiri telah mengatakan bahwa Swift akan kompatibel pada iOS 7 dan Mavericks dalam keynote teknis mereka ( Keadaan platform , sesi 102, sekitar 34 menit 00 detik) di WWDC 2014 .
sumber
Aplikasi Swift didukung di iOS 7 dan di atasnya sebagaimana dinyatakan dalam catatan rilis Beta 4.
iOS 6.0, 6.1, 7.0, 7.1, 8.0 di Xcode 6 BetaAplikasi Swift didukung pada platform OS X 10.9 dan di atasnya .
OS X 10.4 hingga 10.10 di Target Penerapan. Saya telah menguji penargetan 10.5 hingga 10.10, dan berjalan pada 10.9.3sumber
Tampaknya aplikasi Swift tidak berjalan di OS X 10.7 . Saya baru saja membuat aplikasi GUI sederhana (tampilan, label, tombol) yang berfungsi dengan baik di Mavericks. SDK dasar diatur ke 10.9 dan target penyebaran ke 10.7. Saya menyalin aplikasi itu dari folder DerivedData ke mesin virtual 10.7 saya, dan macet saat memulai, tunjukkan kesalahan ini:
Namun pesan ini menjengkelkan, karena pasti ada perpustakaan CoreGraphics di VM ini. Aplikasi lain yang banyak menggunakan CoreGraphics berfungsi dengan baik.
sumber
Ini adalah postingan yang saya baca dari blog apple Swift, mungkin bisa membantu:
Kompatibilitas Aplikasi :
Jika Anda menulis aplikasi Swift, Anda dapat percaya bahwa aplikasi Anda akan berfungsi dengan baik di masa mendatang. Bahkan, Anda dapat menargetkan kembali ke OS X Mavericks atau iOS 7 dengan aplikasi yang sama. Ini dimungkinkan karena Xcode menyematkan pustaka runtime Swift kecil dalam bundel aplikasi Anda. Karena perpustakaan tertanam, aplikasi Anda menggunakan versi Swift yang konsisten yang berjalan pada rilis OS masa lalu, sekarang, dan masa depan.
Kompatibilitas dan Kerangka Kerja Biner:
Sementara kompatibilitas runtime aplikasi Anda dipastikan, bahasa Swift itu sendiri akan terus berkembang, dan antarmuka biner juga akan berubah. Agar aman, semua komponen aplikasi Anda harus dibangun dengan versi Xcode dan kompiler Swift yang sama untuk memastikan bahwa mereka bekerja bersama.
Ini berarti bahwa kerangka kerja perlu dikelola dengan hati-hati. Misalnya, jika proyek Anda menggunakan kerangka kerja untuk berbagi kode dengan ekstensi yang disematkan, Anda akan ingin membangun kerangka kerja, aplikasi, dan ekstensi bersama. Akan berbahaya untuk mengandalkan kerangka kerja biner yang menggunakan Swift - terutama dari pihak ketiga. Saat Swift berubah, kerangka kerja itu tidak akan kompatibel dengan aplikasi Anda yang lain. Ketika antarmuka biner stabil dalam satu atau dua tahun, runtime Swift akan menjadi bagian dari OS host dan batasan ini tidak akan ada lagi.
sumber
Saya menguji menjalankan aplikasi tanpa tulang, berbasis Swift pada perangkat iPod Touch (3rd gen). Tampaknya aplikasi berbasis Swift tidak bekerja dengan iOS 5.x tetapi melakukan pekerjaan dengan iOS 6.x.
Inilah yang muncul di log debug ketika saya mencoba meluncurkan aplikasi uji dengan iOS 5.0.1:
Untuk iOS 6.1.6, aplikasi berjalan dengan baik tanpa menampilkan pesan kesalahan itu.
sumber
Tampaknya ada banyak jawaban lama di sini jadi saya hanya ingin mengirim tanggapan resmi dari tim Swift. Swift kompatibel dengan OS X Mavericks dan iOS 7
Blog cepat pengembang Apple: Objective-C id sebagai Swift Any
11 Jul 2014
Kesesuaian
Salah satu pertanyaan paling umum yang kami dengar di WWDC adalah, "Apa kisah kompatibilitas untuk Swift?". Ini sepertinya topik pertama yang bagus.
Kompatibilitas Aplikasi Sederhananya, jika Anda menulis aplikasi Swift hari ini dan mengirimkannya ke App Store Musim Gugur ini ketika iOS 8 dan OS X Yosemite dirilis, Anda dapat percaya bahwa aplikasi Anda akan berfungsi dengan baik di masa mendatang. Bahkan, Anda dapat menargetkan kembali ke OS X Mavericks atau iOS 7 dengan aplikasi yang sama. Ini dimungkinkan karena Xcode menyematkan pustaka runtime Swift kecil dalam bundel aplikasi Anda. Karena perpustakaan tertanam, aplikasi Anda menggunakan versi Swift yang konsisten yang berjalan pada rilis OS masa lalu, sekarang, dan masa depan.
sumber
Saya juga mencoba aplikasi yang sangat sederhana pada 10.8 (satu tombol, mengatur teks pada label). Itu macet saat startup, seperti yang dikatakan Greg Parker:
(Ini menggunakan target penyebaran 10,7)
sumber
Coba kode berikut:
Ini bekerja tanpa StoryBoard:
sumber
Ya, sebenarnya Apple telah mengumumkan bahwa aplikasi Swift akan kompatibel dengan iOS 7 dan OS X Mavericks. Selanjutnya aplikasi WWDC ditulis dalam bahasa pemrograman Swift.
sumber
Ketika datang ke Swift Frameworks. Adapun hari ini, dengan Xcode versi 6.1.1 (6A2008a), jika kerangka kerja Swift ditargetkan ke iOS 7.1, linker report warning
dan aplikasi tidak dapat dikirimkan ke AppStore. Periksa masalah ini: Lint untuk mencegah pustaka dan kerangka kerja dinamis lewat dengan iOS 7
sumber
Mach-O Type
harusDynamic Library
, bagaimanapun, iOS 7Static Library
Hanya Menerima .Pembaruan Cepat, efektif sejak 15 Februari 2015 , kami tidak dapat mengirimkan aplikasi ke toko yang dikembangkan menggunakan SDK sebelum iOS 8 . Jadi, mengingat hal itu, lebih baik untuk tidak khawatir tentang masalah ini karena banyak orang telah menyarankan bahwa aplikasi yang dibuat di Swift dapat digunakan untuk OS X 10.9 dan iOS 7.0 juga.
sumber
Cuplikan kode yang dijawab oleh Leandros tampaknya agak lama. Saya telah memperbaiki dan membuatnya dapat dikompilasi di Swift 5.
Cepat 5
sumber