网上的xcode打包ipa教程大多太旧而且又不完整,所以整理了一个最新的完整详细的xcode打包APP的图文教程分享给小白到大神路上的你我。
xcode打包IPA包之前先申请iOS证书,然后导入证书才能打包导出IPA包。
分为5 步进行
1、申请iOS证书
2、导入证书到钥匙串
3、xcode配置iOS证书
4、配置xcode打包环境
5、打包并导出IPA包
一、申请iOS发布证书和描述文件
1、首先申请一个App IDs(应用身份证)、已申请略过。
APP IDs在后面很多地方用到
首先打开开发者中心Apple Developer (简体中文),进入证书页面。
1.1点击证书、ID及配件文件,进入设置。
1.2选择App IDs –>点击+创建一个新的App ID
其中有两项需要你自己填:
第一项Name,用来描述你的App ID,这个随便填,没有什么限制,最好是项目名称,这样方便自己辨识(不允许中文)
第二项Bundle ID (App ID Suffix),这是你App ID的后缀,需要仔细填写。用来标示我们的 app,使它有一个固定的身份,和你的程序直接相关。填写 Explicit App ID 的格式为:com.company.appName,照着格式写,写个方便记的,后面很多地方要用到。
第三项App Services,默认会选择2项,不能修改,其它根据自己需要的服务选择上,然后点击Continue确认,下一步。 检查下没有错的话直接点击Register后点击Done完成App ID的创建。
2、申请发布证书
这里用Appuploader工具直接申请导出p12文件和描述文件。
如果还没安装Appuploader先安装好
Appuploader安装教程
2.1打开Appuploader,输入苹果开发者中心账号,登录。(未支付688时,请勾选此选项)
2.2选择Certification
2.3点击+ADD,这里有开发证书等等创建选项,这里选第三项发布证书。
如果你之前有了发布证书也可以不用创建,用之前的也行,苹果规定个人只能创建3个发布证书。
2.4输入,证书名称(随意) 邮箱(任何邮箱都行) 密码(后面导入钥匙串助手时用到)然后点击ok
2.5此时生成了好了一个发布证书,点击p12 File,下载证书文件,保存到电脑。
这样发布证书就创建好了。
3、申请发布描述文件
3.1回到软件点击Profiles
3.2点击+ADD,这里有开发描述文件等等选项,这里选发布描述文件。
3.3选择APP IDs,之前在开发者中心创建的,这里会自动出现。
3.4勾选刚创建的发布证书关联好,输入name,点击ok
注意:如果你之前创建了多个发布证书,下面发布证书框显示多个发布证书,
可以全选,默认最新创建的发布证书,打包时输入最新创建的发布证书密码。
ps:发布证书不同的app可以通用的,描述文件不同就行了。
3.5此时生成了发布描述文件,点击 Download下载到电脑保存
如此就得到了一个.p12证文件和.mobileprovision描述文件
二、导入iOS证书p12到钥匙串
1、打开钥匙串助手,双击p12文件,默认钥匙串是(登录),注意这里一定要选择(系统)
这样后面打包时iOS证书才不会报错。
2、导入后提示此证书是由未知颁发机构签名的,因为不是用本机的钥匙串文件申请的iOS证书
不过没关系,设置一下信任就好了
3、双击证书、点击信任,使用此证书时,设置为始终信任。
三、xcode配置iOS证书和打包环境
1、用xocde打开你的项目,点击进入设置证书界面。
有两个地方都要设置
选择Code Signing下面的release(发布版)Debugs是测试版,上架App Store选择发布版的。
然后选择你刚上传的对应iOS发布证书
2、回到基本信息设置界面,Bundie 这项填写,最先创建的那个appid,跟创建iOS描述文件时选择的要一样。
现在下面还有个错误提示,因为还没有导入iOS描述文件。
3、双击.mobileprovision描述文件,闪一下就自动导入到xcode,不报错表示可以了。
4、选择xcode菜单栏如果图所示
5、把Archived修改为Release
6、点击选择设备,选择为打包设备。
四、项目打包IPA包导出
1、选择菜单栏如图所示,如果Archive还是灰色的,说明之前的配置没有生效,退出重新打开下。
点击Archive,开始打包。
2、打包进度条走完后,会弹出以下界面,点击Expcrt
3、这里是个人开发账户发布到App Store,所以选择第一个,点击Next。
4、选择你的开发者账号,还没登录会提示你登录,点击Choose,会检查你的证书是否正确。
5、iOS证书检测通过就到了这一步、点击Export,就会导出 一个文件夹,里面就是IPA文件,大功告成了
这个IPA包就可以上传到App Store了。