iOS Deployment Target (tinatawag ding iOS Target, Deployment Target) — ang pinakamababang bersyon ng Apple operating system kung saan maaaring patakbuhin ang isang app. Ang parameter ay itinakda sa Xcode project at tinutukoy ang hangganan ng compatibility: kapag pumili ng iOS 16.0, ang app ay naka-install lamang sa mga device na may iOS 16.0 at mas bago. Ayon sa Apple Developer Documentation, ang tamang pagpili ng Deployment Target ay nakakaapekto sa saklaw ng audience at sa access sa mga bagong API ng Swift at Objective-C frameworks.
Mga pangunahing punto
iOS Deployment Target — isang parameter ng configuration ng Xcode na nagpapahiwatig ng pinakamaagang bersyon ng iOS, iPadOS, tvOS, watchOS o visionOS kung saan maaaring tumakbo ang isang app. Ang bawat Xcode project ay naglalaman ng setting na ito para sa bawat platform nang hiwalay. Halimbawa, ang isang iOS app ay maaaring magkaroon ng Deployment Target 16.0, at isang watchOS extension — 9.0. Kung ang device ng user ay gumagamit ng iOS 15.0, ang app na may Target 16.0 ay hindi ipapakita sa App Store at hindi mai-install sa pamamagitan ng direktang pamamahagi.
Ang mekanismo ng Deployment Target ay batay sa pagsusuri ng bersyon ng OS sa panahon ng pag-install. Inihahambing ng iOS App Store ang halaga ng Deployment Target mula sa Info.plist (key na MinimumOSVersion) sa bersyon ng OS sa device ng user. Kung mas mababa ang bersyon ng device — ang "Download" na button ay naka-block, at ang App Store API ay hindi nagbabalik ng app sa mga resulta ng paghahanap para sa device na ito. Ang parehong pag-uugali ay nalalapat sa TestFlight, ad-hoc at enterprise distribution.
Ayon sa data ng StatCounter noong Hunyo 2025, ang iOS 16 ay sumasakop sa halos 48% ng mga aktibong iPhone device, iOS 17 — 35%, iOS 18 — 12%, mas lumang bersyon — mga 5%. Ang pagpili ng Deployment Target 16.0 ay sumasaklaw sa 83% ng mga device, Target 17.0 — 35% (iOS 17+ lamang). Ang mga numerong ito ay kritikal para sa paggawa ng desisyon: mas mataas ang Target, mas maliit ang audience, ngunit mas accessible ang pinakabagong SwiftUI at UIKit API.
| Deployment Target | Bahagi ng device (Hunyo 2025) | Mga available na function |
|---|---|---|
| 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% | Mga bagong Apple Intelligence API, pinahusay na SwiftUI |
Ang bawat bagong release ng iOS ay nagdaragdag hindi lamang ng mga user function, kundi pati na rin ng mga API para sa mga developer. Ang mga bagong SwiftUI modifier, UIKit method, frameworks tulad ng SwiftData at Observation ay available lamang sa isang partikular na Deployment Target. Dapat balansehin ng developer ang saklaw ng audience at ang pagkakaroon ng mga modernong tool.
Ang iOS Deployment Target at minSdkVersion ng Android ay gumaganap ng parehong function — itinatakda ang pinakamababang bersyon ng OS para sa isang app. Gayunpaman, ang mga mekanismo ng implementasyon at mga kaugnay na tool ay naiiba. Ang pag-unawa sa mga pagkakaibang ito ay kapaki-pakinabang para sa mga developer na nagtatrabaho sa parehong platform at nakakatulong na maiwasan ang pagkalito kapag lumilipat sa pagitan ng mga ecosystem.
Sa iOS, ang pinakamababang bersyon ay itinakda sa pamamagitan ng Xcode build settings (IPHONEOS_DEPLOYMENT_TARGET) at naka-imbak sa Info.plist (MinimumOSVersion). Sa Android — sa pamamagitan ng build.gradle (minSdkVersion) at AndroidManifest.xml (<uses-sdk android:minSdkVersion>). Ang iOS ay walang mga analog para sa targetSdkVersion at compileSdkVersion — ang mga pagbabago sa pag-uugali sa iOS ay pinamamahalaan ng SDK kung saan na-compile ang app (Base SDK) at ang bersyon ng OS sa device.
| Parameter | iOS | Android |
|---|---|---|
| Pinakamababang bersyon | Deployment Target (IPHONEOS_DEPLOYMENT_TARGET) | minSdkVersion |
| Saan tinukoy | Xcode Build Settings → Info.plist | build.gradle → AndroidManifest.xml |
| Pagsusuri sa code | @available / #available / if #available | Build.VERSION.SDK_INT |
| Target na bersyon | Base SDK (palaging pinakabago) | compileSdkVersion + targetSdkVersion |
| Pag-filter sa tindahan | App Store: MinimumOSVersion | Google Play: minSdkVersion |
Ang pangunahing pagkakaiba — ang Base SDK sa iOS ay palaging ang pinakabagong bersyon na naka-install sa Xcode. Hindi maaaring pumili ng compileSdkVersion ang developer tulad ng sa Android — ang app ay palaging naka-compile laban sa pinakabagong available na SDK. Ang mga bagong pagbabago sa pag-uugali sa iOS ay inilalapat sa lahat ng app na na-compile gamit ang bagong Base SDK, anuman ang Deployment Target. Sa Android, ang targetSdkVersion ay nagbibigay ng kontrol sa mga pagbabago sa pag-uugali, sa iOS ay walang ganoong paghihiwalay.
Hindi tulad ng Android, kung saan ang mga pagbabago sa pag-uugali ay naka-link sa targetSdkVersion, inilalapat ng iOS ang mga pagbabago sa pag-uugali sa lahat ng app na na-compile gamit ang bagong bersyon ng Xcode at Base SDK. Halimbawa, ipinakilala ng iOS 13 ang Dark Mode — lahat ng app na binuo gamit ang Xcode 11 at iOS 13 SDK ay awtomatikong nakatanggap ng suporta para sa dark theme, anuman ang Deployment Target. Sa Android, ang isang katulad na pagbabago (Scoped Storage) ay inilalapat lamang sa targetSdk >= 29. Ang isang iOS developer ay dapat maging handa para sa mga pagbabago sa pag-uugali sa bawat bagong Xcode, nang walang posibilidad ng pagkaantala.
Ang kaalaman sa parehong platform ay nagbibigay-daan upang mahulaan ang mga kahihinatnan ng pagpili ng pinakamababang bersyon at magplano ng mga update sa code para sa mga bagong API. Sa IT Sectr ginagamit namin ang parehong ecosystem mula noong 2017 — ipinapakita ng praktika na ang iOS Deployment Target ay dapat piliin ng 2–3 bersyon sa ibaba ng kasalukuyan para sa balanse ng saklaw at functionality.
Ang configuration ng iOS Deployment Target ay ginagawa sa ilang lugar ng proyekto: ang pangunahing Target, ang Pods project (kung ginagamit ang CocoaPods), mga dependency ng Swift Package Manager at Widget/Extension target. Kung magkaiba ang mga halaga sa pagitan ng pangunahing app at mga extension, ginagamit ng App Store ang maximum sa lahat — ibig sabihin, ang extension ay hindi maaaring magkaroon ng mas mababang Target kaysa sa pangunahing app.
Buksan ang Xcode project → piliin ang Target → tab na General → seksyong Minimum iOS Deployment. Ipinapakita ng drop-down list ang lahat ng available na bersyon ng iOS SDK na naka-install sa Xcode. Ang pagbabago ay inilalapat sa lahat ng build scheme. Alternatibo — tab na Build Settings → iOS Deployment Target (IPHONEOS_DEPLOYMENT_TARGET). Kung ang proyekto ay naglalaman ng maraming target ng extension (Widget, Watch), bawat isa ay may sariling Deployment Target.
Para sa mga library na ipinamamahagi sa pamamagitan ng SPM, ang Deployment Target ay tinukoy sa Package.swift sa parameter na platforms. Ang isang library na may platforms: [.iOS(.v16)] ay magiging available lamang sa mga app na may Deployment Target iOS 16.0+. Kapag ikinonekta ang naturang library sa isang proyekto na may Target 15.0, ang Xcode ay magbibigay ng error sa hindi pagkakatugma. Sa CocoaPods, ang Deployment Target ay itinakda sa Podfile: platform :ios, '16.0'.
// Package.swift — Deployment Target para sa SPM library
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")
]
)
]
)
// Pagsusuri ng compatibility sa code
#if swift(>=5.9)
// Swift 5.9+ na feature (Xcode 15+)
#endifSa halimbawang Package.swift, ang mga platform ay nakatakda sa iOS 16+, macOS 13+, watchOS 9+, tvOS 16+. Ang anumang proyekto na may Deployment Target na mas mababa sa iOS 16.0 ay hindi makakakonekta ng library na ito. Ang parameter na swiftSettings ay may kasamang upcoming features para sa isang partikular na bersyon ng Swift. Awtomatikong sinusuri ng SPM ang compatibility ng platforms kapag nagdadagdag ng dependency.
Gumagamit ang Podfile ng direktibang platform :ios, '16.0'. Pagkatapos ng pod install, sinusuri ng CocoaPods ang Deployment Target ng bawat pod library: kung hindi bababa sa isa ay may mas mataas na Target kaysa sa proyekto, ang pag-install ay magtatapos sa error na "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". Solusyon — babaan ang Target ng problematikong pod o itaas ang Target ng proyekto.
# Podfile — halimbawa na may Deployment Target
platform :ios, '16.0'
# Huwag pansinin ang mga babala tungkol sa 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
endAng post_install hook sa Podfile ay pumipilit sa Deployment Target 16.0 para sa lahat ng pod library. Ito ay kapaki-pakinabang kapag ang isa sa mga pod ay tumutukoy ng mas mataas na Target kaysa sa kinakailangan para sa functionality nito. Gamitin ito lamang kung sigurado ka na ang pod ay hindi gumagamit ng API mula sa mas mataas na bersyon ng iOS.
@available at #available — mga direktiba ng Swift at Objective-C para sa ligtas na pagtawag ng mga API na available lamang sa ilang bersyon ng OS. Kung ang Deployment Target ng proyekto ay iOS 16.0 at ang isang pamamaraan ay nangangailangan ng iOS 17.0, ang direktang pagtawag ay magdudulot ng runtime crash sa mga device na may iOS 16.0-16.x. Ang mga pagsusuri sa availability — sapilitang tool para sa suporta ng maraming bersyon ng iOS.
Ang direktibang @available ay inilalapat sa mga klase, pamamaraan o buong file. Kung ang @available(iOS 17.0, *) ay tinukoy bago ang isang klase, ang buong klase ay available lamang sa iOS 17.0+. Ang pagtatangka na tawagan ang klase sa iOS 16.0 ay magdudulot ng error sa runtime. Gamitin ang @available para sa paghihiwalay ng buong module ng functionality na partikular sa isang bersyon ng OS. Para sa mga pamamaraan sa loob ng klase, pinapayagan ng @available na itago ang mga indibidwal na function.
Ang direktibang #available (if #available) ay sinusuri ang bersyon ng OS sa runtime at pinapatupad ang code lamang kapag tugma. Ginagamit sa loob ng mga function para pumili sa pagitan ng bago at lumang implementasyon. Sa Objective-C, ang analog ay @available(iOS 17.0, *) sa loob ng if. Para sa mas kumplikadong pagsusuri, gamitin ang ProcessInfo.processInfo.isOperatingSystemAtLeast para ihambing ang mga component ng bersyon (major, minor, patch).
import UIKit
import SwiftUI
// 1. @available — buong klase para lamang sa iOS 17+
@available(iOS 17.0, *)
class ObservationViewModel: ObservableObject {
@Published var name: String = "User"
// Gumagamit ng Observation framework — available lamang sa iOS 17+
func updateWithObservation() {
let newName = "Updated via Observation"
name = newName
}
}
// 2. #available — kondisyonal na tawag sa loob ng function
func configureLiveActivity() {
if #available(iOS 16.1, *) {
// Live Activities API — available mula sa iOS 16.1
let activity = Activity<MyAttributes>(
attributes: MyAttributes(name: "Live"),
contentState: MyContentState(value: 42)
)
Task {
await activity.activate()
}
} else {
// Fallback: push notification o wala
print("Hindi available ang Live Activities")
}
}
// 3. ProcessInfo — eksaktong pagsusuri ng bersyon
func checkOSVersion() {
let osVersion = ProcessInfo.processInfo.operatingSystemVersion
print("iOS \(osVersion.majorVersion).\(osVersion.minorVersion).\(osVersion.patchVersion)")
// Paghahambing ng mga component
if osVersion.majorVersion >= 17 {
print("Natukoy ang iOS 17+")
}
}
// 4. Objective-C @available
// Sa Objective-C ginagamit ang @available:
// if (@available(iOS 17.0, *)) { }
// 5. @available na may argument na unavailable
@available(*, unavailable, message: "Use configureWithSwiftUI instead")
func legacyConfigureMethod() { }Ang klase na ObservationViewModel ay gumagamit ng @available para sa paghihiwalay ng functionality ng iOS 17. Ang function na configureLiveActivity ay gumagamit ng #available para suriin ang Live Activities (iOS 16.1+) na may fallback na implementasyon. Sinusuri ng ProcessInfo ang eksaktong bersyon ng OS. Ang @available(*, unavailable) ay nagmamarka ng pamamaraan bilang hindi available sa lahat ng bersyon — para sa migration sa bagong API. Kung wala ang mga pagsusuring ito, ang isang app na may Deployment Target 16.0 ay mag-crash sa mga device na may iOS 16.0 kapag tumawag ng iOS 17 API.
Ang Objective-C ay gumagamit ng @available(iOS 17.0, *) na may parehong semantika tulad ng Swift #available. Pagkakaiba: ang Objective-C ay sumusuri sa runtime, ang Swift #available — runtime din, ngunit may mga pahiwatig sa compiler para i-optimize ang branching. Para sa Objective-C code na nakikipag-ugnayan sa Swift, ang mga pagsusuri sa availability ay kinakailangan sa panig ng Objective-C — ang Swift-bridging ay hindi nagdaragdag ng mga awtomatikong pagsusuri.
Ang pagpili ng iOS Deployment Target — isang strategic na desisyon na nakakaapekto sa tatlong aspeto: saklaw ng audience, available na API at pagiging kumplikado ng pagpapanatili ng code. Walang iisang tamang halaga — ang pagpili ay depende sa target na audience ng app, pinakamababang kinakailangang function at resources ng team para sa suporta ng backward compatibility.
Unang factor — statistika ng paggamit ng bersyon ng iOS. Inilalathala ng Apple ang data ng pag-install ng iOS sa WWDC at sa Apple Developer Dashboard. Noong Hunyo 2025, ang distribution: iOS 15 — ~7%, iOS 16 — ~48%, iOS 17 — ~35%, iOS 18 — ~10%. Ang pagpili ng Target 16.0 ay nagbibigay ng 83% na saklaw, Target 17.0 — 35%. Para sa mass app (social media, messenger, e-commerce) inirerekomenda ang Target 16.0. Para sa niche B2B app na may specific na API requirements — Target 17.0.
Ikalawang factor — kinakailangang API. Kung ang pangunahing function ng app ay nangangailangan ng SwiftData (iOS 17+), Observation (iOS 17+) o Live Activities (iOS 16.1+), ang Target ay hindi maaaring mas mababa kaysa sa kinakailangang bersyon. Ang pagsusuri ng kinakailangang API sa yugto ng disenyo ay pumipigil sa sitwasyon kung saan sa kalagitnaan ng development ay lumalabas na kailangan ang mas mataas na Target. Gamitin ang Availability Checks bilang backup na opsyon, ngunit hindi bilang pangunahing plano.
Ikatlong factor — resources para sa pag-test. Ang suporta para sa lumang bersyon ng iOS ay nangangailangan ng pag-test sa mga simulator at tunay na device na may mga bersyong ito. Ang iOS 15 ay nate-test sa iPhone 6s/7, iOS 16 — sa iPhone 8/X, iOS 17 — sa iPhone XS/XR. Ang bawat karagdagang bersyon ng backward compatibility ay nagpapataas ng QA time. Kung maliit ang team, makatuwirang pumili ng Target na 2–3 bersyon sa ibaba ng kasalukuyan (16.0) — balanse sa pagitan ng saklaw at gastos sa paggawa.
| Uri ng app | Inirerekomendang Target | Saklaw | Paliwanag |
|---|---|---|---|
| Mass (social media, marketplace) | iOS 16.0 | ~83% | Pinakamataas na audience |
| Enterprise / B2B | iOS 16.0 | ~83% | Mabagal mag-update ang mga corporate device |
| Startup / MVP | iOS 17.0 | ~35% | Mabilis na development sa bagong API |
| Laro (Metal 3+) | iOS 17.0 | ~35% | Nangangailangan ng bagong graphics API |
| Library/SDK | iOS 15.0 | ~90% | Pinakamataas na compatibility para sa mga kliyente |
Ang mga library at SDK ay dapat magkaroon ng pinakamababang Deployment Target (15.0 o kahit 14.0) — ang mga consumer ng library ay maaaring magkaroon ng anumang Target na mas mataas kaysa sa iyo. Kung ang library ay nangangailangan ng iOS 17.0, kalahati ng mga proyekto ay hindi makakakonekta nito. Para sa mga app, sa kabaligtaran, maaari mong bayaran ang mas mataas na Target para sa access sa mga bagong API.
Ang pagbaba ng iOS Deployment Target — isang gawain na lumilitaw kapag kailangan palawakin ang audience o kapag nag-publish ng library na may compatibility sa lumang proyekto. Hindi tulad ng pagtaas, ang pagbaba ay nangangailangan ng aktibong trabaho sa code: kailangan mong palitan ang lahat ng direktang tawag sa API na hindi available sa bagong (mas mababang) Target ng #available na pagsusuri na may fallback na implementasyon.
Unang hakbang — inventory ng API. Ang Xcode ay hindi nagbibigay ng compilation error kapag binabaan ang Target — nagbabala lamang ng mga dilaw na babala. Kailangan mong hanapin ang lahat ng pamamaraan at klase na may markang @available(iOS N+, *), kung saan ang N ay mas mataas kaysa sa bagong Target. Gamitin ang paghahanap sa proyekto (Cmd+Shift+F) sa pattern na "available(iOS". Ang bawat naturang tawag — kandidato para sa refactoring.
Ikalawang hakbang — pagpapalit ng #available na pagsusuri. Ang bawat tawag sa API mula sa mas mataas na bersyon ay binabalot sa if #available(iOS N+, *) { } else { }. Para sa buong klase, gamitin ang #if os(iOS) na may @available sa antas ng uri. Kung ang API ay walang makatwirang fallback (hal. Live Activities), ang functionality ay naka-disable para sa lumang bersyon na may abiso sa user.
import UIKit
import SwiftUI
// Pagbaba ng Deployment Target mula 17.0 hanggang 16.0
// BAGO (@available iOS 17.0):
@available(iOS 17.0, *)
func setupObservation() {
// Observation framework — iOS 17+ lamang
let model = ObservationViewModel()
// ...
}
// PAGKATAPOS (#available na pagsusuri):
func setupObservationCompatible() {
if #available(iOS 17.0, *) {
// iOS 17+: Observation framework
let model = ObservationViewModel()
// ...
} else {
// iOS 16.x: ObservableObject na may @Published
let model = LegacyObservableViewModel()
// ...
}
}
// Para sa UIKit iOS 17+ API:
@available(iOS 17.0, *)
class ModernViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Gumagamit ng UIKit TraitChanges (iOS 17+)
registerForTraitChanges([UITraitVerticalSizeClass.self]) { _, _ in }
}
}
// Fallback para sa iOS 16:
class LegacyViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Walang registerForTraitChanges — gumagamit kami ng traitCollectionDidChange
}
override func traitCollectionDidChange(_: UITraitCollection?) {
super.traitCollectionDidChange(nil)
// Pagproseso ng mga pagbabago sa traits para sa iOS 16
}
}
// Factory para sa pagpili ng implementasyon batay sa bersyon ng iOS
func makeViewController() -> UIViewController {
if #available(iOS 17.0, *) {
return ModernViewController()
} else {
return LegacyViewController()
}
}Ang code ay nagpapakita ng pagbaba ng Target mula iOS 17.0 hanggang 16.0. Ang function na setupObservation ay pinalitan ng setupObservationCompatible na may #available na pagsusuri. Ang ViewController ay hinati sa Modern (iOS 17+) at Legacy (iOS 16) na may factory na makeViewController na pumipili ng implementasyon batay sa bersyon ng OS. Ang ganitong arkitektura ay nagbibigay-daan sa pagpapanatili ng dalawang Deployment Target nang hindi nadodoble ang buong codebase — tanging ang mga bersyong module.
Pagkatapos babaan ang Deployment Target, iha-highlight ng Xcode ng dilaw ang lahat ng tawag sa API na hindi available sa bagong Target. Ang babalang "In iOS 16.0 and later" ay nangangahulugan na ang pamamaraan ay nangangailangan ng mas mataas na bersyon. Mga solusyon: magdagdag ng @available o if #available (inirerekomenda), sugpuin sa pamamagitan ng @available(*, deprecated) para sa gradual na migration, o alisin ang tawag. Ang setting na "Treat Warnings as Errors" sa proyekto ay gagawing compilation error ang mga babalang ito — i-on ang opsyong ito para sa kontrol.
Mga madalas itanong
iOS Deployment Target — ang pinakamababang bersyon ng iOS kung saan maaaring tumakbo ang isang app. Tinukoy sa Xcode Project → Info → iOS Deployment Target. Ang app na may Target 16.0 ay hindi naka-install sa iOS 15.0 at mas mababa. Ini-filter ng App Store ang mga app ayon sa parameter na ito — hindi nakikita ng mga user na may hindi suportadong bersyon ang app. Analog sa Android — minSdkVersion.
Ang parehong parameter ay nagtatakda ng pinakamababang bersyon ng OS para sa pag-install ng app. Ang iOS Deployment Target ay naka-imbak sa Info.plist (MinimumOSVersion), ang minSdkVersion — sa AndroidManifest.xml. Ang iOS ay walang mga analog para sa targetSdkVersion at compileSdkVersion — lahat ng pagbabago sa pag-uugali ay inilalapat sa compilation kasama ang bagong Base SDK. Sa Android, ang mga pagbabago sa pag-uugali ay kinokontrol sa pamamagitan ng targetSdkVersion. Pagsusuri sa code: @available sa Swift vs Build.VERSION.SDK_INT sa Android.
Inirerekomenda ang iOS 16.0 para sa mga mass app (83% ng mga device) at iOS 17.0 para sa mga startup at proyekto ng SwiftUI Observation/SwiftData (35% ng mga device). Ang iOS 16.0 ay suportado sa iPhone 8 at mas bago, may kasamang SwiftUI Layout, NavigationStack, Live Activities. Ang iOS 17.0 ay nagbibigay ng Observation, SwiftData, TipKit. Para sa mga library at SDK — iOS 15.0 para sa maximum na compatibility.
Sa Swift, gamitin ang #available(iOS 17.0, *) sa loob ng mga function para sa kondisyonal na pagpapatupad ng code o @available(iOS 17.0, *) sa antas ng klase/pamamaraan para sa deklaratibong pagsusuri. Para sa eksaktong bersyon — ProcessInfo.processInfo.operatingSystemVersion, na nagbabalik ng OperatingSystemVersion. Sa Objective-C, gamitin ang @available(iOS 17.0, *) sa loob ng if. Kung walang pagsusuri, ang pagtawag ng API sa itaas ng Deployment Target ay humahantong sa runtime crash.
Ang pagbaba ng iOS Deployment Target ay posible, ngunit nangangailangan ng pagpapalit ng lahat ng direktang tawag ng API mula sa mas mataas na bersyon ng #available na pagsusuri na may fallback na implementasyon. Magbabala ang Xcode ng mga dilaw na babala, ngunit hindi magbibigay ng error. Ang mga API na walang makatwirang fallback (Live Activities, SwiftData) ay naka-disable sa lumang bersyon. Inirerekomenda na magsimula sa Target na 2 bersyon sa ibaba ng kasalukuyan upang maiwasan ang kumplikadong migration.
Buod
Gagawa kami ng mobile application na turnkey
Gumagawa ang IT Sectr ng mga iOS at Android application para sa mga startup at negosyo mula noong 2017. Magpapayo kami sa iyo at magmumungkahi ng pinakamahusay na solusyon.
Basahin din