我创建了一个具有iOS 10.2部署目标的静态库。该库集成在部署目标为9.0的应用程序中。防止在具有较低部署目标的SDK上构建应用程序
不知何故,应用程序在iOS 9.0上构建并运行良好。这是为什么? 应该建立应用程序,即使该库只针对iOS 10.2及更高版本?
我创建了一个具有iOS 10.2部署目标的静态库。该库集成在部署目标为9.0的应用程序中。防止在具有较低部署目标的SDK上构建应用程序
不知何故,应用程序在iOS 9.0上构建并运行良好。这是为什么? 应该建立应用程序,即使该库只针对iOS 10.2及更高版本?
是,如果您的应用的Base sdk等于或高于静态库的部署目标,则您的构建将无错地编译。
静态库内部是一堆编译对象。应用程序编译完成后,在链接时,它会检查静态库中使用的符号的可用性。如果您的项目的基础sdk等于或高于静态库的部署目标,您的项目将查找库中使用的所有符号的定义-So 无编译器错误。
在运行时,如果您在ios版本低于静态库的部署目标的设备上使用您的应用,并且使用了该版本中不可用的符号,则可能会出错。
如果您的代码/库的使用符号:
在部署目标中定义,您的代码正常链接和构建。运行时:
嗯那就是我所害怕的。虽然这很有道理,但我希望它们能成为我想做的事情。谢谢! –
有趣的问题,用什么符号。 – Fattie