菜单

适用于iOS的应用程序编程指南(一)法律顾问

2019年1月11日 - 法律顾问

简述

当你准备好将你的想法转化为应用程序时,您需要了解系统和利用之间时有暴发的互动。

怎么样采纳本文档

正文档不吻合新手。对于准备好将其应用程序发布到App
Store从前的开发人员。使用此文档作为指导,以询问应用程序怎么着与系统进行互动,以及必须做什么样才能使这么些交互顺利举办。

先决条件

本文档提供有关iOS应用程序架构的详细信息,并向您出示什么落实广大应用级效用。本书假使您曾经设置了iOS
SDK,配置了支出环境,并打听了在Xcode中开创和兑现应用程序的基础知识。

比方你是iOS应用程序开发的新手,请阅读起来开发iOS Apps(斯维夫特(Swift)(Swift))Start
Developing iOS Apps
(Swift)
。该文档为付出进程提供了一步一步的介绍,以扶持你连忙上手。它还包括一个出手教程,从先导到截止,辅导你做到应用成立进程,向您出示怎么样创立一个简便的应用程序并很快运转。

应用程序包

当您构建您的iOS应用程序时,Xcode将其作为捆绑包举行打包。bundle
是文件系统中的一个索引,将相关资源结合在一齐。
iOS应用程序包包含应用程序可执行文件和支撑的资源文件,如应用程序图标,图像文件和本地化内容。表1-1列出了超群的iOS应用程序包的始末,为了演示的目标,该应用程序捆绑包称为MyApp。此示例仅用于讲明目的。本表中列出的一点文件或者不会并发在你自己的应用程序包中。

表1-1超人的应用程序包

 应用程序可执行文件 App executable

MyApp

可执行文件包含应用程序的编译代码。应用程序的可执行文件的称号与您的应用程序名称相同。减去.app扩充名。

此文件是必要的。


消息属性列表文件

Info.plist

Info.plist文件包含应用程序的配置数据。系统运用这么些多少来规定哪些与应用程序交互。

此文件是必需的,必须称为Info.plist。有关详细音信,请参阅消息属性列表文件。


应用程式图示

icon.png

Icon@2x.png

ICON-Small.png

Icon-Small@2x.png

你的使用图标用于在装备的主屏幕上象征你的利用。系统在适合的地方采用任何图标。文件名中蕴藏@
2x的图标适用于含有Retina展现器的装置。

亟待利用图标。有关指定图标图像文件的信息,请参阅应用程序图标。


起步图像

Default.png

Default Portrait.png 

Default Landscape.png 

系统在你的应用程序启动时将此文件用作临时背景。只要您的应用程序准备好显示其用户界面,它就会被去除。

最少需要一个启动印象。有关指定启动映像的音信,请参阅应用启动(默认)图片。App
Launch (Default)
Images
.


故事板文件(或nib文件)

MainBoard.storyboard

故事板包含应用程序在屏幕上显得的视图和视图控制器。故事板中的视图按照突显它们的视图控制器举行集团。故事板还会识别将用户从一组视图转移到另一组视图的变换(称为段
segues )。

当您创制项目时,主要故事板文件的称呼由Xcode设置。您可以因此为Info.plist文件中的UIMainStoryboardFile键分配不同的值来更改名称。)使用nib文件而不是故事板的应用程序可以动用NSMainNibFile键替换UIMainStoryboardFile键,并动用该键指定其关键nib文件。

故事板(或nib文件)的利用是可选的,但推荐应用。


临时分发图标

iTunesArtwork

假定您正在分发您的应用程序,请添加512 x
512像素版本的应用程序图标。该图标经常由App Store从你提交给iTunes
Connect的材料提供。不过,由于分发的应用程序不会经过App
Store,您的图标必须存在于应用程序包中。
iTunes使用此图标表示您的应用程序。
(假设你以这种艺术分发您的应用程序,则您指定的文书应与App
Store中提交的文本一律)。

该图标的文本名必须是iTunesArtwork,不得含有文件扩张名。此文件是临时分发所必需的,否则为另外选项。


设置包

Settings.bundle

要是要经过“设置”应用程序公开自定义应用程序首选项,则必须含有设置包。此软件包包含属性列表数据和定义应用程序首选项的其他资源文件。
“设置”应用程序使用此包中的信息来组成应用程序所需的界面元素。

此捆绑是可选的。有关首选项和点名设置包的详细消息,请参阅首选项和安装编程指南。Preferences
and Settings Programming
Guide
.


非本地化资源文件

sun.png

mydata.plist

非本地化资源包括你的采纳使用的图像,声音文件,电影和自定义数据文件。所有这么些文件应当放置在应用程序包的顶层。


本地化资源的子目录

en.lproj

fr.lproj

es.lproj

非得将本地化资源放置在一定于言语的门类目录中,其名称由ISO
639-1语言缩写加上.lproj后缀组成。
(例如,en.lproj,fr.lproj和es.lproj目录包含本地化为英文,法文和西班牙文的资源。)

iOS应用应该是国际化的,并且为它帮忙的每种语言都有一个language.lproj目录。除了提供应用程序自定义资源的本地化版本之外,还足以由此在一定于言语的花色目录中放置具有同等名称的文件来本地化应用程序图标,启动印象和安装图标。

至于更多音讯,请参阅国际化您的应用程序。Internationalizing Your
App
.

专注:iOS应用程序包不可以包含名为“资源”的自定义目录。

至于iOS应用程序包结构的更多音讯,请参阅“捆绑编程指南”Bundle
Programming
Guide
。有关如何从包中加载资源文件的信息,请参阅资源编程指南。Resource
Programming
Guide

应用程序所需功效的讲明。

每个应用程序必须阐明运行所需的硬件效率或特色。 App
Store使用此消息来规定用户是否可以在特定设备上运行您的采纳。您可以使用项目的“音讯”选项卡中的“必需配备”效能条目来编排应用程序的要求列表。有关怎么着布置此密钥的音信,请参阅申明所需的设施成效。Declaring
the Required Device
Capabilities

一个或四个图标。

系统在用户设备的主屏幕上出示你的应用程序图标。系统还足以在“设置”应用程序中动用此外版本的图标,或者在突显搜索结果时拔取。有关如何指定应用程序图标的信息,请参阅应用程序图标。App
Icons

动用启动(默认)图像

当系统第一次在装置上启动应用程序时,它会在屏幕上暂时显示静态启动影象。这多少个图像是你应用程序的启航印象,它是您在Xcode项目中指定的资源。启动图像为用户提供应用程序启动的即时报告,同时让应用程序准备起头用户界面。当您的应用程序的窗口已布置并准备好展现时,系统会切换该窗口的开行图片。

当您的应用程序的用户界面的流行快照可用时,系统会更爱好使用该映像作为应用程序的启动映像。当你的应用程序往日台转换来后台时,系统会吸收应用程序用户界面的快照。当你的应用程序重返到前台时,尽可能拔取该映像而不是开行印象。如若用户已经干掉了你的应用程序,或者您的应用程序未运行很长日子,则系统将舍弃快照,比量齐观新依靠于启动影象。

新的Xcode项目包括你的应用程序启动图像的图像资源条目。要添加启动图片,请将相应的图片文件添加到项目标图片资产(image
assets)。在构建时,Xcode会将相应的密钥添加到应用的Info.plist文件中,并将图像放置在应用程序包中。

有关规划应用程序启动影像(包括那个映像的高低)的音信,请参阅“iOS人机界面指南”。iOS
Human Interface
Guidelines

提供所需资源

你创立的每个应用都不可能不具有以下资源和元数据集,才能在iOS设备上正确显示:

也得以看看

如果你正在上学iOS,请阅读iOS技术概述iOS Technology
Overview
,您可以将其纳入iOS应用程序技术。

应用程序期望援助的基本点功效

该连串可望每个应用程序都负有部分特定的资源和安排数据,例如应用程序图标和关于应用程序效率的消息。
Xcode为各种新类型提供一些音信,但无法不提供资源文件,并且在提交应用程序此前必须确保项目中的音信正确无误。

连锁章节:预期应用行为 Expected App
Behaviors

信息属性列表文件。

 Info.plist文件包含您的应用程序的元数据,系统用于与您的应用程序交互。
Xcode将依照项目的安排和设置自动创立此文件。假使要直接查看或修改此文件的情节,可以从类别的信息选项卡中开展修改。有关编辑此文件的信息以及有关应涵盖哪些键的提议,请参阅音信属性列表文件。The
Information Property List
File
.

特性调整对于应用程序来说特别关键

应用程序执行的每个任务都有与之相关联的电力资产。不会三回充电运行几天而急速耗尽用户电池的应用程序会生出消极的用户体验,并且更有可能被删去。所以要注意不同操作的工本,并运用系统提供的省电措施。

连锁章节:性能指示 Performance
Tips

音信属性列表文件

Xcode使用你项目标“常规”General ,“效用”Capabilities 和“消息”Info
选项卡中的音信,以在编译时生成应用程序的新闻属性列表(Info.plist)文件。
Info.plist文件是一个结构化文件,其中蕴藏关于应用程序配置的紧要音讯。它由App
Store和iOS用于确定你的应用程序的效率并查找关键资源。每个应用都必须含有此文件。

即便如此Xcode提供的Info.plist文件包含所有必要条目的默认值,但大多数应用程序需要展开部分改变或加上。只要有可能就接纳“常规”和“效用”选项卡来指定应用程序的安排音信。这个选项卡包含可用于应用程序的最广泛的布局选项。假使在这一个选项卡中没有看到特定选项,请使用“新闻”选项卡。

对此Xcode不提供自定义配置界面的选项,您必须运用Xcode属性列表编辑器直接提供适当的键和值。
“音信”选项卡的“自定义iOS目的属性”部分含有要含有在Info.plist文件中的条目标摘要。默认情状下,Xcode显示预期效益的可读描述,但各类成效实在对应于Info.plist文件中的唯一键。大多数键是可选的,很少使用,但在概念任何新品类时,您应该考虑多少个键:

在“新闻”选项卡中扬言应用程序所需的功效。所需的装备效能部分含有关于您的应用程序运行所需的设备级功效的新闻。
App
Store使用此条款中的音讯来确定应用程序的功效,并避免将其安装在不协理应用程序功能的装备上。有关详细消息,请参阅阐明所需的设施效能。Declaring
the Required Device
Capabilities

亟需不停Wi-Fi连接的应用程序必须优先阐明。假设你的应用程序与网络上的服务器通信,则足以将应用程序使用Wi-Fi条目添加到花色的“新闻”选项卡。此条款对应于Info.plist文件中的UIRequiresPersistentWiFi键。将此键设置为YES将截留iOS在长日子不运动时关闭活动的Wi-Fi连接。对于利用网络与服务器进行通信的有着应用程序,指出采取此密钥。

报亭应用程序必须讲明自己。包括UINewsstandApp密钥,以标明你的应用程序提供了报亭应用程序的情节。

概念自定义文档类型的应用程序必须注脚这一个序列。行使“信息”选项卡的“文档类型”部分为您匡助的文档格式指定图标和UTI信息。系统拔取此信息来识别可以处理特定文件类型的应用程序。有关向你的应用程序添加文(加文(Gavin))档补助的更多音讯,请参阅基于文档的iOS应用程序编程指南。Document-Based
App Programming Guide for
iOS
.

应用程序可以讲明他们支撑的此外自定义URL方案。应用“消息”选项卡的“URL类型”部分来指定应用程序处理的自定义URL方案。应用程序可以运用自定义URL方案展开通信。有关怎样贯彻对此意义的支撑的更多消息,请参阅使用URL方案与Apps举行通信。Using
URL Schemes to Communicate with
Apps

应用程序必须提供用于访问用户数据和某些应用程序效率的指标字符串(有时称为“使用表明”)。当有关于访问用户数据或设施功效的应用程序存在隐私权时,iOS会提醒用户并表示你的应用程序请求开绿灯。应用程序必须经过在其Info.plist文件中定义的目标字符串向用户解释为啥需要拜访。假如您的使用尝试在没有提供相应的目标字符串的情状下访问,则您的应用程序将脱离。

内需用户许可的数额和效能如表1-2所示。Purpose strings are described in
theCocoa
Keys
chapter
ofInformation Property List Key
Reference
.

至于可以蕴涵在Info.plist文件中的键和值的详细音信,请参阅音信属性列表键参考。Information
Property List Key
Reference

扬言所需的设施功效

抱有应用程序必须讲明其运作所需配备的一定效用。
Xcode包括项目消息选项卡中的画龙点睛配备效能条目,并填写部分低于要求。您可以向此条款添加值以指定应用程序的别样要求。所需的配备成效条目对应于应用的Info.plist文件中的UIRequiredDeviceCapabilities密钥。

UIRequiredDeviceCapabilities键的值是数组或字典,其中蕴藏标识应用程序需要的职能的其他键(或显然不准)。倘若应用数组指定键的值,则键的存在表示该意义是必不可少的;没有键表示该功用不是不可或缺的,并且应用程序能够在未曾它的意况下运作。若是你指定字典,字典中的每个键都必须有一个布尔值,表示该意义是必需还是被明令禁止。值为true表示效能是少不了的,值为false表示该意义不可以在装置上显示。假诺给定的法力是你的应用程序可选的,请勿在字典中涵盖相应的键。

至于能够为UIRequiredDeviceCapabilities键包含的值的详细音讯,请参阅新闻属性列表键参考。Information
Property List Key
Reference

预料的行使行为

每个新的Xcode项目布局为当下在iOS模拟器或相应设施上运行。但只需可以在配备上运行并不意味着你的应用程序已预备好在App
Store上发表。每个应用程序都亟需定制化,以保险用户有得天独厚的体会。可以为你的应用程序提供自定义的图标,用更好的想法来制定有关应用程序使用界面。本章介绍了你应该在最初设计的进程中考虑所有应用程序预期行为。

襄助用户隐私

统筹用户隐私很重点。大多数iOS设备都带有用户可能不想暴露给采纳或外部实体的个人数据。要是您的应用访问或不正确地利用数据,则用户可能会透过删除您的采纳。

唯有在依照适用法律得到的用户知道同意的场合下才能访问用户或配备数量。其余,选取适度步骤体贴用户和设施数据,并对你怎么样使用它们举办透明化。以下是您可以采纳的局部顶尖做法:

审结政党或行业来源的指点方针,包括以下文件:

联邦贸易委员会关于移动隐私的告知:移动隐私披露:通过透明度建立信任。

欧盟数据珍惜委员对移动应用数据珍惜的理念:http://ec.europa.eu/justice/data-protection/article-29/documentation/opinion-recommendation/files/2013/wp202\_en.pdf

扶桑内政部智能手机隐私举措:

智能手机隐私计划(2012):

英文:http://www.soumu.go.jp/main\_sosiki/joho\_tsusin/eng/presentation/pdf/Initiative.pdf

日语:http://www.soumu.go.jp/main\_content/000171225.pdf

智能手机隐私计划II(2013):

英文:http://www.soumu.go.jp/main\_sosiki/joho\_tsusin/eng/presentation/pdf/Summary\_II.pdf

日语:http://www.soumu.go.jp/main\_content/000247654.pdf

南卡罗来纳州总检察长关于移动隐私的指出:隐私权:移动生态系统的提出

那些报告为保养用户隐私提供了有效的指出。您还应有与商家的法律顾问一起查处这多少个文件。

在你的应用程序需要多少时,请求访问受iOS系统授权设置保障的灵活用户或配备数量。您必须在应用程序的Info.plist文件中提供用途字符串(有时称为使用验证字符串),以分解您的应用程序需要您尝试访问的数额或资源的案由。由iOS系统授权设置保障的多寡包括地点,联系人,日历活动,提示,照片,媒体和不少任何连串;参见表1-2。在用户未授权访问所请求的数目标情景下提供合理合法的回退行为。

与用户透明地询问他们的数量将咋样接纳。例如,当您将应用程序提交到App
Store时,请将你的隐私政策或宣称的URL指定为iTunes
Connect元数据的一有的。您可能还想在你的利用表明中总括该策略或宣称。

关于在iTunes Connect中提供利用隐私政策的更多音信,请参阅在iTunes
Connect中加上应用程序。

给用户控制其用户或设施数据。提供设置,以便用户可以依据需要禁用对少数品种的机智音讯的造访。

伸手并采用到位给定任务所需的最少量的用户或配备数量。不要因为不领悟的因由寻求访问或收集数据,因为不必要的来由,或者您觉得今后可能会有用。

应用有理的步子来保障你在应用程序中募集的用户和设施数量。在该地存储此类消息时,请尝试利用iOS数据爱护效能(使用“使用磁盘加密爱戴数量”中的描述)将其储存为加密格式。通过网络发送用户或配备数量时,使用应用传输安全性(如NSAppTransportSecurity所述)。

若果你的应用程序使用ASIdentifierManager类,则必须听从其advertisingTrackingEnabled属性的值。要是用户将该属性设置为否,则仅对有限广告目的采取ASIdentifierManager类。
“有限广告用途”是指频次上限,归因,转换事件,估算唯一用户数量,广告欺诈检测,仅用于广告目标的调试,以及Apple可能允许的广告扶助API在文档中恐怕同意的此外用途。

倘诺还尚未如此做,请截止使用由UIDevice类的uniqueIdentifier属性提供的绝无仅有设备标识符(UDID)。该属性在iOS
5.0中已被弃用,App
Store不收受使用该标识符的新利用或采用改进。相反,应用程序应该依照需要使用UIDevice类的identifierForVendor属性或ASIdentifierManager类的advertisingIdentifier属性。

就算你的应用程序补助音频输入,请将音频会话配置为仅在实际计划开首录制时展开录制。假如你不打算即刻录制,请勿在启动时配置您的音频会话举办录制。当应用程序配置他们的音频会话举办录制时,该系列会提醒用户,并为用户提供禁用应用程序录制的选项。

表1-2列出了iOS协理的资源和多少授权类型。对于每个门类,表格展现用途字符串密钥和用于检查授权情况的API。

重中之重提醒:当您的应用程序尝试运用受保障的档次时,系统会指示用户指示要求访问的权位。从iOS
10从头,Info.plist文件必须带有用于映现在权力警报中的每个这样的品类的用处字符串。尽管你的应用程序尝试访问受保障的门类,而你没有提供对应的目标字符串,则应用程序将脱离。
(此行为同一适用于iMessage应用程序,在应用程序访问设备的照相机或Mike风从前必须带有表1-2中列出的相关键。)

对于一些受保障的多寡和资源,iOS框架提供专门的API来检查和请求授权,如表1-2所示。

由于用户可以随时使用“设置”来改变授权,请在造访任何这个项目事先检查授权情形。
(某些意义,特别是活动和Home基特,不提供用于检查系统授权意况的专用API,具体请参见表1-2)

表1-2受系统授权设置保障的多少和资源

翻开表1-2当做应用程序隐私作为的起点,而不是一个周密的清单。此表的始末随iOS更新而变化。

国际化您的应用程序

出于iOS应用程序分布在许多国度/地区,因而本地化应用的情节可以扶助你吸引更多客户。当用户本地化为母语时,用户更有可能使用该行使。当您将面向用户的情节就是资源文件时,本地化该内容是一个针锋相对简单的进程。

在你可以本地化您的情节前边,您必须将你的应用程序国际化,以造福本地化过程。将你的应用程序国际化包括将其它面向用户的内容分解为可本地化的资源文件,并提供用于存储该内容的特定于言语的类别(.lproj)目录。它还表示在应用一定于言语的区域安装情节时使用方便的技艺(如日期和数字格式化程序)。

对此截然国际化的应用程序,本地化过程将创设新的特定于言语的资源文件,以供您添加到项目中。典型的iOS应用程序需要以下类型资源文件的本地化版本:

故事板文件(或nib文件) –
工作台可以蕴涵需要本地化的文书标签和任何情节。您或许还亟需调整界面项的岗位以适应文本长度的变动。
(类似地,nib文件可以分包需要本地化的文件或需要改进的布局。)

字符串文件 –
字符串文件(由于它们的.strings文件扩张名而被取名)包含应用程序突显的静态文本的本地化版本。

图像文件 –
您应制止本地化图像,除非图像包含文化特定的始末。尽可能防止将文件直接存储在图像文件中。对于你在应用程序中加载和使用的图像,将文件存储在字符串文件中,并在运作时将该公文与基于图像的内容统一。

视频和音频文件 –
您应该避免本地化多媒体文件,除非它们含有语言特定或一定于文化的内容。例如,您将需要本地化包含语音跟踪轨道的视频文件。

关于国际化和本地化流程的信息,请参阅国际化和本地化指南。Internationalization
and Localization
Guide

有关在应用程序中动用资源文件的不利方法的音信,请参阅资源编程指南。
Resource Programming
Guide

关于iOS应用程序架构

应用程序需要与iOS一起干活,以保证他们提供优质的用户体验。
除了为你的应用程序的宏图和用户界面设计一个很好的计划性,一个壮烈的用户体验包含众多别样因素。
用户期望iOS应用程序可以高效响应,同时期待应用程序尽可能少地运用电能。应用程序针对当下设备可是急需匡助所有最新的iOS设备
。先河施行这一个作为似乎不怎么不方便,但是iOS能提供帮扶。

该文档优秀展示了使你的应用程序在iOS上正常运行的骨干行为。
您可能不会兑现本文档中描述的各种效能,但你应该为您创设的每个品种考虑这几个职能。

在意:开发iOS应用程序需要设置了iOS SDK的基于AMD的Macintosh总计机。
有关咋样取得iOS SDK的音讯,请转到iOS Dev
Center

应用程序必须在多任务环境中高速运转

电池寿命对于用户来说非凡紧要,性能,响应能力和不错的用户体验也是这么。尽量裁减应用程序的电池使用量,确保用户能够全天候运行应用程序,而无需为装备充电,但启动和准备急迅运转也很首要。
iOS多任务实现提供精美的电池组寿命,而不会牺牲用户愿意的响应性和用户体验,但运行起来需要应用程序采取系统提供的所作所为。

连带章节:后台执行,处理应用程序状态转换的策略 Background
Execution
,Strategies
for Handling App State
Transitions

应用程序之间的通信遵守具体的路径

为了安全起见,iOS应用程序在沙盒中运行,并且减弱与此外应用程序的相互。当您想与系统中的其他应用程序进行通信时,有切实可行的连锁措施。

连锁章节:应用间通信 Inter-App
Communication

应用程序听从突出的实施路径

从用户启动应用程序到它退出的时候,应用程序听从一个概念特出的施行路径。在应用程序的生命周期中,它可以在前台和后台执行之间转换,它可以被终止和重复启航,并且可以临时进入睡眠境况。每趟更换来新的境况时,应用程序的只求都会变动。前台应用程序几乎可以做任何事情,但后台应用程序必须尽可能少地举行。您可以动用意况转换到对号入座地调整应用的作为。

有关章节:应用程序生命周期,处理应用程序状态转换的策略 The App Life
Cycle
,Strategies
for Handling App State
Transitions

一个或三个启动图像。

开行应用程序后,系统会突显一个暂时图片,直到应用程序可以显示其用户界面。这些临时图片是你应用程序的启动图片,它向用户提供应用程序启动的即时报告,并急迅烟消云散。您必须为应用程序提供起码一个开行图片,您可以提供任何启动图片以化解具体情状。有关成立启动图片的信息,请参阅应用启动(默认)图片。App
Launch (Default)
Images

这多少个资源是有着应用程序所必不可少的,但不是您应该包含的绝无仅有资源。默认情状下,Xcode不含有在动用的Info.plist文件中的许多键。只有将一定效用合并到应用程序中,一些附加键才显示重要。例如,使用Mike(麦克)风的应用程序应涵盖NSMicrophoneUsageDescription键,并向用户提供有关应用程序怎么着行使它的信息。

采取图标

每个应用程序必须提供一个图标呈现在装备的主屏幕和App
Store中。一个应用程序实际上可以指定几个例外的图标,以便在不同的景观下使例如,当彰显搜索结果时,应用程序可以提供一个小图标,并且可以为Retina呈现器的装备提供高分辨率图标。

新的Xcode项目包括应用程序图标图像的图像资源条目。要添加图标,请将相应的图像文件分配给项目标图像资源。在构建时,Xcode会将相应的密钥添加到应用的Info.plist文件中,并将图像放置在应用程序包中。

有关规划使用图标(包括这么些图标的分寸)的信息,请参阅iOS人机界面指南。iOS
Human Interface
Guidelines

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图