iOS SDK Migration for Mobile App

NOVASOLUTIONS.TECHNOLOGY is engaged in the development, support and maintenance of iOS, Android, PWA mobile applications. We have extensive experience and expertise in publishing mobile applications in popular markets like Google Play, App Store, Amazon, AppGallery and others.
Development and support of all types of mobile applications:
Information and entertainment mobile applications
News apps, games, reference guides, online catalogs, weather apps, fitness and health apps, travel apps, educational apps, social networks and messengers, quizzes, blogs and podcasts, forums, aggregators
E-commerce mobile applications
Online stores, B2B apps, marketplaces, online exchanges, cashback services, exchanges, dropshipping platforms, loyalty programs, food and goods delivery, payment systems.
Business process management mobile applications
CRM systems, ERP systems, project management, sales team tools, financial management, production management, logistics and delivery management, HR management, data monitoring systems
Electronic services mobile applications
Classified ads platforms, online schools, online cinemas, electronic service platforms, cashback platforms, video hosting, thematic portals, online booking and scheduling platforms, online trading platforms

These are just some of the types of mobile applications we work with, and each of them may have its own specific features and functionality, tailored to the specific needs and goals of the client.

Showing 1 of 1 servicesAll 1735 services
iOS SDK Migration for Mobile App
Medium
~3-5 business days
FAQ
Our competencies:
Development stages
Latest works
  • image_mobile-applications_feedme_467_0.webp
    Development of a mobile application for FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Development of a mobile application for XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Development of a mobile application for RHL
    1052
  • image_mobile-applications_zippy_411_0.webp
    Development of a mobile application for ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Development of a mobile application for Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Development of a mobile application for the FLAVORS company
    445

Migrating Mobile Application to New iOS SDK Version

Apple raises the minimum iOS for new features and tightens SDK requirements on App Store Connect every year. Since 2024, apps built with iOS SDK 17+ must use Privacy Manifests. In 2023, Apple required minimum iOS 16 SDK for App Store submissions. Delaying SDK update — first warnings in App Store Connect, then submission blocking.

What Actually Breaks When SDK Changes

Deprecated API — the largest part of the work. UIWebView removed starting with iOS 15 SDK, apps using it get rejection with ITMS-90809. UIAlertView, UIActionSheet, shouldAutorotateToInterfaceOrientation — on iOS 16 SDK these methods don't compile. Search through codebase via Xcode #available + deprecated list from release notes of specific version.

Privacy Manifests (iOS 17 SDK) — new in 2024. Every third-party dependency and the app itself must have PrivacyInfo.xcprivacy file with declaration of used API categories (NSPrivacyAccessedAPITypes): NSUserDefaults, NSFileManager, NSProcessInfo, UIDevice.systemBootTime. If file is missing — ITMS-91053 warning at submission. Became an error since May 2024.

Example PrivacyInfo.xcprivacy:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" ...>
<plist version="1.0">
<dict>
    <key>NSPrivacyAccessedAPITypes</key>
    <array>
        <dict>
            <key>NSPrivacyAccessedAPIType</key>
            <string>NSPrivacyAccessedAPICategoryUserDefaults</string>
            <key>NSPrivacyAccessedAPITypeReasons</key>
            <array>
                <string>CA92.1</string>
            </array>
        </dict>
    </dict>
    </array>
</dict>
</plist>

Reasons (Reasons) — specific codes from Apple documentation. CA92.1 for UserDefaults means "storing user-managed settings". Can't just write any code — must choose from approved list. If no suitable one — write to Apple through App Review, which is itself a quest.

Swift Concurrency and Sendable — iOS 16+ SDK includes extended Sendable checks and actor isolation. A project that compiled without warnings on old SDK produces dozens of warnings on new one: Capture of non-Sendable type 'SomeModel'. With iOS 17 SDK some became errors under strict concurrency checking: complete. On large codebases this is serious work.

Order of Migration Work

Start with audit through xcodebuild:

xcodebuild -workspace MyApp.xcworkspace \
           -scheme MyApp \
           -destination 'generic/platform=iOS' \
           -sdk iphoneos17.0 \
           build 2>&1 | grep -E "error:|warning:" | sort | uniq -c | sort -rn | head -50

This gives quantitative picture: how many errors, what categories, top-50 by frequency. On 300k lines of code typical picture when jumping from iOS 14 SDK to iOS 17 SDK — 15–40 errors and 100–300 warnings.

Third-party dependencies — second issue. A library not updated in 2 years may not support new SDK. Checklist:

  • CocoaPods: pod outdated for list of outdated dependencies
  • SPM: check Package.resolved, look for libraries without fresh tags on GitHub
  • Dependencies with outdated deployment target — conflict with new app minimum iOS

Special case — dependencies without Privacy Manifest. Since May 2024 Apple requires manifests from popular SDKs (Firebase, Crashlytics, Amplitude, Adjust and others updated their packages). But less known libraries may not have manifest, then either fork and add, or drop the dependency.

Migration by complexity level:

Category of Changes Effort
Replace UIWebViewWKWebView Medium (delegate API changes)
Privacy Manifests for custom code Low (configuration)
Privacy Manifests for third-party SDK Depends on author support
Sendable/actor isolation warnings High (architectural fixes)
Removed API (UIAlertView, etc.) Low (direct replacement)

Testing After Migration

Smoke tests on real device with new iOS — mandatory. Simulator and real device can behave differently after SDK change, especially in URLSession timeouts, push notifications, background execution.

Crashlytics or Firebase Crash Reporting — after release monitor new crash signatures in first 24–48 hours. SDK migration sometimes brings crashes in edge cases not covered by tests.

Timeline Benchmarks

Timelines depend on codebase size, amount of deprecated API, and dependency state:

Project Timeline
Small app (< 50k lines, few dependencies) 1–2 days
Medium project (50–150k lines) 3–5 days
Large project with legacy Obj-C code 1–2 weeks