我创建了一个静态库,其部署目标为iOS 10.2.该库集成在部署目标为9.0的应用程序中.
不知何故,该应用程序在iOS 9.0上构建并运行良好.这是为什么?应用程序是否应该构建,即使该库仅针对iOS 10.2及更高版本?
是的, 如果您的应用程序的Base sdk等于或高于静态库的Deployment目标,那么您的构建将无错误地编译.
静态库 内部是一堆编译对象.在您的应用程序编译之后,在链接时,它会检查静态库中使用的符号的可用性.如果您的项目的基本sdk等于或高于静态库的部署目标,您的项目将找到库中使用的所有符号的定义-So No compiler error.
在运行时,如果您在ios版本低于静态库的部署目标的设备上使用您的应用程序,并且使用了该版本中不可用的符号,则可能会出现错误.
如果您的代码/库使用符号:
在部署目标中定义,您的代码链接和构建正常.在运行时:
资料来源:developer.apple.com
这里是来自上面链接的图像,解释了您可以使用哪些符号,具体取决于部署目标和基本sdk

| 归档时间: |
|
| 查看次数: |
250 次 |
| 最近记录: |