前言
目前xcode7已支持使用免费苹果ID帐号生成开发证书,这样在开发阶段就不用申请收费的苹果帐号也可以生成APP ipa包测试了。这篇文章将详细介绍xcode7+iphone使用免费苹果ID帐号生成开发证书打包测试的方法。
准备环境
- 如有MAC环境,需安装有xcode7,然后下载WeX5或BeX5_V3.4(Mac OS)版本解压使用。版本下载地址
- 如只有windows环境,需下载“X5本地应用打包服务器_V3.2.1”进行部署。部署说明(兼容3.4版本)。
- 如已安装过X5的打包服务器,也需下载“X5本地应用打包服务器_V3.2.1”进行部署,因V3.2.1版本以后的打包服务器里才安装的是xcode7。
- 一台iphone手机,做测试用。
连接iphone设备
将iphone手机使用数据线连接到MAC环境或windows环境的物理机器上。注意在手机弹出信任提示时,选择“信任”。
如果使用的是“X5本地应用打包服务器”,需要在物理机上的VMware里选择连接设备,如下图所示进行手机的连接。
iphone手机正常连接后,会在xcode7里点击时会显示如下手机的信息,如下图:
获取证书的方法
1、在MAC系统中打开xcode7,创建一个新的应用。
2、选择默认的iOS的Application里的Master-Detail Application即可,然后下一步。
3、在打开的窗口中输入应用信息。重要的是Product Name和Organization Identifier,这两部分会组成Bundle Identifier,就是WeX5平台APP打包时的应用包名。其他选项默认如图即可,然后下一步。
4、选择工程应用存储的路径后,点击创建按钮,打开应用详细界面,如下图:
5、Team默认为None,并显示No matching provisioning profiles found,说明没有证书和配置文件。点击Team栏,在弹出框里选择“Add an Account”,添加一个苹果ID帐号。
6、如果已有免费的苹果ID帐号,输入Apple ID和Password即可,然后Sing ln登陆即可。
7、如果没有免费的苹果ID帐号,点击下面的“Create Apple ID”进行申请,按照提示一步一步输入注册信息即可完成申请。
8、登陆免费的苹果ID帐号或者“Create Apple ID”后,在Accounts界面即可看到你添加的苹果ID帐号信息,iOS和Mac显示为Free,即表示是可用的免费苹果ID帐号。如果不显示Free的信息,说明该苹果ID帐号不可用。如果出现这种情况,请使用第7步的方法重新注册一个免费的苹果ID帐号即可以正常使用了。
9、点击下面的View Details,查看帐号详情。点击iOS Development后面的“Create”按钮创建开发P12证书。
10、然后到“钥匙串访问”中即会看到对应免费苹果ID帐号的证书已生成。
11、导出P12证书文件。
12、输入存储文件名称和存放位置,格式必须为“个人信息交换(.p12)”,然后点击“存储”。
13、输入证书密码。(注意:这里输入的就是P12证书的密码,在打包的过程中需要用到,因此需要牢记!)
14、下一步需输入登录钥匙串的密码,即MAC系统的登陆密码。如果是“X5本地应用打包服务器”密码为x5。然后点击“允许”,P12证书文件导出成功,到存储目录找到导出的P12证书文件,在打包过程中需要使用。
15、然后在应用工程界面的Team里就可以选择刚才添加的免费苹果ID帐号了。如下图:
16、选择添加的免费苹果ID帐号后,点击“Fix issus”,创建配置文件。
17、创建完成,Team会显示免费苹果ID帐号信息,并且下面不再显示“No matching provisioning profiles found”的提示。这时验证文件已正常生成。
18、如点击“Fix issus”出现下面的提示,是因为找不到iphone设备,需参考上面“连接iphone设备”的说明检查iphone手机是否连接正常。
19、验证文件默认生成的路径在“~/Library/MobileDevice/Provisioning Profiles/”目录下。通过MAC系统的“前往文件夹”菜单,将路径输入,即可前往验证文件的生成目录。
20、将验证文件拷贝出来,在打包过程中需要使用。
打包安装
打包过程请参考《WeX5平台生成App包过程详解》进行。有以下两点注意事项需特别注意:
1、打包时的应用包名必须输入上面创建Xcode应用时的Bundle Identifier。
2、打包时配置证书需选择iOS开发证书,输入上面过程中输入的P12证书密码,并选择上面过程中生成的P12证书文件和mobileprovision验证文件。
打包完成后,生成的ipa包即可在刚才连接物理机的iphone手机上进行安装测试了。
注意:xcode升级到7.3,iOS更新到9.3后,生成的ipa文件是不可通过iTunes安装的,会报“The bundle being installed with bundle ID Justep.demo is authorized by a free provisioning profile, but apps validated by those are not allowed to be installed from this source.”这样一个错误!不过,我们还有两种安装此应用的方法,一个是用Xcode直接安装ipa文件,即:打开Xcode,连接真机设备,然后window/device,选择要安装的ipa点击安装即可!另外一种就是用Xcode打开wex5中生成的Xcode项目文件,然后连接真机设备,编译运行即可!
本文由WeX5君整理,WeX5一款开源免费的html5开发工具,H5 App开发就用WeX5!
阅读其他app 开发相关文章:http://doc.wex5.com/?p=3443
我按文档说明,可以创建iphone developer证书,但是在导出证书时,“个人信息交换(.p12)”这个选项是灰掉的,无法选择,请问这时怎么回事呢?
你在证书里面选择就可以了,不是我的证书,也不是全部证书
创建的项目不是Master-Detail Application 还能照着上面搞吗??
生成ios应用包:
Unknown value for orientation preference: default
Running command: /Users/tom.chang/Desktop/WeX5_V3.2.1-mac/model/Native/综合演示/build/src/platforms/ios/cordova/build –debug –device
Cordova can only run in Xcode version 4.6 or greater.
xcode-select: error: tool ‘xcodebuild’ requires Xcode, but active developer directory ‘/Library/Developer/CommandLineTools’ is a command line tools instance
Error: /Users/tom.chang/Desktop/WeX5_V3.2.1-mac/model/Native/综合演示/build/src/platforms/ios/cordova/build: Command failed with exit code 2
at ChildProcess.whenDone (/Users/tom.chang/Desktop/WeX5_V3.2.1-mac/tools/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:135:23)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:756:16)
at Process.ChildProcess._handle.onexit (child_process.js:823:5)
****ERROR****: 子任务 “exec” 执行失败。
****ERROR****: 任务 “buildIOS” 执行失败。
****ERROR****: 执行出错:
****ERROR**** 错误信息: exec returned: 1
****ERROR**** 调用栈:
at org.apache.tools.ant.taskdefs.ExecTask.runExecute(ExecTask.java:643)
at org.apache.tools.ant.taskdefs.ExecTask.runExec(ExecTask.java:669)
at org.apache.tools.ant.taskdefs.ExecTask.execute(ExecTask.java:495)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
at sun.reflect.GeneratedMethodAccessor34.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:435)
at org.apache.tools.ant.Target.performTasks(Target.java:456)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
at Pack.execTask(Pack.java:51)
at Pack.access$000(Pack.java:25)
at Pack$1.run(Pack.java:95)
at java.lang.Thread.run(Thread.java:745)
创建的项目不是Master-Detail Application就不能打包了??
这个申请的证书能用于极光推送么
按步骤在“fix issue” 时候 一直提示 “no devices
registered” 文章中说是没有正确连接 iphone 。但是xcode 已经显示连接到手机了。状态正常。而且虚拟机的itruns 也是可以连接到手机的。
求解啊!!!!!!
使用免费账号打包成功了,怎么才可以安装使用?
现在的打包服务器需要更新,XCODE无法更新 另外出现签发证书无效问题