对于cordova,大家应该都不陌生吧。是目前全球社区最活跃,历史最悠久的一款html5 app打包工具,由于其社区活跃,因此有不少的开发者为其开发插件。
在此,我分享一下我开发ios的经验吧。
在我之前想通过cordova打包ios,一直都是在中文的网站上寻找相应的方法,然后所有的方法都是将cordova的工程重新导入到xcode中,然后编译实现的。但是由于公司比较小,还没有配mac电脑,所以公司目前是使用一个由virtualbox虚拟出来的一个mac os系统打包的,已经配置好了samba共享环境以及ssh远程命令环境。在使用命令的过程中,并没感觉系统卡,但是当使用图形页面时。卡的感觉十分明显。因此手动打开xcode,然后导入工程并编译对于我来说并不是一个好的选择。
下面我来介绍一下使用cordova命令直接生成ipa文件的方法吧。
大家都知道,打包一个ipa,至少需要两个文件,一个是开发者证书,另一个是ipa识别证书(*.mobileprovision)。
这两个证书的申请方式我就不阐述了,请各位自行百度去。简单的说,下面要将的都是基于这两个证书都有了的前提。
第一,在cordova的工程下新建一个build.json文件,然后输入如下文字:
{ "ios": { "release": { "codeSignIdentity": "iPhone Developer", "developmentTeam": "FG35JLLMXX4A", "provisioningProfile": "926c2bd6-8de9-4c2f-8407-1016d2d12954", "packageType": "app-store", "buildFlag": [ "EMBEDDED_CONTENT_CONTAINS_SWIFT = YES", "ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO", "LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks"" ] } } }
稍微解释一下,大家知道Cordova是一个跨平台的打包工具,上面配置文件中的ios就是指这个是针对ios的配置信息。
Release就是指发行版本。
codeSignIdentity是指使用哪个开发者证书进行加密。
developmentTeam是指那个开发者所在的开发团队。
packageType有四个选项,通常我们只使用两个,一个是app-store,是发行到app store的版本,另一个是ad-hoc,是给测试机测试用的版本。
provisioningProfile是打包app所需要的另一个参数,指定ipa识别证书所使用的。(当一个ipa识别证书生成后,直接双击即可导入xcode中,然后在~/Library/MobileDevice/Provisioning Profiles/下会生成同样一个识别证书,但是名字将是由一串数字组成,这里大家可以找一找这个文件夹下的证书,将证书的名字填为这个属性的参数即可。)
最后,也就是最神奇的一步了,使用cordova build ios --release --device命令编译ios。这是在其他的中文讲解中都是不曾写到的,--device就是说真机模拟,直接生成ipa,--release就是编译发行版,调用编译发行版的配置文件。