1、遇到的问题

  • 一款App在别人的机器上开发和发布,现在迭代更新和开发需要在一台新mac机上开发和发布。
  • (使用同一个开发者账号)问题:
    • 1.在新mac机器上开发并导入真机测试,是不是需要从别人的机器上面导处开发者证书、开发者授权文件和开发密钥导入到新mac机器上才能开发?
    • 2.程序迭代开发完成,App上传苹果应用商店的时候是不是还需要用老机器发布才可以才能保证App更新?能不能从老机器上面把发布证书导入到新机器上,用新机器发布App?解决方案:

2、App开发和发布过程中证书基础知识:

  • 2.1 Certification(证书)

  • 证书是对电脑开发资格的认证,每个开发者帐号有一套,分为两种:
    • 1)Developer Certification(开发证书)

      • 安装在电脑上提供权限:开发人员通过设备进行真机测试。
      • 可以生成副本供多台电脑安装;
    • 2)Distribution Certification(发布证书)
      • 安装在电脑上提供发布iOS程序的权限:开发人员可以制做测试版和发布版的程序。
      • 不可生成副本,仅有配置该证书的电脑才可使用;(副本制做介绍在下面Keychain中介绍)
  • 2.2 Provisioning Profile(授权文件)

  • 授权文件是对设备如iPod Touch、iPad、iPhone的授权,文件内记录的是设备的UDID和程序的App Id,即使被授权的设备可以安装或调试Bundle identifier与授权文件中记录的App Id对应的程序。
  • 开发者帐号在创建授权文件时候会选择App Id,(开发者帐号下App Id中添加,单选)和UDID(开发者帐号下Devices中添加最多100个,多选)。
  • 授权文件分为两种,对应相应的证书使用:
  • 1)Developer Provisioning Profile(开发授权文件)
    • 在装有开发证书或副本的电脑上使用,开发人员选择该授权文件通过电脑将程序安装到授权文件记录的设备中,即可进行真机测试。
    • 注意:确保电脑有权限真机调试,即安装了开发证书或副本;在开发工具中程序的Bundle identifier和选中使用的授权文件的App Id要一致;
    • 连接调试的设备的UDID在选中的授权文件中有记录。
  • 2)Distribution Provisioning Profile(发布授权文件)
    • 在装有发布证书的电脑上(即配置证书的电脑,只有一台)制做测试版和发布版的程序。
    • 发布版就是发布到App Store上的程序文件,开发者帐号创建授权文件时选择store选项,选择App Id,无需选择UDID;
    • 测试版就是在发布之前交给测试人员可同步到设备上的程序文件,开发者帐号创建授权文件时选择AdHoc,选择App Id和UDID;
    • 只有选中的UDID对应的设备才可能安装上通过该授权文件制做的程序。

3、Keychain(开发密钥)

  • 安装证书成功的情况下证书下都会生成Keychain,上面提到的证书副本就是通过配置证书的电脑导出Keychain(就是.p12文件)安装到其他机子上,让其他机子得到证书对应的权限。
  • Developer Certification就可以制做副本Keychain分发到其他电脑上安装,使其可以进行真机测试。
  • 注意:Distribution Certification只有配置证书的电脑才可使用,因此即使导出导出Keychain安装到其他电脑上,其他电脑也不可能具有证书的权限。
  • 上面的证书基础知识可以看到开发者证书可以导入到新电脑上用于开发和真机测试,发布证书不可以导入新电脑用于App发布。所以问题出现了那以后版本迭代更新怎么办?
  • 针对问题1:
    • 通过导入开发者证书、密钥和开发授权文件(导入测试机)可以实现用新的电脑在真机上开发和测试,
    • 其实这个方法解决的问题应该是如何在不想让别人知道自己开发者账号的前提下让多台mac机同时可以开发在真机上测试的App;
    • 假设现在你知道开发者账号密码你完全可以通过你的开发者账号在自己机器上重新生成开发者证书、开发密钥,然后通过你信生成的开发者证书和开发授权文件进行真机开发测试。
  • 针对问题2:
    • 不能通过导入发布证书的方式在新电脑上更新迭代App;那怎样才能在新mac机上面进行迭代的App发布那,难道必须只能在老机器上面进行迭代发布吗?
    • 毫无疑问肯定是可以在新机器上进行迭代APP的发布的,这中间涉及到苹果App商店的升级机制:针对同一个开发账号下面同一个App只要版本号比当前版本号大都会自动提示用户有新版本。
  • 所以你可以在你新mac电脑上面从新创建一个发布证书,通过这个发布证书进行发布。

ios app提交之前需要哪几个证书的更多相关文章

  1. iOS APP提交上架流程

    转载自CocoaChina,链接地址:http://www.cocoachina.com/bbs/read.php?tid=330302 后面问题我也遇到了,参考该文章解决的 转自http://blo ...

  2. iOS APP提交上架最新流程(转)

    时隔1年又让我鼓捣iOS,刚接手就是上架,经验值为0的我,虽然内心是拒绝的,但还是要接受这项任务滴!也就是在被拒后重新审核,再改在提交...这样 反复的过程中也对上架流程熟悉了好多,写篇帖子送给同为菜 ...

  3. iOS APP提交上架最新流程

          时隔1年又让我鼓捣iOS,刚接手就是上架,经验值为0的我,虽然内心是拒绝的,但还是要接受这项任务滴!也就是在被拒后重新审核,再改在提交...这样反复的过程中也对上架流程熟悉了好多,写篇帖子 ...

  4. 图文讲解:iOS App提交流程

    原文:http://www.toceansoft.com/ios/3287.jhtml 一.证书的导出 1.1.前期工作 首先你需要有一个苹果的开发者帐号,一个Mac系统. 如果没有帐号可以在打开ht ...

  5. ios app 提交评审注意事项

    在网络上看到的一个文档是这样写,原文的出处无法确认了 基本要点 ·         不能导致手机故障(比如崩溃或屏幕问题) ·         长时间/过度使用之后反应仍然很快 ·         应 ...

  6. iOS App提交指南-协议、税务和银行业务

    App通过审核时,选择的是手动发布,想着等到自己生日那天来发布,当做留个纪念,结果生日当天发布时,由于App属于收费应用,还需要填写协议.税务和银行信息,结果又急急忙忙地去找了下这方面的资料,现在把整 ...

  7. uni-app打包程序 Hbuilder X 用自有证书 苹果证书打包 ios App、用DCloud公用证书打包Android APP

    Android用HBuilder的DCloud公用证书即可 HBuilderX  uni-app打包成apk安装到手机首先要登录,没有帐号可以注册,接着点击运行—原生App-云打包,配置完后点击打包, ...

  8. iOS app提交审核 11.13条款问题

    今年开年到现在.提交app应用一直招拒,这个问题我想不明白,感觉就是一个坑.所以贴出来给大家看看. 发件人 Apple11.13 - Apps that link to external mechan ...

  9. 2014最新 iOS App 提交上架store 详细流程

    http://blog.csdn.net/tt5267621/article/details/39430659

随机推荐

  1. Linux学习笔记 -- 系统目录结构

    以root用户登录系统后,在当前命令窗口下输入命令: ls / 我们可以看到目录结构类似下图: 树状目录结构可以表示为: 解析: /bin:bin是Binary的缩写, 这个目录存放着最经常使用的命令 ...

  2. 如何检测 51单片机IO口的下降沿

    下降沿检测,说白了就是满足这样一个逻辑,上次检测是1,这次检测是0,就是下降沿. 从这个条件可知,要确保能够正确检测到一个下降沿,负脉冲的宽度,必须大于一个检测周期,当负脉冲宽度小于一个检测周期,就有 ...

  3. highcharts钻取例子

    <!doctype html> <html lang="en"> <head> <script type="text/javas ...

  4. 【linux】下载命令lftp\sftp\wget

    sftp sftp(安全文件传输协议)与ftp 有着几乎一样的语法和功能.FTP 为 SSH的一部份,是一种传输档案至 Blogger 伺服器的安全方式.它并不使用ftp守护进程(ftpd或wu-ft ...

  5. 安全测试之session,cookie

    session session机制是一种服务器端的机制,服务器使用一种类似于散列表的结构(也可能就是使用散列表)来保存信息.•但程序需要为某个客户端的请求创建一个session的时候,服务器首先检查这 ...

  6. java成神之——注释修饰符

    注释修饰符 自定义注释 元注释 通过反射在runtime访问注释 内置注释 多注释实例 错误写法 使用容器改写 使用@Repeatable元注释 注释继承 使用反射获取注释 获取类的注释 获取方法的注 ...

  7. python----python使用mysql

    Python操作MySQL主要使用两种方式: 原生模块 pymsql ORM框架 SQLAchemy pymql pymsql是Python中操作MySQL的模块,在windows中的安装: pip ...

  8. Redhat 无线(Wifi)上网命令行配置

    小结两种命令行模式下配置无线wife的方法,实践测试通过(Red Hat Enterprise Linux release 6.0 Beta(Santiago)) 一.使用wpa_supplicant ...

  9. leetcode606

    /** * Definition for a binary tree node. * public class TreeNode { * public int val; * public TreeNo ...

  10. ffmpeg截取一段视频中一段视频

    ffmpeg  -i ./plutopr.mp4 -vcodec copy -acodec copy -ss 00:00:10 -to 00:00:15 ./cutout1.mp4 -y -ss ti ...