首先,弃用是结束 API 生命周期的第一步,Apple 警告开发人员这些 API 将在未来的 iOS 版本中删除。除了苹果,没人知道什么时候。这当然是一种智慧(例如安全问题、更好的 API 设计等)。
开发使用已弃用 API 的 SDK 通常被认为是死路一条。我相信您有自己的理由,但是,任何使用您的 SDK 的人都会问自己是否会有任何价值或是否会产生维护开销。
在开发阶段存在一些您应该注意的问题。如果使用您的 SDK 的应用程序开发人员将部署目标设置为 iOS14,Xcode 很可能会将其标记为警告。这取决于其他因素,例如您正在使用的开发语言,是否已经编译等。
假设您有充分的理由继续前进,那么可能会发生多种情况。
在生产中,对您的问题的简短回答是,如果在 Apple 的下一次操作系统升级中删除 API(如果应用程序开发人员在发布之前未采取任何操作),应用程序将会崩溃。但是,长答案比这要复杂一些。
最好的情况是 Apple 很长一段时间都不会删除 API,例如 UIWebView。我认为距 Apple 弃用该框架已经至少 5 年了,从技术上讲,您仍然可以使用 UIWebView 构建应用程序。这意味着您不必做任何事情(理论上)。
但是,如果 API 被新的操作系统更新删除,有几种情况:
-
设备符合升级操作系统的条件,那么当应用程序/sdk 调用 API 时,应用程序很可能会一直崩溃。
-
如果设备不符合升级操作系统的条件(例如卡在 iOS 10 上),则应用仍会在这些设备上运行一段时间,直到所有者购买新设备(无论应用开发者是否采取行动)。该特定应用程序版本也应该可以通过 iCloud 购买/下载获得。因此,即使客户将其删除等,客户也可以重新下载该版本。
对于活跃的应用开发者,第一种情况不应该发生。我希望他们在操作系统版本的下一个测试版上测试该应用,并在出现问题时采取措施,例如要求您提供更新,或用另一个 SDK 替换您的 SDK。
API 删除过程可能会更明智一些,Apple 可能会强迫你,但仍要温和。 Apple 可能会明确表示并警告开发人员,任何包含 API 的新应用程序或应用程序更新都不会被 App Store 接受。这将应用程序开发人员的双手联系在一起。他们需要做出选择。该警告将提前几个月发出,您可以将这项工作放入您的待办事项中并进行计划。
另一方面,第 2 点中的场景一开始可能并不明显,Apple 在说服客户购买最新设备方面做得很好。有一个相对的 2 年周期,因此您可能找不到很多使用旧手机的客户,这些手机卡在旧操作系统上。根据您的重要性级别,这可能会被忽略。
应用开发者可能会也可能不会保留应用的最小目标。如果他们如此坚持,那么他们的应用程序很可能与最新的设备不兼容,或者 Apple 可能会拒绝他们的更新(如上所述)。那么这意味着它几乎是应用程序生命的终结,只有少数客户使用。
还有一种情况,Apple 也可能会从 App Store 和 iCloud 下载中删除一段时间未维护的应用程序(这种情况已经发生)。