账号种类

1.企业账号 299美刀 -- 可以自己发布App,不能发布到App Store
2.个人/公司账号 99美刀 -- 可以发布到App Store, 不可以自己发布不限安装数量的App 个人账号与公司账号的唯一区别是,公司账号可以关联多个子账号方便多人同时开发。其他功能一样

发布渠道

1.通过企业账号创建“企业证书” 自己发布
2.使用 个人/公司账号发布到App Store
2.使用 个人/公司账号创建“Adhoc证书”自己发布, 但是只有100台已注册设备才能安装

证书、appid、账号的关系

1.一个账号可以对应2个发布证书
2.一个证书可以对应N个appid,证书对应一个唯一账号
3.appid就是一个app的唯一标识。一个appid对应一个证书,appid全网唯一,一旦生成,其他所有账号都无法生成和使用。

蒲公英等平台原理解密

发布只有上述三种情况,一般前两种用于发布,第三种用于小范围测试。蒲公英的发布也是一样的原理。目前市面上有2种方案
1.企业签名
2.超级签名
  • 企业签名

    1.使用企业证书生成新的id
    2.重签上传的app
    3.发布 这个原理就是上面发布渠道的 第一种方法 弊端:这种平台型的服务,企业账号会被滥用,会签很多app,极容易被封号,一旦封号,所有的app都不能安装和不能运行
  • 超级签名

    这种方案实施起来比较复杂,限制比较也比较大,后面会详细说原因,先说下超级签名怎么实现的。
    1.准备N个 “个人证书/公司证书”的账号。
    2.使用N个账号生成N个appid。
    3.将设备注册账号A中,一个账号只能注册100台设备
    4.使用账号A的证书重签 app,下发重签后的app到设备 优势:不容易被封号
    弊端:
    1.所有跟appid相关的功能都不能正常使用,比如 推送,百度地图等,具体原因后面细说
    2.账号太多不容易维护,维护成本很大

推送服务

  • 原理

    1.每一台iPhone iPad设备都有一个后台进程与苹果的服务器APNS有个长连接
    2.“我们的服务器”发送消息和以及appid和推送凭证信息给APNS
    3.APNS把消息传递给所有的iOS设备,触发推送
    4.设备根据appid判断具体哪个app响应。 也就是appid作为唯一应用标识 贯穿始终
  • 推送凭证

    使用APNS推送服务必须要有推送凭证用于校验,一个账号可以对应多个推送凭证,所有的appid都可以关联任意一个推送凭证。
  • 极光推送

    极光推送做了什么事情呢,就是负责做上面的第2步做的事情。再此基础上,添加设备管理,用户管理等服务。
    1.为每个appid创建一个项目
    2.为每个项目配置推送凭证,一但设置就不允许改动
    3.我们的服务器调用 极光的接口
    4.极光执行上述原理中的第二步,将推送凭证和appid发送给APNS

再说超级签名弊端

超级签名实际上就是N个账号创建N个appid ,分发到N*100台设备上的方案。
假设我们的安装用户有2000的场景
1.需要20个“个人/公司”的账号,生成20个appid。
2.那么我们使用极光服务需要搭建20个项目
3.发送一条推送消息,极光需要推送20次才能覆盖到全部设备。 然而,这里的第2步,我们就进行不下去了,因为,我们无法知道蒲公英那边账号,也就无法创建推送凭证。也就是说,推送功能基本GG。 那么有人要说了,那我们自己搞个超级签名平台,自己搞个推送平台不就解决问题了么?嗯,想法是很好的,但是问题是,划不划算 1.一个账号99美刀一年,2万个用户,就需要200个账号,需要20000美刀/年
2.账号的维护成本,200个账号,一个人维护?那显然是不可能的。我们公司总共就五六个iOS开发,呵呵
3.服务器成本,搞这些自动化是需要大量服务器的,又是一笔钱
4.推送等appid相关服务维护,搞成超级签名还要支持推送的话,这个成本,再次呵呵
5.自己搞推送平台,同样的是成本问题,再再再次呵呵 so
钱还是用到刀刃上,省着用给我们多发点工资和年终就好了。

iOS证书发布推送相关知识科普的更多相关文章

  1. iOS 10 消息推送(UserNotifications)秘籍总结(二)

    背景 上一篇博客iOS 10 消息推送(UserNotifications)秘籍总结(一)发布后被 简书编辑推荐至首页,这着实让我受宠若惊啊.可是好事不长,后面发生了让我伤心欲绝的事,我的女朋友不要我 ...

  2. iOS开发 iOS10推送必看

    iOS10更新之后,推送也是做了一些小小的修改,下面我就给大家仔细说说.希望看完我的这篇文章,对大家有所帮助. 一.简单入门篇---看完就可以简单适配完了 相对简单的推送证书以及环境的问题,我就不在这 ...

  3. iOS远程消息推送

    iOS 推送基础知识 Apple 使用公共密钥数字证书对来自 iOS 应用程序的推送请求进行身份验证,所以您首先需要创建身份验证密钥,并向 Apple 注册它们.我将在下一节中花相当长的篇幅来直接介绍 ...

  4. 转:向IOS设备发送推送通知

    背景 SMS 和 MMS 消息是由无线运营商通过设备的电话号码向特定设备提供的.实现 SMS/MMS 的服务器端应用程序的开发人员必须费大量精力才能与现有的封闭电信基础架构进行交互(其中包括获取电话号 ...

  5. iOS上简单推送通知(Push Notification)的实现

    iOS上简单推送通知(Push Notification)的实现 根据这篇很好的教程(http://www.raywenderlich.com/3443/apple-push-notification ...

  6. iOS导出远程推送所需要的P12 或pem文件

    http://www.saitjr.com/ios/ios-export-remote-notification-p12-pem-file.html iOS导出远程推送所需要的P12 或pem文件 h ...

  7. iOS——关于创建真机调试证书(发布证书,测试(调试)证书,推送调试证书)、iOS开发者账号申请 请用开发者账号去iTunes connect 查看状态

  8. iOS注册远程推送消息证书后提示此证书签发者无效的解决办法

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们在编写关于远程推送消息的App时需要注册一个相关的证书,我 ...

  9. iOS-关于创建真机调试证书(发布证书,测试证书,推送调试证书)【转】

随机推荐

  1. Javaweb实训-宠物医院-社区宠物医院的页面样式

    /* CSS Document */      /*        对于CSS来说  每一个元素默认的margin和padding就是0px.但是不同的浏览器会有一个默认的浏览器样式修改默认的marg ...

  2. 字符串的 Base64 加密和解密

    base64加密: FORM encode_base64 USING p_business “字符串string CHANGING p_base64. DATA l_xstring TYPE xstr ...

  3. Java Script语法

    JavaScript 语法 JavaScript 是一个程序语言.语法规则定义了语言结构. JavaScript 语法 JavaScript 是一个脚本语言. 它是一个轻量级,但功能强大的编程语言. ...

  4. Linux日常之命令sed

    一. 命令sed简介 利用命令sed能够同时处理多个文件多行的内容,可以不对原文件改动,仅把匹配的内容显示在屏幕上,也可以对原文件进行改动,但是不会在屏幕上返回结果,若想查看改动后的文件,可以使用命令 ...

  5. maven 内置变量对应目录

    [b]在创建Maven工程后,插件配置中通常会用到一些Maven变量,因此需要找个地方对这些变量进行统一定义,下面介绍如何定义自定义变量.[/b] 在根节点project下增加properties节点 ...

  6. Python修炼之路-异常

    异常处理 在程序出现bug时一般不会将错误信息直接显示给用户,而是可以自定义显示内容或处理. 常见异常 AttributeError # 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性 ...

  7. java课堂测试2(两种方式)

    实验源代码 这是不使用数组形式的源代码 /* 2017/10/10 王翌淞 课堂测试2 */import java.util.Scanner; public class Number { public ...

  8. Vue $root、$parent、$refs

    Vue处理边界parent.$refs 下面的功能都是有风险的,尽量避免使用 Vue 子组件可以通过 $root 属性访问父组件实例的属性和方法 <div id="app"& ...

  9. MySQL 创建唯一索引忽略对已经重复数据的检查

    MySQL 创建唯一索引忽略对已经重复数据的检查 在创建唯一索引的基础上加上关键字"IGNORE "即可.(注意,经测试,在5.7版本已经不再支持该参数) # 重复数据 mysql ...

  10. 百度地图api的简单应用(一):POI检索

    使用之前,需要注册一个百度地图开发者账号,最好申请一个认证以获取更高的使用配额和并发上限. 注册之后,申请一个应用,获得一个ak(密钥),并填写ip地址白名单.(这里我使用0.0.0.0/0,查了自己 ...