博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
让iOS应用支持不同版本的系统与设备
阅读量:4969 次
发布时间:2019-06-12

本文共 1074 字,大约阅读时间需要 3 分钟。

本文转载至 

 

最近一直在做app的iOS 6和7的同时适配工作,所以在此介绍一下系统与设备的兼容问题。

一、Base SDK与Deployment Target

一个项目(Project)可以有多个目标(Target),每个目标可以指定不同的设置(例如支持不同的系统版本,引用不同的Framework等)。项目设置会覆盖默认设置,而每个目标的设置则会覆盖项目设置。在Xcode的项目浏览窗口中点击项目,在TARGETS中选择某个目标,即可在右侧的“Build Settings”中看到默认设置、项目设置、所选目标设置与最终的设置值。

其中Base SDK指的是用哪个版本的SDK来编译、链接项目源代码。一般来讲Base SDK选择当前Xcode支持的最高版本的SDK(Latest iOS SDK)来编译链接项目工程,这样就可以获得最新的SDK中提供的新功能。

另一个设置是Deployment Target,它指的是能够支持目标正确运行的最低系统版本。默认情况下,Xcode会将该值设置为Base SDK中指定的值,但可以手动修改该值以支持老的系统和设备。你不可以用低于Deployment Target指定的版本的模拟器或者真机来运行和打包app。

例如,当使用Xcode 5打开某个项目时,Base SDK为7.0,也就是用7.0的SDK来编译链接项目app。如果这个app只想支持iOS 7系统,则Deployment Target可以设置为7.0。如果你的app还想兼容iOS 6或者更早版本,则应把Deployment Target置为要支持的最低的系统版本号。由此可知,Deployment Target一定小于等于Base SDK。

注意,因为此时是用最新的SDK生成app,但却允许在早期版本的系统上运行,所以此时开发者要确认在旧系统上运行app时不能调用那些新的SDK中添加的功能,否则会在运行时出错导致app闪退。下面就介绍一下如何确保app能够在旧的系统上正确运行。

 

二、适配旧系统时的注意事项

app在旧的系统上运行的过程中,可能会使用系统未提供的常量、变量、C函数、类、类的方法,也可能会调用不存在的Framework中的功能。对于Xcode4.6.3及更早版本,程序可以编译通过,但运行时闪退。Xcode 5则进行了很大改进,如果代码中出现了上述情况,直接给出警告和错误。

未完待续。

 

更多

 
-

转载于:https://www.cnblogs.com/Camier-myNiuer/p/3436595.html

你可能感兴趣的文章
DELPHI搭建centos开发环境
查看>>
IdHTTPServer允许跨域访问
查看>>
DELPHI开发LINUX包
查看>>
更新.net core 3.0,dotnet ef命令无法使用的解决办法
查看>>
React躬行记(13)——React Router
查看>>
前端利器躬行记(1)——npm
查看>>
前端利器躬行记(2)——Babel
查看>>
前端利器躬行记(3)——webpack基础
查看>>
前端利器躬行记(4)——webpack进阶
查看>>
前端利器躬行记(5)——Git
查看>>
前端利器躬行记(6)——Fiddler
查看>>
每次阅读外文技术资料都头疼,终于知道原因了。
查看>>
zabbix短信网关调用问题总结
查看>>
130242014034-林伟领-实验一
查看>>
Insert excel data into DB
查看>>
复制和输入-编程中
查看>>
SQLSERVER 处理两个日期相减
查看>>
区间+状压 [Haoi2016]字符合并
查看>>
Forbidden You don't have permission to access / on this server.
查看>>
Windows server 2008 R2中安装MySQL !
查看>>