iOS应用程序的生成方法、装置、设备及存储介质与流程

文档序号:17159546发布日期:2019-03-20 00:28阅读:188来源:国知局
iOS应用程序的生成方法、装置、设备及存储介质与流程
本申请实施例涉及软件
技术领域
,特别涉及一种ios应用程序的生成方法、装置、设备及存储介质。
背景技术
:苹果公司(appleinc.)对于开发者提交到应用商店的应用程序(application,简称“app”)的安装包中的代码段大小存在一定限制。例如,对于ios8.0系统,应用程序的代码段必须小于60m。在相关技术中,通过技术手段对ios应用程序的安装包进行瘦身,以满足其代码段小于指定大小的要求。例如,通过删除一些无用的代码段,以缩减ios应用程序的安装包中的代码段大小。由于代码段删减存在瓶颈,对于诸如大型手游或其它一些功能丰富的应用程序来说,采用上述相关技术提供的方法在删除一些无用的代码段之后,可能仍然无法满足限制要求,也即这种方法的通用性较差。技术实现要素:本申请实施例提供了一种ios应用程序的生成方法、装置、设备及存储介质,可用于解决相关技术提供的方法通用性差的问题。所述技术方案如下:一方面,本申请实施例提供一种ios应用程序的生成方法,所述方法包括:创建目标ios应用程序对应的工程,所述工程中包含类型为应用程序的第一编译目标;在所述工程中创建类型为动态库的第二编译目标;将所述第一编译目标中的目标内容从所述第一编译目标挪入到所述第二编译目标中,所述目标内容是包含有代码文件的文件集合;对所述工程进行编译和打包,生成所述目标ios应用程序的安装包,所述安装包中包括与所述第一编译目标对应的应用程序集以及与所述第二编译目标对应的动态库。另一方面,本申请实施例提供一种ios应用程序的生成装置,所述装置包括:工程创建模块,用于创建目标ios应用程序对应的工程,所述工程中包含类型为应用程序的第一编译目标;目标创建模块,用于在所述工程中创建类型为动态库的第二编译目标;内容转移模块,用于将所述第一编译目标中的目标内容从所述第一编译目标挪入到所述第二编译目标中,所述目标内容是包含有代码文件的文件集合;编译打包模块,用于对所述工程进行编译和打包,生成所述目标ios应用程序的安装包,所述安装包中包括与所述第一编译目标对应的应用程序集以及与所述第二编译目标对应的动态库。再一方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述方面所述的ios应用程序的生成方法。又一方面,本申请实施例提供一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上述方面所述的ios应用程序的生成方法。又一方面,本申请实施例提供一种计算机程序产品,当该计算机程序产品被执行时,其用于执行上述方面所述的ios应用程序的生成方法。本申请实施例提供的技术方案至少包括如下有益效果:本申请实施例提供的技术方案中,通过在ios应用程序对应的工程中创建类型为动态库的第二编译目标,然后将原有的类型为应用程序的第一编译目标中的目标内容从第一编译目标挪入到第二编译目标中,最后对该工程进行编译和打包,生成目标ios应用程序的安装包,该安装包中包括与第一编译目标对应的应用程序集以及与第二编译目标对应的动态库。这样,当该目标ios应用程序的安装包被提交到苹果公司的应用商店时,由于苹果公司只会对应用程序集中的代码段大小进行合规检查,而应用程序集中的大部分代码段已经被挪入到动态库中,因此应用程序集中的代码段大小就不会超过限制要求。本申请技术方案无需删减代码段,确保应用程序功能的完整性,且不会出现瓶颈,对于任一ios应用程序均可采用本申请技术方案以规避上述对代码段的限制要求,方案的通用性好。附图说明为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1示出了一种相关技术提供的ios应用程序的生成流程的示意图;图2示出了本申请技术方案提供的ios应用程序的生成流程的示意图;图3是本申请一个实施例提供的ios应用程序的生成方法的流程图;图4是本申请另一个实施例提供的ios应用程序的生成方法的流程图;图5示例性示出了一种修改前后的xcode工程的示意图;图6和图7示例性示出了一种修改前后的xcode工程的工程文件中内容的架构图;图8是本申请一个实施例提供的ios应用程序的生成装置的框图;图9是本申请一个实施例提供的计算机设备的结构框图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。unity是一款适用于开发ios应用程序的引擎,特别适用于游戏应用程序的开发。请参考图1,其示出了一种相关技术提供的ios应用程序的生成流程的示意图。首先,创建目标ios应用程序对应的unity工程。然后,将该unity工程导出为xcode工程,该xcode工程中包含一个类型为应用程序的target(可称为apptarget)。最后,对该xcode工程进行编译和打包,生成目标ios应用程序的安装包。请参考图2,其示出了本申请技术方案提供的ios应用程序的生成流程的示意图。与相关技术提供的生成流程所不同的是,本申请技术方案在导出xcode工程之后,会在该xcode工程中创建至少一个类型为动态库的target(可称为librarytarget),然后将apptarget中的一些代码从apptarget挪入到librarytarget中。最后,对该xcode工程进行编译和打包,生成目标ios应用程序的安装包,该安装包中包括与apptarget对应的应用程序集以及与librarytarget对应的动态库。这样,当该目标ios应用程序的安装包被提交到苹果公司的应用商店时,由于苹果公司只会对应用程序集中的代码段大小进行合规检查,而应用程序集中的大部分代码段已经被挪入到动态库中,因此应用程序集中的代码段大小就不会超过限制要求。本申请技术方案无需删减代码段,确保应用程序功能的完整性,且不会出现瓶颈,对于任一ios应用程序均可采用本申请技术方案以规避上述对代码段的限制要求,方案的通用性好。下面,通过几个实施例对本申请技术方案进行介绍说明。请参考图3,其示出了本申请一个实施例提供的ios应用程序的生成方法的流程图。该方法可应用于计算机设备中,所述计算机设备是指具有计算和处理能力的设备,如pc(personalcomputer,个人计算机)。该方法可以包括以下几个步骤:步骤301,创建目标ios应用程序对应的工程,该工程中包含类型为应用程序的第一编译目标。计算机设备可以在用于开发ios应用程序的工具或平台中创建目标ios应用程序对应的工程。一个工程中可以创建一个或多个编译目标。编译目标用于定义要生成的产品,一个编译目标对应于一个产品,一个编译目标将产品所需的文件和指令组织成一系列可以执行的操作。编译目标的类型可以包括应用程序、动态库等。目标ios应用程序对应的工程中默认包含一个类型为应用程序的第一编译目标,该第一编译目标中包含目标ios应用程序所需的代码文件、资源文件、库文件等内容,对该第一编译目标进行编译和打包之后,可以生成一应用程序集。以xcode工具为例,xcode工具是专用于开发ios应用程序的软件开发工具,在开发目标ios应用程序的过程中,可以创建目标ios应用程序对应的xcode工程。xcode工程中的编译目标称为target,一个xcode工程中可以包括至少一个target。在xcode工程中,类型为应用程序的第一target可称为apptarget。步骤302,在工程中创建类型为动态库的第二编译目标。目标ios应用程序对应的工程中允许创建多个编译目标。在本申请实施例中,在目标ios应用程序对应的工程中创建类型为动态库的第二编译目标。以xcode工程为例,可以在目标ios应用程序对应的xcode工程中创建类型为动态库的第二target,该第二target可称为librarytarget。步骤303,将第一编译目标中的目标内容从第一编译目标挪入到第二编译目标中,目标内容是包含有代码文件的文件集合。可选地,通过解析目标ios应用程序对应的工程文件,然后修改该工程文件,将第一编译目标中的目标内容从第一编译目标中删除,并将目标内容添加到第二编译目标中。在本申请实施例中,由于目标内容是包含有代码文件的文件集合,通过将第一编译目标中的代码文件挪入到第二编译目标中,由于第一编译目标的类型为应用程序,第二编译目标的类型为动态库,后续苹果公司在进行合规检查时,只会对基于第一编译目标进行编译和打包生成的应用程序集中的代码段大小进行合规检查,并不会对基于第二编译目标进行编译和打包生成的动态库中的代码段大小进行合规检查,从而满足苹果公司对代码段大小的限制要求。在一种可能的实现方式中,目标内容包括代码文件。可选地,该代码文件是第一编译目标中的部分代码对应的代码文件。将第一编译目标中的部分代码挪入到第二编译目标中,并适当保留一部分代码在第一编译目标中,而非将第一编译目标中的全部代码挪入到第二编译目标中,这样做是为了确保目标ios应用程序的正常运行,例如将该目标ios应用程序的主函数(即main函数)保留在第一编译目标中,而将除主函数之外的其它代码所对应的代码文件挪入到第二编译目标中。需要说明的一点是,第一编译目标中保留的代码经过编译后的代码段大小,应当小于预设阈值,以满足苹果公司的限制要求,该预设阈值可根据苹果公司的限制要求进行确定。在一些其它实施例中,目标内容除了包括代码文件之外,还包括资源文件和/或库文件。由于将第一编译目标中的一些代码文件挪入到了第二编译目标中,因此可以将相关的资源文件和库文件也一并挪入到第二编译目标中,以避免相互之间存在关联关系的内容因放置在不同编译目标中而导致需要维护额外的依赖和引用关系,简化工程文件中的组织结构。另外,第二编译目标的数量可以是1个,也可以是多个。当第二编译目标的数量为1个时,整个工程的结构较为简单。当然,在一些必要的情况下,也可以创建多个第二编译目标。在一个示例中,假设第二编译目标的数量为n,当n大于1时,可以将目标内容拆分为n份内容,然后将该n份内容分别添加到n个第二编译目标中,每一个第二编译目标中添加n份内容中的一份内容。例如,在目标ios应用程序对应的工程中创建2个第二编译目标,然后将第一编译目标中的一部分目标内容挪入到一个第二编译目标中,并将第一编译目标中的另一部分目标内容挪入到另一个第二编译目标中。步骤304,对工程进行编译和打包,生成目标ios应用程序的安装包,该安装包中包括与第一编译目标对应的应用程序集以及与第二编译目标对应的动态库。目标ios应用程序的安装包即为ipa(iphoneapplication)文件,ipa文件实则是一个压缩包,其中包括了对第一编译目标中的内容进行编译和打包生成的应用程序集,以及对第二编译目标中的内容进行编译和打包生成的动态库。可选地,上述步骤303之后还包括如下步骤:对第二编译目标中的内容进行压缩处理。例如,可以删除第二编译目标中的无用内容,包括无用的代码文件、无用的资源文件、无用的库文件等,也可以对资源文件进行压缩处理等。通过上述方式,可以减少整个安装包的大小。综上所述,本申请实施例提供的技术方案中,通过在ios应用程序对应的工程中创建类型为动态库的第二编译目标,然后将原有的类型为应用程序的第一编译目标中的目标内容从第一编译目标挪入到第二编译目标中,最后对该工程进行编译和打包,生成目标ios应用程序的安装包,该安装包中包括与第一编译目标对应的应用程序集以及与第二编译目标对应的动态库。这样,当该目标ios应用程序的安装包被提交到苹果公司的应用商店时,由于苹果公司只会对应用程序集中的代码段大小进行合规检查,而应用程序集中的大部分代码段已经被挪入到动态库中,因此应用程序集中的代码段大小就不会超过限制要求。本申请技术方案无需删减代码段,确保应用程序功能的完整性,且不会出现瓶颈,对于任一ios应用程序均可采用本申请技术方案以规避上述对代码段的限制要求,方案的通用性好。请参考图4,其示出了本申请另一个实施例提供的ios应用程序的生成方法的流程图。在本实施例中,以在xcode这一ios应用程序的开发工具中生成目标ios应用程序为例,对本申请技术方案进行介绍说明。该方法同样可应用于上文介绍的计算机设备中。该方法可以包括如下几个步骤:步骤401,创建目标ios应用程序对应的xcode工程;其中,xcode工程中包含第一target,该第一target的类型为应用程序。以通过unity开发目标ios应用程序为例,先创建目标ios应用程序对应的unity工程,然后将该unity工程导出为xcode工程。在通过unity开发目标ios应用程序时,会创建该目标ios应用程序对应的unity工程。unity工程中会包含目标ios应用程序的代码、资源、库等内容。在unity工程中,应用程序的代码通常采用c#编写。由于要生成ios应用程序,因此需要将unity工程导出为xcode工程。xcode工程中包括对unity工程中的代码、资源、库等内容进行编译生成的文件,其可以包括代码文件、资源文件、库文件等内容。xcode工程中的代码文件通常采用c++和objective-c编写。在导出xcode工程的过程中,可以通过buildplayer对代码、资源等内容进行编译,生成符合xcode工程的规范要求的代码文件、资源文件等内容。xcode工程中可以包括至少一个target。target用于定义要生成的产品(product),一个target对应于一个产品,一个target将产品所需的文件和指令组织成一系列可以执行的操作。xcode工程中默认包含一个类型为应用程序的第一target,也即该第一target可称为apptarget。该apptarget中包含目标ios应用程序所需的代码文件、资源文件、库文件等内容。步骤402,在xcode工程中创建第二target,该第二target的类型为动态库。xcode工程中允许创建多个target。在本申请实施例中,在xcode工程中创建类型为动态库的第二target,该第二target可称为librarytarget。步骤403,将第一target中的目标内容从第一target挪入到第二target中,该目标内容是包含有代码文件的文件集合。在一种可能的实现方式中,解析xcode工程的工程文件,然后修改该工程文件,将第一target中的目标内容从第一target中删除,并将目标内容添加到第二target中。可选地,基于xuporter二次开发得到xudynlibmaker,通过该xudynlibmaker实现对xcode工程的工程文件的逆向解析和定制化功能,实现将上述目标内容从第一target挪入至第二target中。xcode工程的工程文件的后缀名为.pbxproj,可称为project.pbxproj文件。xcode工程的工程文件中存储着xcode工程的各项配置参数,该工程文件中包含多个section,下述表-1示例性示出了几个section及其介绍说明:section介绍说明pbxfilereference每个文件的路径、类型,每个文件有唯一的idpbxbuildfile各个文件的编译参数pbxgroup文件分组,即xcode工程中左侧的文件分组pbxnativetarget生成目标类型:应用程序或动态库pbxprojectxcode工程的根节点,包含provision及其他数据xcbuildconfigurationxcode工程的全局编译参数pbxbuildphase系列各个类型文件的组织(build)配置表-1在本申请实施例中,通过对xcode工程的工程文件进行修改,将第一target中的代码挪入到第二target中,由于第一target的类型为应用程序,第二target的类型为动态库,后续苹果公司在进行合规检查时,只会对基于第一target编译和打包生成的应用程序集中的代码段大小进行合规检查,并不会对基于第二target编译和打包生成的动态库中的代码段大小进行合规检查,从而满足苹果公司对代码段大小的限制要求。另外,将第一target中的部分代码对应的代码文件挪入到第二target中,并适当保留一部分代码对应的代码文件在第一target中,而非将第一target中的全部代码挪入到第二target中,这样做是为了确保目标ios应用程序的正常运行,例如将该目标ios应用程序的主函数(即main函数)保留在第一target中,而将除主函数之外的其它代码挪入到第二target中。需要说明的一点是,第一target中保留的代码经过编译后的代码段大小,应当小于预设阈值,以满足苹果公司的限制要求,该预设阈值可根据苹果公司的限制要求进行确定。可选地,上述目标内容除了包括代码文件之外,还包括以下至少一项:部分或全部资源文件、部分或全部库文件。由于将第一target中的部分代码对应的代码文件挪入到了第二target中,因此可以将与这部分代码文件相关的资源文件和库文件也一并挪入到第二target中,以避免相互之间存在关联关系的内容因放置在不同target中而导致需要维护额外的依赖和引用关系,简化xcode工程的工程文件中的组织结构。如图5所示,其示例性示出了一种修改前后的xcode工程的示意图。图5左侧部分示出了原始的xcode工程的示意图,在原始的xcode工程的基础上,创建了一个新的target,如图5右侧部分所示的名称为unitygamedynlib的target50,该名称为unitygamedynlib的target50的类型为动态库。结合参考图6和图7,其示例性示出了一种修改前后的xcode工程的工程文件中内容的架构图。图6示出了原始的xcode工程的工程文件中内容的架构图,其包括一个apptarget,该apptarget的buildphases属性中配置有目标ios应用程序的代码、资源、库等文件。图7示出了修改后的xcode工程的工程文件中内容的架构图,其在原始的xcode工程的基础上增加了一个librarytarget,并修改了apptarget的buildphases属性和librarytarget的buildphases属性,将apptarget中的目标内容(包括部分代码文件,可选还包括部分或全部资源文件、部分或全部库文件)挪入到librarytarget中。此外,图6和图7中示出的buildconfigurationlist属性中包含用于对target中的内容进行编译的相关配置。另外,第二target的数量可以是1个,也可以是多个。当第二target的数量为1个时,整个xcode工程的结构较为简单。当然,在一些必要的情况下,也可以创建多个第二target。在一个示例中,假设第二target的数量为n,当n大于1时,可以将目标内容拆分为n份内容,然后将该n份内容分别添加到n个第二target中,每一个第二target中添加n份内容中的一份内容。例如,在xcode工程中创建2个第二target,然后将第一target中的一部分目标内容挪入到一个第二target中,并将第一target中的另一部分目标内容挪入到另一个第二target中。步骤404,对xcode工程进行编译和打包,生成目标ios应用程序的安装包,该安装包中包括与第一target对应的应用程序集以及与第二target对应的动态库。可选地,通过xcodebuild对xcode工程进行编译和打包,生成目标ios应用程序对应的安装包,该安装包即为ipa(iphoneapplication)文件,ipa文件实则是一个压缩包,其中包括了对第一target中的内容进行编译和打包生成的应用程序集,以及对第二target中的内容进行编译和打包生成的动态库。可选地,上述步骤403之后还包括如下步骤:对第二target中的内容进行压缩处理。例如,可以删除第二target中的无用内容,包括无用的代码文件、无用的资源文件、无用的库文件等,也可以对资源文件进行压缩处理等。通过上述方式,可以减少整个安装包的大小。综上所述,本申请实施例提供的技术方案中,通过在ios应用程序对应的xcode工程中创建类型为动态库的第二target,然后将原有的类型为应用程序的第一target中的一些代码从第一target挪入到第二target中,最后对该xcode工程进行编译和打包,生成目标ios应用程序的安装包,该安装包中包括与第一target对应的应用程序集以及与第二target对应的动态库。这样,当该目标ios应用程序的安装包被提交到苹果公司的应用商店时,由于苹果公司只会对应用程序集中的代码段大小进行合规检查,而应用程序集中的大部分代码段已经被挪入到动态库中,因此应用程序集中的代码段大小就不会超过限制要求。本申请技术方案无需删减代码段,确保应用程序功能的完整性,且不会出现瓶颈,对于任一基于unity开发的ios应用程序均可采用本申请技术方案以规避上述对代码段的限制要求,方案的通用性好。在一个例子中,以生成一ios平台下的游戏应用程序为例,首先通过unity引擎开发该游戏应用程序,包括编写该游戏应用程序的代码、添加相应的资源文件和库文件等内容;然后将该游戏应用程序的unity工程导出为xcode工程,此时该xcode工程中包含一个类型为应用程序的target(可称为apptarget);之后,解析该xcode工程的工程文件并对其进行定制化修改,在该xcode工程中创建一类型为动态库的target(可称为librarytarget),将apptarget中的目标内容(如包括除main函数以外的其它代码文件、除与main函数相关的资源文件以外的其它资源文件、除与main函数相关的库文件以外的其它库文件)挪入到librarytarget中;最后,对该xcode工程进行编译和打包,生成该游戏应用程序的安装包,该安装包中包括与apptarget对应的应用程序集以及与librarytarget对应的动态库。示例性地,经过上述处理后,应用程序集中的代码段大小仅为30k字节,远远小于苹果公司的限制要求。下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。请参考图8,其示出了本申请一个实施例提供的ios应用程序的生成装置的框图。该装置具有实现上述方法示例的功能,所述功能可以由硬件实现,也可以由硬件执行相应的软件实现。该装置可以是上文介绍的计算机设备,也可以设置在计算机设备上。该装置800可以包括:工程创建模块810、目标创建模块820、内容转移模块830和编译打包模块840。工程创建模块810,用于创建目标ios应用程序对应的工程,所述工程中包含类型为应用程序的第一编译目标。目标创建模块820,用于在所述工程中创建类型为动态库的第二编译目标。内容转移模块830,用于将所述第一编译目标中的目标内容从所述第一编译目标挪入到所述第二编译目标中,所述目标内容是包含有代码文件的文件集合。编译打包模块840,用于对所述工程进行编译和打包,生成所述目标ios应用程序的安装包,所述安装包中包括与所述第一编译目标对应的应用程序集以及与所述第二编译目标对应的动态库。综上所述,本申请实施例提供的技术方案中,通过在ios应用程序对应的工程中创建类型为动态库的第二编译目标,然后将原有的类型为应用程序的第一编译目标中的目标内容从第一编译目标挪入到第二编译目标中,最后对该工程进行编译和打包,生成目标ios应用程序的安装包,该安装包中包括与第一编译目标对应的应用程序集以及与第二编译目标对应的动态库。这样,当该目标ios应用程序的安装包被提交到苹果公司的应用商店时,由于苹果公司只会对应用程序集中的代码段大小进行合规检查,而应用程序集中的大部分代码段已经被挪入到动态库中,因此应用程序集中的代码段大小就不会超过限制要求。本申请技术方案无需删减代码段,确保应用程序功能的完整性,且不会出现瓶颈,对于任一ios应用程序均可采用本申请技术方案以规避上述对代码段的限制要求,方案的通用性好。在基于图8实施例提供的一个可选实施例中,所述目标内容包括代码文件;或者,所述目标内容包括代码文件和资源文件;或者,所述目标内容包括代码文件和库文件;或者,所述目标内容包括代码文件、资源文件和库文件。在基于图8实施例或者上述任一可选实施例提供的另一个可选实施例中,所述内容转移模块830,用于:解析所述工程的工程文件;修改所述工程文件,将所述第一编译目标中的所述目标内容从所述第一编译目标中删除,并将所述目标内容添加到所述第二编译目标中。在基于图8实施例或者上述任一可选实施例提供的另一个可选实施例中,所述第二编译目标的数量为n,所述n为正整数。在基于图8实施例或者上述任一可选实施例提供的另一个可选实施例中,所述工程创建模块810,用于:创建所述目标ios应用程序对应的unity工程;将所述unity工程导出为xcode工程。在基于图8实施例或者上述任一可选实施例提供的另一个可选实施例中,所述装置800还包括:压缩处理模块(图中未示出)。所述压缩处理模块,用于对所述第二编译目标中的内容进行压缩处理。需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。请参考图9,其示出了本申请一个实施例提供的计算机设备的结构框图。该计算机设备可用于实施上述实施例中提供的ios应用程序的生成方法。具体来讲:所述计算机设备900包括中央处理单元(cpu)901、包括随机存取存储器(ram)902和只读存储器(rom)903的系统存储器904,以及连接系统存储器904和中央处理单元901的系统总线905。所述计算机设备900还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(i/o系统)906,和用于存储操作系统913、应用程序914和其他程序模块915的大容量存储设备907。所述基本输入/输出系统906包括有用于显示信息的显示器908和用于用户输入信息的诸如鼠标、键盘之类的输入设备909。其中所述显示器908和输入设备909都通过连接到系统总线905的输入输出控制器910连接到中央处理单元901。所述基本输入/输出系统906还可以包括输入输出控制器910以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入输出控制器910还提供输出到显示屏、打印机或其他类型的输出设备。所述大容量存储设备907通过连接到系统总线905的大容量存储控制器(未示出)连接到中央处理单元901。所述大容量存储设备907及其相关联的计算机可读介质为计算机设备900提供非易失性存储。也就是说,所述大容量存储设备907可以包括诸如硬盘或者cd-rom驱动器之类的计算机可读介质(未示出)。不失一般性,所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括ram、rom、eprom、eeprom、闪存或其他固态存储其技术,cd-rom、dvd或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器904和大容量存储设备907可以统称为存储器。根据本申请的各种实施例,所述计算机设备900还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备900可以通过连接在所述系统总线905上的网络接口单元911连接到网络912,或者说,也可以使用网络接口单元911来连接到其他类型的网络或远程计算机系统(未示出)。所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集。所述至少一条指令、至少一段程序、代码集或指令集经配置以由一个或者一个以上处理器执行,以实现上述实施例提供的ios应用程序的生成方法。在示例性实施例中,还提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或所述指令集在被计算机设备的处理器执行时实现上述实施例提供的ios应用程序的生成方法。可选地,上述计算机可读存储介质可以是rom、ram、cd-rom、磁带、软盘和光数据存储设备等。在示例性实施例中,还提供了一种计算机程序产品,当该计算机程序产品被执行时,其用于实现上述实施例提供的ios应用程序的生成方法。应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。另外,本文中描述的步骤编号,仅示例性示出了步骤间的一种可能的执行先后顺序,在一些其它实施例中,上述步骤也可以不按照编号顺序来执行,如两个不同编号的步骤同时执行,或者两个不同编号的步骤按照与图示相反的顺序执行,本申请实施例对此不作限定。本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上仅为本申请的示例性实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1