ionic 使用xcode打包IOS,并且添加微信白名单
导语:ionic打包ios需要用到xcode、开发者账号、开发证书、发布证书、证书描述文件。如果没有开发者账号,请先去注册开发者账号,本文从创建证书开始讲起。
一、创建证书前的准备
1)、使用苹果电脑打开钥匙串访问。
使用苹果电脑打开钥匙串访问2)、点击钥匙串访问 >>证书助理>>从证书颁发机构请求证书
选择--从证书颁发机构请求证书3)、填写信息,并把生成的.certSigningReuqest文件保存到桌面。
填写信息二、创建证书
1)、打开https://developer.apple.com网址创建我们需要的证书
选择Account这一栏2)、使用开发者账号登录
使用开发者账号登录3)、打开创建证书页面
找到Certificates(证书)4)、成功打开之后可以看到如下页面
创建证书页面,一共四个栏目5)选择Certificates新建证书,点击‘+’号按钮
添加证书6)、选择创建证书的类型
开发证书用于真机调试、测试。发布证书用于上传苹果商店。7)、选择钥匙串访问生成的文件
选择钥匙串生成的文件8)、证书创建完成
下载证书,双击运行导入钥匙串访问三、创建项目ID
1)、选择App IDs新建项目id
新建项目id2)、填写项目唯一标识符(包名)
添加包名四、添加真机调试设备
1)、选择Devices 点击+号新建
新建真机调试设备2)、填写设备的UUID
填写设备的UUID3)、获取设备的UUID,使用USB连接你的设备到电脑,并打开iTunes
获取设备的UUID 获取设备的UUID五、创建证书描述文件
1)、选择Provisioning Profiles
新建证书描述文件2)、选择描述文件的类型
选择描述文件的类型3)、选择项目ID
选择项目ID4)、选择证书
选择需要描述的证书5)、选择调试设备
选择调试设备6)、填写描述文件名称
填写描述文件的名称7)、下载描述文件,双击运行。
下载证书描述文件六、在xcode中打开ionic项目
1)、双击运行项目下的/platforms/ios/xxx.xcodeproj文件.
如果没有,记得先ionic platform add ios添加ios项目
运行.xcodeproj文件2)、打开后我们单击项目名
单击项目名称3)、单击TARGETS下的项目,就可以看到打包的设置面板
打包设置面板七、设置自动签名
1)、点击Build Settings,往下拉,找到Signing
设置自动签名2)、点击启用。
启用自动签名3)、选择自动签名的证书(如果之前成功下载证书并且已经添加到钥匙串访问)
选择证书八、设置手动签名
1)、点击Build Settings,往下拉,找到Signing
2)、选择证书
选择证书九、打包
1)、选择Generic iOS Device
打包2)、在Product下选择Archive
打包3)、打包成功
打包成功4)、导出企业版
导出企业版5)、选择发布证书
选择发布证书6)、导出兼容所有设备
导出兼容所有设备7)、导出到本地磁盘
导出到本地磁盘8)、在本地磁盘查看ipa
十、添加微信白名单
1)、打包成功后发现微信支付不可用,真机调试打印错误--‘微信未安装’
error:"This app is not allowed to query for scheme weixin"
提示微信未安装2)、在info.plist中的 LSApplicationQueriesSchemes 把微信加入白名单
注意 LSApplicationQueriesSchemes 的类型是Array。
在info.plist中把微信加入白名单3)、如果需要把别的应用加入白名单,就继续在LSApplicationQueriesSchemes下面添加item,添加的名称根据报错的信息来填
报错微信app未安装如果提示你‘吃不饱’未安装,你就在info.plist中添加‘吃不饱’!
结语:到这里ionic打包iOS就已经完成了。下面总结一下几点需要注意的地方
1、我们用钥匙串生成的.certSigningReuqest文件,只有在当前电脑本地生成的,然后上传到开发者账号创建证书,这样下载下来的.cer文件运行后,钥匙串才有证书及对应的秘钥,这样才能正常使用。
2、证书分为开发和发布两种,不管是真机调试还是上传到AppStore都是需要的,用来证明自己开发者的身份。
3、Provisioning Profiles证书描述文件,它把我们的项目ID,开发证书、硬件调试设备Device绑定到一块。不管是真机调试,还是发布,都离不开它。
4、用xcode打开iOS项目是双击运行platform/ios/xxx.xcodeproj文件。
5、info.plist中的 LSApplicationQueriesSchemes 可能是没有的,需要我们手动添加
6、使用微信支付的插件,如果没有描述文件package.json,在cordova7.0是装不上的,降低到cordova6.5就可以了
卸载cordova: npm uninstall -g cordova
安装指定版本cordova: npm install -g cordova@6.5.0