1、创建 ios 项目

  1、用 cordova 创建一个 ios 项目

npm install -g cordova

  

cordova create hello com.mydomain.hello HelloWorld

  hello : 文件名称

  com.mydomain.hello : bundle identifier/bundle id

  HelloWorld :名字

cd hello
cordova platform add ios

  

  2、打开生成的xcodeproj工程,工程文件位置:hello/platform/ios/

  

  2、在 apple 的开发者网站上面获取证书并且配置appid和描述文件

  1、证书

  作用:为了确定安装在 app 上的 app 都是经过 apple 官网认证的,于是需要对应用签名。

  创建及其验证原理:

  

  1、在 mac 上面生成一对公私钥CSR。公钥M、私钥M

  2、在 apple 中也有一对公私钥。私钥A在 apple 服务器端 、公钥A在 apple 的用户端

  3、用公私钥CSR的公钥M,去 apple 服务器端请求一个证书CA( 私钥A 对 公钥M签名HASH 和 公钥M)

  4、开发完成之后,用公私钥CSR的私钥M对 app 进行签名,同时把证书 CA 一起打包到 app 中

  5、安装到 apple 的时候,首先用 apple 中的 公钥A 对证书CA的HASH 进行验签。证明 公钥M 有效,

  6、公钥M 有效,在用 公钥M 对 app的签名验签

  2、appid 、描述文件

  

   

  我们不仅可以获取证书,也可以在 apple 服务器上面配置描述文件,且下载下来。

  1、在 apple 服务器上面配置描述文件

    a、配置 appId ( name、bundle id、service )

    b、配置证书

    c、配置可用设备

  2、在 apple 服务器 私钥A 对公钥M签名对时候,添加这些数据。

  3、在安装到 apple 的时候,我们可以做一些验证。

  

  因为信息太多了,所以 apple 会将这些信息( appid、证书、设置ID) 等所有信息,都生成一个 provisioning profile 供我们下载,配置。

  3、结构梳理(所有证书/密钥生成后)

  Mac本地:私钥M、证书。(私钥M对APP签名、证书用于打包到APP)

  apple服务端:私钥A、证书。(私钥A没用了、证书用于Mac下载)

  apple用户端:公钥A。(用于验签,得到证书数据<公钥M、appid、设备..>)

  4、具体步骤

  

  总上面的两种获取所诉,我们总结步骤如下:

  1、Mac 上面生成公私钥

  

  打开钥匙串

  

  请求证书,这里就是生成公私钥的位置,我们请求生成公私钥

  

  添加这两项,点击下一步

  

  这里生成了公私钥,并且保存在了我们的钥匙串中,并且生成一个 CSR 文件在桌面

  以供我们可以到 apple 服务器上面去获取证书。

  

  这里会现实公私钥,对应创建的名称

  2、获取证书

   登陆到 apple 开发者官网上面https://developer.apple.com

  这里需要认证后到开发者账号在能一下操作。

  

  添加一个证书

  

  这里我们选择测试,如果需要 push 服务,就选择测试第二个,不需要就是第一个。

  点击下一个

  

  这里选择刚刚生成的 Mac 生成在桌面的文件 CSR 公私钥文件(证书请求文件)。

  点击下一步

  

  下载证书。

  3、安装证书(关联证书和公私钥)

  安装证书到我们 mac 上面,确保 app 在打包到时候,打包到对应到应用中。

  

  右键登陆,点击添加钥匙串

  将证书选中添加即可。

  

  添加成功后的样子。

  

  4、添加 appID

  创建一个应用(添加一个 appid 以供创建描述文件,配置描述文件)

  

  

  填写完成之后就创建了一个 app

  5、创建设备

  只有添加了的设备在能安装 app

  

  

  填写两项,添加即可

  

  6、对数据(appid/设备/证书等)签名

  用 apple 服务器端的 私钥A 对数据签名生成 provisioning profile 文件

  

  

  

  三种:测试机上面、app store、还用就是只能在设备列表中用户安装

  

  

  选择 appid

  

  选择证书

  

  选择用户名单

  

   文件名称

  

  最后下载,得到描述文件( .mobileprovision )

  7、导出私钥M供其他人打包。

  多人多设备开发到时候,需要同一个 私钥M、证书

  证书:可以在服务器上面下载

  私钥M:需手动导出,并且在自己Mac添加到钥匙串中

  

  

  选择 .p12 ,导出私钥文件

  然后将文件发给其他人员。

  添加到钥匙串中。

  既可以操作该项目。

 3、xcode 打包测试 ipa 包文件 

 

  导入 provisioning profile 文件

  测试到导入测试到 profile文件

  release 导入app store 的 profile 文件

   

  

  设置为 release

  

  设置为打包项目

  

  打包项目

  

  

  

  选择设备类型

  

  设置证书和 profile 文件

  完成之后 export 导出就得到对应的文件

  

  4、ipa安装及其真机测试

  

  基于 itools 安装 ipa 文件。

  1、下载 itools ,自行下载

  2、链接设备 iphone ,数据线链接PC端

  

  3、安装 ipa 文件

  

  4、等待安装完成即可

    

  

hybird app 用 xcode ios打包 ipa 测试包并且安装真机测试的更多相关文章

  1. iOS 打包静态库.a文件(真机版 + 虚拟机)

    我们以打包IOS开发中封装的高地地图基础功能包 GDMap为例. 1>我们需要准备好需要打包的GDMap     2>接下来我们开始新建一个工程文件取名GDMap     3>删掉无 ...

  2. iOS - AppRealTest App 真机测试

    前言 1.准备 开发者账号 自从 Xcode7 出来之后,一般的真机测试不需要开发者账号,也就不需要看这篇教程,只有 app 具有 "推送" 等功能的时候,要真机测试就必须要开发者 ...

  3. 【转】让Xcode支持iOS12.0 设备真机测试(不断更新真机支持包)Xcode 真机测试 iOS

    最新支持12.0 (16A366)! 所有真机包都是同一大版本号向下兼容.例如12.0 Beta6的真机包,是可以兼容12.0 Beta2及Beta1的. 12.0 (16A366)正式版可用!所有低 ...

  4. iOS—最全的真机测试教程

    准备 开发者账号 自从Xcode7 出来之后,一般的真机测试不需要开发者账号,也就不需要看这篇教程,只有app具有“推送”等功能的时候,要真机测试就必须要开发者账号和设置证书.苹果只是让你体验一下它的 ...

  5. iOS- 最全的真机测试教程

      想要上架的同学请看:<iOS-最全的App上架教程> 因为最近更新了Xcode 8 ,证书的创建都大同小异,只是在Xcode 8中的设置有一些变化,我就在下面补充,如有什么疑问,请联系 ...

  6. 关于Android的真机测试

    步骤: 1.开启手机USB调试 2.数据线连接手机和电脑 3.eclipse需要重启 4.在eclipse的run里面的runconfig...里面设置为启动时总是提醒开发者选择 具体事例: 我的手机 ...

  7. ipa包如何打包?ios打包ipa的四种方法分享

      今天带来的内容是ios打包ipa的四种方法.总结一下,目前.app包转为.ipa包的方法有以下几种,下面一起来看看吧!    1.Apple推荐的方式,即实用xcode的archive功能 Xco ...

  8. iOS—Xcode 7真机测试

    Xcode 7真机测试详解 1.准备 注意:一定要让你的真机设备的系统版本和app的系统版本想对应,如果不对应就会出现一个很常见的问题:could not find developer disk im ...

  9. Xcode 9,真机测试,App installation failed

    真机测试:能够build成功,但是 报错App installation failed A valid provisioning profile for this executable was not ...

随机推荐

  1. Android(java)学习笔记163:开发一个多界面的应用程序之界面间数据传递

    1.界面跳转的数据传递 (1)intent.setData() --> intent.getData():     传递的数据比较简单,一般是文本类型的数据String:倘若我们传递的数据比较复 ...

  2. centos7 取消Ctrl+Alt+Del重启功能

    转载:http://www.cnblogs.com/huangjc/p/4536620.html Linux默认允许任何人按下Ctrl+Alt+Del来重启系统.但是在生产环境中,应该停用按下Ctrl ...

  3. 汇编2.汇编版本的helloworld

    寻址方式 立即数寻址 寄存器寻址 存储器寻址 直接寻址 : mov ax, [ 01000h ]; 直接在[]内给出一个内存地址 寄存器间接寻址: mov ax ,[si]; 在[]以寄存器的值给出内 ...

  4. Vue 在beaforeCreate时获取data中的数据

    众所周知,vue在beforecreate时期是获取不到data中的 数据的 但是通过一些方法可以实现在beforecreate时获取到data中的数据 暂时想到两种放发可以实现,vue在before ...

  5. js中重载问题

    在js中是没有重载的  但是  Arguments对象(可以实现模拟重载的效果) 利用arguments对象的length属性,可以获取函数接收的参数的个数 例如: function add(){ i ...

  6. 暑假集训 || bitset

    bitset是一个存储0和1的数组 可以快速的把两个bitset的每一位对应做与或啥的 在可以用01串表示某个状态的时候可以应用到它 就是有两个集合,求它们的交集 bitset <> a, ...

  7. jquery 定位

    jquery 定位 <html> <head> <title>jquery 定位</title> </head> <body> ...

  8. lspci详解分析

    lspci详解分析 一.PCI简介 PCI是一种外设总线规范.我们先来看一下什么是总线:总线是一种传输信号的路径或信道.典型情况是,总线是连接于一个或多个导体的电气连线,总 线上连接的所有设备可在同一 ...

  9. java 数据库

    1.数据的概述 数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材. 数据是信息的表现形式和载体,可以是符号.文字.数字.语音.图像.视频等.数据和信 ...

  10. FastNet C++/Python 网络通信库之 协议

    协议可以使用的基础数据类型: UInt8,UInt16,UInt32,UInt64Int8,Int16,Int32,Int64Float,Double,Bool,String [T]  数组,T代表元 ...