iOS Deployment Target: apa itu, versi minimum iOS dan konfigurasi

Penulis: IT Sectr Diterbitkan: 2026-02-08 Waktu membaca: 14 mnt

iOS Deployment Target (juga iOS Target, Deployment Target) — versi minimum sistem operasi Apple tempat aplikasi dapat dijalankan. Parameter ini diatur dalam proyek Xcode dan menentukan batas kompatibilitas: saat memilih iOS 16.0, aplikasi hanya diinstal pada perangkat dengan iOS 16.0 dan lebih baru. Menurut Apple Developer Documentation, pemilihan Deployment Target yang tepat memengaruhi cakupan audiens dan akses ke API baru framework Swift dan Objective-C.

Poin utama

  • iOS Deployment Target — versi minimum iOS untuk instalasi dan menjalankan aplikasi, analog lengkap dari minSdkVersion untuk Android
  • Konfigurasi di Xcode: Project → Info → iOS Deployment Target, juga di Swift Package Manager dan CocoaPods
  • @available dan #available — mekanisme Swift untuk memanggil API di atas Deployment Target saat ini dengan aman
  • Setiap Deployment Target baru memberikan akses ke API baru SwiftUI, UIKit, Foundation, AppKit, tetapi mengurangi cakupan perangkat
  • App Store memfilter aplikasi berdasarkan versi iOS perangkat — jika Deployment Target tidak cocok, aplikasi tidak ditampilkan

Apa itu iOS Deployment Target?

iOS Deployment Target — parameter konfigurasi Xcode yang menunjukkan versi paling awal dari iOS, iPadOS, tvOS, watchOS, atau visionOS tempat aplikasi dapat berjalan. Setiap proyek Xcode berisi pengaturan ini untuk setiap platform secara terpisah. Misalnya, aplikasi iOS dapat memiliki Deployment Target 16.0, dan ekstensi watchOS — 9.0. Jika perangkat pengguna menjalankan iOS 15.0, aplikasi dengan Target 16.0 tidak akan ditampilkan di App Store dan tidak akan diinstal melalui distribusi langsung.

Mekanisme kerja Deployment Target didasarkan pada pemeriksaan versi OS selama instalasi. App Store iOS membandingkan nilai Deployment Target dari Info.plist (kunci MinimumOSVersion) dengan versi OS pada perangkat pengguna. Jika versi perangkat lebih rendah — tombol "Unduh" diblokir, dan API App Store tidak mengembalikan aplikasi dalam hasil pencarian untuk perangkat ini. Perilaku serupa berlaku untuk TestFlight, distribusi ad-hoc, dan enterprise.

Menurut data StatCounter per Juni 2025, iOS 16 menempati sekitar 48% perangkat iPhone aktif, iOS 17 — 35%, iOS 18 — 12%, versi yang lebih lama — sekitar 5%. Pemilihan Deployment Target 16.0 mencakup 83% perangkat, Target 17.0 — 35% (hanya iOS 17+). Angka-angka ini sangat penting untuk pengambilan keputusan: semakin tinggi Target, semakin kecil audiens, tetapi semakin mudah diakses API SwiftUI dan UIKit terbaru.

Deployment TargetPangsa perangkat (Juni 2025)Fungsi yang tersedia
iOS 15.0~90%Swift Concurrency, async/await, Focus State
iOS 16.0~83%SwiftUI NavigationStack, Layout, Live Activities
iOS 17.0~35%Observation, SwiftData, TipKit, Reactive Editing
iOS 18.0~12%API Apple Intelligence baru, SwiftUI yang ditingkatkan

Setiap rilis iOS baru tidak hanya menambahkan fitur pengguna, tetapi juga API untuk pengembang. Modifier SwiftUI baru, metode UIKit, framework seperti SwiftData dan Observation hanya tersedia pada Deployment Target tertentu. Pengembang harus menyeimbangkan antara cakupan audiens dan ketersediaan alat modern.

iOS Deployment Target vs minSdkVersion: perbandingan dengan Android

iOS Deployment Target dan minSdkVersion Android menjalankan fungsi yang identik — menetapkan versi OS minimum untuk aplikasi. Namun, mekanisme implementasi dan alat pendukungnya berbeda. Memahami perbedaan ini berguna bagi pengembang yang bekerja di kedua platform dan membantu menghindari kebingungan saat beralih antar ekosistem.

Di iOS, versi minimum diatur melalui pengaturan build Xcode (IPHONEOS_DEPLOYMENT_TARGET) dan disimpan di Info.plist (MinimumOSVersion). Di Android — melalui build.gradle (minSdkVersion) dan AndroidManifest.xml (<uses-sdk android:minSdkVersion>). iOS tidak memiliki analog untuk targetSdkVersion dan compileSdkVersion — perubahan perilaku di iOS dikelola oleh SDK tempat aplikasi dikompilasi (Base SDK) dan versi OS pada perangkat.

ParameteriOSAndroid
Versi minimumDeployment Target (IPHONEOS_DEPLOYMENT_TARGET)minSdkVersion
Di mana ditentukanXcode Build Settings → Info.plistbuild.gradle → AndroidManifest.xml
Pemeriksaan dalam kode@available / #available / if #availableBuild.VERSION.SDK_INT
Versi targetBase SDK (selalu terbaru)compileSdkVersion + targetSdkVersion
Pemfilteran di tokoApp Store: MinimumOSVersionGoogle Play: minSdkVersion

Perbedaan utama — Base SDK di iOS selalu merupakan versi terbaru yang diinstal di Xcode. Pengembang tidak dapat memilih compileSdkVersion seperti di Android — aplikasi selalu dikompilasi terhadap SDK terbaru yang tersedia. Perubahan perilaku baru di iOS diterapkan pada semua aplikasi yang dikompilasi dengan Base SDK baru, terlepas dari Deployment Target. Di Android, targetSdkVersion memberikan kontrol atas perubahan perilaku, di iOS tidak ada pemisahan seperti itu.

Perubahan perilaku di iOS vs Android

Tidak seperti Android, di mana perubahan perilaku terikat pada targetSdkVersion, iOS menerapkan perubahan perilaku ke semua aplikasi yang dikompilasi dengan versi baru Xcode dan Base SDK. Misalnya, iOS 13 memperkenalkan Dark Mode — semua aplikasi yang dibangun dengan Xcode 11 dan iOS 13 SDK secara otomatis menerima dukungan tema gelap, terlepas dari Deployment Target. Di Android, perubahan serupa (Scoped Storage) hanya diterapkan pada targetSdk >= 29. Pengembang iOS harus siap menghadapi perubahan perilaku dengan setiap Xcode baru, tanpa kemungkinan penundaan.

Pengetahuan tentang kedua platform memungkinkan memprediksi konsekuensi pemilihan versi minimum dan merencanakan pembaruan kode untuk API baru. Di IT Sectr kami menggunakan kedua ekosistem sejak 2017 — praktik menunjukkan bahwa iOS Deployment Target sebaiknya dipilih 2–3 versi di bawah versi saat ini untuk keseimbangan antara cakupan dan fungsionalitas.

Cara mengonfigurasi Deployment Target di Xcode

Konfigurasi iOS Deployment Target dilakukan di beberapa tempat proyek: Target utama, proyek Pods (jika CocoaPods digunakan), dependensi Swift Package Manager, dan target Widget/Extension. Jika nilai berbeda antara aplikasi utama dan ekstensi, App Store menggunakan nilai maksimum dari semuanya — artinya ekstensi tidak dapat memiliki Target lebih rendah dari aplikasi utama.

Konfigurasi di editor proyek Xcode

Buka proyek Xcode → pilih Target → tab General → bagian Minimum iOS Deployment. Daftar drop-down menunjukkan semua versi iOS SDK yang tersedia yang diinstal di Xcode. Perubahan diterapkan ke semua skema build. Alternatif — tab Build Settings → iOS Deployment Target (IPHONEOS_DEPLOYMENT_TARGET). Jika proyek berisi beberapa target ekstensi (Widget, Watch), masing-masing memiliki Deployment Target sendiri.

Konfigurasi melalui Swift Package Manager

Untuk pustaka yang didistribusikan melalui SPM, Deployment Target ditentukan dalam Package.swift di parameter platforms. Pustaka dengan platforms: [.iOS(.v16)] hanya akan tersedia untuk aplikasi dengan Deployment Target iOS 16.0+. Saat menghubungkan pustaka semacam itu ke proyek dengan Target 15.0, Xcode akan memberikan kesalahan ketidakcocokan. Di CocoaPods, Deployment Target diatur dalam Podfile: platform :ios, '16.0'.

swift
// Package.swift — Deployment Target untuk pustaka SPM
import PackageDescription

let package = Package(
    name: "MyLibrary",
    platforms: [
        .iOS(.v16),
        .macOS(.v13),
        .watchOS(.v9),
        .tvOS(.v16)
    ],
    products: [
        .library(
            name: "MyLibrary",
            targets: ["MyLibrary"]
        )
    ],
    dependencies: [],
    targets: [
        .target(
            name: "MyLibrary",
            swiftSettings: [
                .enableUpcomingFeature("ConciseMagicFile")
            ]
        )
    ]
)

// Pemeriksaan kompatibilitas dalam kode
#if swift(>=5.9)
// Fitur Swift 5.9+ (Xcode 15+)
#endif

Dalam contoh Package.swift, platform diatur ke iOS 16+, macOS 13+, watchOS 9+, tvOS 16+. Proyek apa pun dengan Deployment Target di bawah iOS 16.0 tidak akan dapat menghubungkan pustaka ini. Parameter swiftSettings mencakup upcoming features untuk versi Swift tertentu. SPM secara otomatis memeriksa kompatibilitas platforms saat menambahkan dependensi.

CocoaPods dan Podfile

Podfile menggunakan direktif platform :ios, '16.0'. Setelah pod install, CocoaPods memeriksa Deployment Target setiap pustaka pod: jika setidaknya satu memiliki Target lebih tinggi dari proyek, instalasi akan berakhir dengan kesalahan "The iOS deployment target 'IPHONEOS_DEPLOYMENT_TARGET' is set to 17.0, but the range of supported deployment target versions is 16.0 to 17.0". Solusi — turunkan Target pod yang bermasalah atau naikkan Target proyek.

ruby
# Podfile — contoh dengan Deployment Target
platform :ios, '16.0'

# Abaikan peringatan tentang Deployment Target
post_install do |installer|
    installer.pods_project.targets.each do |target|
        target.build_configurations.each do |config|
            config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '16.0'
        end
    end
end

Hook post_install di Podfile memaksa pengaturan Deployment Target 16.0 untuk semua pustaka pod. Ini berguna ketika salah satu pod menentukan Target yang lebih tinggi dari yang diperlukan untuk fungsionalitasnya. Gunakan ini hanya jika Anda yakin pod tidak menggunakan API dari versi iOS yang lebih tinggi.

Pemeriksaan @available dan #available dalam kode Swift dan Objective-C

@available dan #available — direktif Swift dan Objective-C untuk memanggil API dengan aman yang hanya tersedia pada versi OS tertentu. Jika Deployment Target proyek adalah iOS 16.0 dan metode memerlukan iOS 17.0, panggilan langsung akan menyebabkan crash runtime pada perangkat dengan iOS 16.0-16.x. Pemeriksaan ketersediaan — alat wajib untuk mendukung beberapa versi iOS.

@available — pemeriksaan deklaratif

Direktif @available diterapkan pada kelas, metode, atau seluruh file. Jika @available(iOS 17.0, *) ditentukan sebelum kelas, seluruh kelas hanya tersedia di iOS 17.0+. Upaya memanggil kelas di iOS 16.0 akan menyebabkan kesalahan runtime. Gunakan @available untuk mengisolasi seluruh modul fungsionalitas yang spesifik untuk versi OS tertentu. Untuk metode di dalam kelas, @available memungkinkan menyembunyikan fungsi individual.

#available — eksekusi bersyarat

Direktif #available (if #available) memeriksa versi OS saat runtime dan menjalankan kode hanya jika cocok. Digunakan di dalam fungsi untuk memilih antara implementasi baru dan lama. Di Objective-C, analognya adalah @available(iOS 17.0, *) di dalam if. Untuk pemeriksaan yang lebih kompleks, gunakan ProcessInfo.processInfo.isOperatingSystemAtLeast untuk membandingkan komponen versi (major, minor, patch).

swift
import UIKit
import SwiftUI

// 1. @available — seluruh kelas hanya untuk iOS 17+
@available(iOS 17.0, *)
class ObservationViewModel: ObservableObject {
    @Published var name: String = "User"

    // Menggunakan framework Observation — hanya tersedia iOS 17+
    func updateWithObservation() {
        let newName = "Updated via Observation"
        name = newName
    }
}

// 2. #available — panggilan bersyarat di dalam fungsi
func configureLiveActivity() {
    if #available(iOS 16.1, *) {
        // Live Activities API — tersedia sejak iOS 16.1
        let activity = Activity<MyAttributes>(
            attributes: MyAttributes(name: "Live"),
            contentState: MyContentState(value: 42)
        )
        Task {
            await activity.activate()
        }
    } else {
        // Fallback: pemberitahuan push atau tidak ada
        print("Live Activities tidak tersedia")
    }
}

// 3. ProcessInfo — pemeriksaan versi yang tepat
func checkOSVersion() {
    let osVersion = ProcessInfo.processInfo.operatingSystemVersion
    print("iOS \(osVersion.majorVersion).\(osVersion.minorVersion).\(osVersion.patchVersion)")

    // Perbandingan komponen
    if osVersion.majorVersion >= 17 {
        print("iOS 17+ terdeteksi")
    }
}

// 4. Objective-C @available
// Di Objective-C, @available digunakan:
// if (@available(iOS 17.0, *)) { }

// 5. @available dengan argumen unavailable
@available(*, unavailable, message: "Use configureWithSwiftUI instead")
func legacyConfigureMethod() { }

Kelas ObservationViewModel menggunakan @available untuk mengisolasi fungsionalitas iOS 17. Fungsi configureLiveActivity menggunakan #available untuk memeriksa Live Activities (iOS 16.1+) dengan implementasi fallback. ProcessInfo memeriksa versi OS yang tepat. @available(*, unavailable) menandai metode sebagai tidak tersedia di semua versi — untuk migrasi ke API baru. Tanpa pemeriksaan ini, aplikasi dengan Deployment Target 16.0 akan crash pada perangkat iOS 16.0 saat memanggil API iOS 17.

Objective-C dan @available

Objective-C menggunakan @available(iOS 17.0, *) dengan semantik yang sama dengan Swift #available. Perbedaan: Objective-C memeriksa saat runtime, Swift #available — juga runtime, tetapi dengan petunjuk ke compiler untuk mengoptimalkan percabangan. Untuk kode Objective-C yang berinteraksi dengan Swift, pemeriksaan ketersediaan diperlukan di sisi Objective-C — Swift-bridging tidak menambahkan pemeriksaan otomatis.

Cara memilih Deployment Target yang tepat untuk proyek

Pemilihan iOS Deployment Target — keputusan strategis yang memengaruhi tiga aspek: cakupan audiens, API yang tersedia, dan kompleksitas pemeliharaan kode. Tidak ada nilai tunggal yang benar — pilihan tergantung pada audiens target aplikasi, fungsi minimal yang diperlukan, dan sumber daya tim untuk mendukung kompatibilitas mundur.

Faktor pertama — statistik penggunaan versi iOS. Apple mempublikasikan data instalasi iOS di WWDC dan Apple Developer Dashboard. Per Juni 2025 distribusi: iOS 15 — ~7%, iOS 16 — ~48%, iOS 17 — ~35%, iOS 18 — ~10%. Pemilihan Target 16.0 memberikan cakupan 83%, Target 17.0 — 35%. Untuk aplikasi massal (media sosial, messenger, e-commerce) direkomendasikan Target 16.0. Untuk aplikasi B2B khusus dengan API spesifik — Target 17.0.

Faktor kedua — API yang diperlukan. Jika fungsi utama aplikasi memerlukan SwiftData (iOS 17+), Observation (iOS 17+), atau Live Activities (iOS 16.1+), Target tidak boleh lebih rendah dari versi yang diperlukan. Analisis API yang diperlukan pada tahap desain mencegah situasi di mana di tengah pengembangan ternyata diperlukan Target yang lebih tinggi. Gunakan Availability Checks sebagai opsi cadangan, bukan sebagai rencana utama.

Faktor ketiga — sumber daya pengujian. Dukungan untuk versi iOS lama memerlukan pengujian pada simulator dan perangkat nyata dengan versi tersebut. iOS 15 diuji pada iPhone 6s/7, iOS 16 — pada iPhone 8/X, iOS 17 — pada iPhone XS/XR. Setiap versi backward compatibility tambahan meningkatkan waktu QA. Jika tim kecil, masuk akal untuk memilih Target 2–3 versi di bawah versi saat ini (16.0) — keseimbangan antara cakupan dan biaya tenaga kerja.

Tipe aplikasiTarget yang direkomendasikanCakupanAlasan
Massal (sosial media, marketplace)iOS 16.0~83%Audiens maksimal
Enterprise / B2BiOS 16.0~83%Perangkat perusahaan diperbarui lambat
Startup / MVPiOS 17.0~35%Pengembangan cepat di API baru
Game (Metal 3+)iOS 17.0~35%Memerlukan API grafis baru
Pustaka/SDKiOS 15.0~90%Kompatibilitas maksimal untuk klien

Pustaka dan SDK harus memiliki Deployment Target serendah mungkin (15.0 atau bahkan 14.0) — konsumen pustaka dapat memiliki Target apa pun yang lebih tinggi dari Anda. Jika pustaka memerlukan iOS 17.0, setengah dari proyek tidak akan dapat menghubungkannya. Untuk aplikasi, sebaliknya, Anda dapat membiarkan Target yang lebih tinggi untuk akses ke API baru.

Cara menurunkan Deployment Target setelah menaikkan

Penurunan iOS Deployment Target — tugas yang muncul saat kebutuhan untuk memperluas audiens atau saat menerbitkan pustaka dengan kompatibilitas dengan proyek lama. Tidak seperti menaikkan, menurunkan memerlukan kerja aktif dengan kode: Anda harus mengganti semua panggilan langsung API yang tidak tersedia di Target baru (lebih rendah) dengan pemeriksaan #available dengan implementasi fallback.

Langkah pertama — inventarisasi API. Xcode tidak memberikan kesalahan kompilasi saat menurunkan Target — hanya memperingatkan dengan peringatan kuning. Anda perlu menemukan semua metode dan kelas yang ditandai dengan @available(iOS N+, *), di mana N lebih tinggi dari Target baru. Gunakan pencarian proyek (Cmd+Shift+F) dengan pola "available(iOS". Setiap panggilan tersebut — kandidat untuk refactoring.

Langkah kedua — penggantian dengan pemeriksaan #available. Setiap panggilan API dari versi yang lebih tinggi dibungkus dalam if #available(iOS N+, *) { } else { }. Untuk seluruh kelas, gunakan #if os(iOS) dengan @available di tingkat tipe. Jika API tidak memiliki fallback yang masuk akal (misalnya, Live Activities), fungsionalitas dinonaktifkan untuk versi lama dengan pemberitahuan kepada pengguna.

swift
import UIKit
import SwiftUI

// Penurunan Deployment Target dari 17.0 ke 16.0

// SEBELUM (@available iOS 17.0):
@available(iOS 17.0, *)
func setupObservation() {
    // Observation framework — hanya iOS 17+
    let model = ObservationViewModel()
    // ...
}

// SETELAH (pemeriksaan #available):
func setupObservationCompatible() {
    if #available(iOS 17.0, *) {
        // iOS 17+: Observation framework
        let model = ObservationViewModel()
        // ...
    } else {
        // iOS 16.x: ObservableObject dengan @Published
        let model = LegacyObservableViewModel()
        // ...
    }
}

// Untuk UIKit iOS 17+ API:
@available(iOS 17.0, *)
class ModernViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Menggunakan UIKit TraitChanges (iOS 17+)
        registerForTraitChanges([UITraitVerticalSizeClass.self]) { _, _ in }
    }
}

// Fallback untuk iOS 16:
class LegacyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Tidak ada registerForTraitChanges — kami menggunakan traitCollectionDidChange
    }

    override func traitCollectionDidChange(_: UITraitCollection?) {
        super.traitCollectionDidChange(nil)
        // Pemrosesan perubahan traits untuk iOS 16
    }
}

// Pabrik untuk memilih implementasi berdasarkan versi iOS
func makeViewController() -> UIViewController {
    if #available(iOS 17.0, *) {
        return ModernViewController()
    } else {
        return LegacyViewController()
    }
}

Kode mendemonstrasikan penurunan Target dari iOS 17.0 ke 16.0. Fungsi setupObservation diganti dengan setupObservationCompatible dengan pemeriksaan #available. ViewController dibagi menjadi Modern (iOS 17+) dan Legacy (iOS 16) dengan pabrik makeViewController yang memilih implementasi berdasarkan versi OS. Arsitektur semacam itu memungkinkan mempertahankan dua Deployment Target tanpa menduplikasi seluruh basis kode — hanya modul yang diberi versi.

Peringatan Xcode dan cara mengatasinya

Setelah menurunkan Deployment Target, Xcode akan menyorot kuning semua panggilan API yang tidak tersedia di Target baru. Peringatan "In iOS 16.0 and later" berarti metode memerlukan versi yang lebih tinggi. Solusi: tambahkan @available atau if #available (direkomendasikan), tekan melalui @available(*, deprecated) untuk migrasi bertahap, atau hapus panggilan. Pengaturan "Treat Warnings as Errors" dalam proyek akan mengubah peringatan ini menjadi kesalahan kompilasi — aktifkan opsi ini untuk kontrol.

Pertanyaan yang sering diajukan

Apa itu iOS Deployment Target?

iOS Deployment Target — versi minimum iOS tempat aplikasi dapat berjalan. Ditentukan di Xcode Project → Info → iOS Deployment Target. Aplikasi dengan Target 16.0 tidak diinstal pada iOS 15.0 dan lebih rendah. App Store memfilter aplikasi berdasarkan parameter ini — pengguna dengan versi yang tidak didukung tidak melihat aplikasi. Analog di Android — minSdkVersion.

Apa perbedaan iOS Deployment Target dengan minSdkVersion?

Kedua parameter menetapkan versi OS minimum untuk instalasi aplikasi. iOS Deployment Target disimpan di Info.plist (MinimumOSVersion), minSdkVersion — di AndroidManifest.xml. iOS tidak memiliki analog untuk targetSdkVersion dan compileSdkVersion — semua perubahan perilaku diterapkan saat kompilasi dengan Base SDK baru. Di Android, perubahan perilaku dikendalikan melalui targetSdkVersion. Pemeriksaan dalam kode: @available di Swift vs Build.VERSION.SDK_INT di Android.

iOS Deployment Target mana yang harus dipilih di tahun 2026?

Direkomendasikan iOS 16.0 untuk aplikasi massal (83% perangkat) dan iOS 17.0 untuk startup dan proyek SwiftUI Observation/SwiftData (35% perangkat). iOS 16.0 didukung di iPhone 8 dan lebih baru, termasuk SwiftUI Layout, NavigationStack, Live Activities. iOS 17.0 memberikan Observation, SwiftData, TipKit. Untuk pustaka dan SDK — iOS 15.0 untuk kompatibilitas maksimal.

Bagaimana cara memeriksa versi iOS dalam kode Swift?

Di Swift, gunakan #available(iOS 17.0, *) di dalam fungsi untuk eksekusi kode bersyarat atau @available(iOS 17.0, *) di tingkat kelas/metode untuk pemeriksaan deklaratif. Untuk versi yang tepat — ProcessInfo.processInfo.operatingSystemVersion, yang mengembalikan OperatingSystemVersion. Di Objective-C, gunakan @available(iOS 17.0, *) di dalam if. Tanpa pemeriksaan, memanggil API di atas Deployment Target menyebabkan crash runtime.

Bisakah Deployment Target diturunkan setelah publikasi?

Menurunkan iOS Deployment Target dimungkinkan, tetapi memerlukan penggantian semua panggilan langsung API dari versi yang lebih tinggi dengan pemeriksaan #available dengan implementasi fallback. Xcode akan memperingatkan dengan peringatan kuning, tetapi tidak akan memberikan kesalahan. API tanpa fallback yang masuk akal (Live Activities, SwiftData) dinonaktifkan pada versi lama. Disarankan untuk memulai dengan Target 2 versi di bawah versi saat ini untuk menghindari migrasi yang rumit.

Ringkasan

  • iOS Deployment Target — versi OS minimum untuk menjalankan aplikasi, analog dari minSdkVersion di Android
  • Dikonfigurasi di Xcode Build Settings (IPHONEOS_DEPLOYMENT_TARGET) dan disimpan di Info.plist (MinimumOSVersion)
  • @available dan #available — mekanisme utama Swift untuk memanggil API di atas Deployment Target dengan aman
  • Pemilihan Target memengaruhi cakupan perangkat: iOS 16.0 — 83%, iOS 17.0 — 35%, iOS 15.0 — 90%
  • Untuk aplikasi massal direkomendasikan iOS 16.0, untuk pustaka — iOS 15.0, untuk startup SwiftData — iOS 17.0
  • Penurunan Target memerlukan refactoring semua panggilan API versi lebih tinggi ke pemeriksaan #available dengan fallback
  • Base SDK di iOS selalu yang terbaru — perubahan perilaku diterapkan ke semua aplikasi, tidak seperti Android targetSdkVersion

Kami akan mengembangkan aplikasi seluler turnkey

IT Sectr membuat aplikasi iOS dan Android untuk startup dan bisnis sejak 2017. Kami akan memberi saran dan mengusulkan solusi terbaik.

Diskusikan proyek

Baca juga