账号种类

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. 13.AutoMapper 之映射前后(Before and After Map Action)

    https://www.jianshu.com/p/1ff732094f21 映射前后(Before and After Map Action) 你可能偶尔需要在映射发生前后执行自定义逻辑.这应该很少 ...

  2. ftp安装和虚拟用户创建(终于搞清楚了)

    安装 一.安装 sudo apt-get install vsftpd 二.查看安装结果 安装完毕,检查vsftpd进程是否已启动,可以查看进程或者查看监听端口 ps -eaf|grep vsftpd ...

  3. 不用再去找rem了,你想要的rem都在这

    一.兼容性. 目前,IE9+,Firefox.Chrome.Safari.Opera 的主流版本都支持了rem(大胆用吧,目前几乎所有手机浏览器都支持rem) 二.什么是rem. rem是相对于根元素 ...

  4. IntelliJ IDEA 2017 提示“Unmapped Spring configuration files found.Please configure Spring facet.”解决办法

    当把自己的一个项目导入IDEA之后,Event Log提示“Unmapped Spring configuration files found.Please configure Spring face ...

  5. 完整阿里云Redis开发规范

    完整阿里云Redis开发规范 原文地址 本文主要介绍在使用阿里云Redis的开发规范,从下面几个方面进行说明. 键值设计 命令使用 客户端使用 相关工具 删除bigkey 通过本文的介绍可以减少使用R ...

  6. 32-第3章 数据链路层--抓包分析数据帧格式-ISO一图了然-小结

    OSI理论模型 层级 名称 事物举例 功能 数据单位 别名 数据组成 协议举例 7 应用层 QQ.OA 网络通信 上层数据 上层数据 HTTP/FTP/DNS 6 表示层 web数据压缩.https加 ...

  7. 一、Vue CLI

    一.Vue CLI https://cli.vuejs.org/zh/guide/installation.html 介绍: 二.安装 # 安装 Vue Cli npm install -g @vue ...

  8. ossec安装配置

    测试机 172.16.53.191 服务端(server) 测试机 172.16.53.253 客户端(agent) [server端配置] yum install mysql mysql-serve ...

  9. Codeforces 964 等比数列逆元处理 贪心删偶数度节点

    A B C 注意sum要在mod范围内 且不能用/a*b来推 #include<bits/stdc++.h> using namespace std; typedef long long ...

  10. 清北学堂提高组突破营游记day5

    长者zhx来啦.. (又要送冰红茶了...) zhx一上来就讲动态规划...是不是要逼死人.... 动态规划: 最简单的例子:斐波那契数列.因为他是递推(通项公式不算)的,所以前面的已经确定的项不会影 ...