Mac程序的大包上传和iOS的有些许不同,因为Mac app既可以上传到store,也可以不通过store供人下载。因此,code sign和provision要根据情况(开发,release<store 还是非store>)制作。在程序打包后,验证程序的可行性上,也有所不同。下面,就将一些要点纪录下。

基本概念:

1 成员的权限:

成员还是有三种:

Agent:注册帐号的帐户,最高权限,可以创建developer,Mac installer,Mac App, developer ID App, Developer ID Installer证书。

Admin:可以创建developer,Mac installer,Mac App证书

Member:只能创建developer证书

2 证书:

Development:

team中的成员都能创建的development证书,只要用于开发阶段,通俗的说用于debug版本开发

Distribution:

(1) App Store:

App要放到Store上,就需要创建 Mac App 和 Mac Installer证书。 Mac App主要是用于上传到store, installer是上传到store前我们模拟真实的store环境

(2) Developer ID:

Apple允许开发者自行传播App,这就要用到developer ID的证书,也分App和installer两种。注意,此证书只有agent才能创建,并且一个team也只有一个。

生成证书的方式和iOS下的一样,也可根据官网的提示一步一步操作,就不多说了。

3system

将电脑的硬件号注册下

4App IDs 和Provision

这个和iOS一样,按网页提示操作。provision制作好后拖到xcode中,developer provision还要安装到电脑。 创建App ID时候,要考虑清楚是否需要iCloud,和APNS。建议把这些都配置好,再去创建provisions。否则修改了App ID后,对之前的provision会有影响。如果真的需要修改App ID,建议将旧的provisons删除(包括电脑上和xcode里已安装的文件),再安装新的provision。另外,developer provison可以安装在电脑上(因为含有system信息),production的只能安装到xcode中。

顺便贴一下provison和ID,证书,system间的关系图:

另外,说明一下,有时候下载完证书并添加后,在keychain里会没有key,说明证书有问题。我遇到的情况一般是安装了多个证书导致的,这时一般是通过revoke证书再重新制作解决。

下面主要征对上传到store上的app,说明一下步骤,参考资料来自官方文档

在上传之前,确保已经生成Mac App和Installer的证书,并且准备好production provisions。

另外,对程序本身也有些准备工作,比如设置App Icon,deployment target等等,这些和iOS App一样。由于我们是要上传到store的,因此我们必须要enable sandbox。

因为sandbox的权限通过entitlement来控制的,所以如图:

Network,Hardware,Apps下的选项根据需求来选择,选择后会自动在相应的entitlement文件中生成相应的键值。

接下来选中target后,在code sign下选择合适的provisons(注意debug和release下的选择)。如果发现安装完provision后,xcode选项里没有,可以重启xcode看看。

在archive制作安装包之前,我们确认下schema的设置是否正确:

Archive的配置须是release的。

接下来我们就要选择xcode下的archive功能了,完成后会弹出 Organizer-Archives的窗口,右边有个Distribute的按钮,点击:

1 submit:上传到Store,记得在iTunes connect创建好相应的App,然后选择next,接下来的事就交给xcode。

2 Export Developer:这种是不在store上的distribution

3 Export as:如图,有3种选择。

在上传到store前,我们必须测试安装过程以确保程序能正确安装。这时我们可以选择export as paskage,生成一个安装包,注意这个时候要选择insaller的证书:以你的team名开头,在"Identities without profiles"下。然后利用如下命令:

sudo installer -store -pkg path-to-package -target /

(-store是模拟从App store上安装)

生成的App被安装到/Application下,可以自行查看。

运行测试后没问题,就可以提交到app store上了。

[转]Mac App distribution in App Store的更多相关文章

  1. App开发到App Store上架,发布流程。

     http://blog.csdn.net/wojsg001/article/details/12005887 App开发到App Store上架,发布流程. 分类: IOS2013-09-25 11 ...

  2. App Distribution Guide (二)

    Configuring Your Xcode Project for Distribution  You can edit your project settings anytime, but som ...

  3. App Distribution Guide (一)

    This guide contains everything you need to know to distribute an app through the App Store or Mac Ap ...

  4. App Distribution Guide--(三)---Configuring Your Xcode Project for Distribution

    Configuring Your Xcode Project for Distribution You can edit your project settings anytime, but some ...

  5. [App Store Connect帮助]四、添加 App 图标、App 预览和屏幕快照(1)App Store 图标、App 预览和屏幕快照概述

    您可以为您的 App Store 产品页提供有关您 App 的 App Store 图标.三个 App 预览和十张屏幕快照. App Store 图标 您必须提供一个 App Store 图标,用于在 ...

  6. apicloud 上传/更新App版本到 ios store 流程步骤

    app更新 上传APP的地址: https://itunesconnect.apple.com/login 苹果开发者中心: https://developer.apple.com/ app正式包更新 ...

  7. iOS App Store上架新APP与更新APP版本

    iOS App Store上架新APP与更新APP版本 http://www.jianshu.com/p/9e8d1edca148

  8. 【转】APP被苹果App Store拒绝的N个原因(持续补充)

    作为iOS开发者,估计有很多都遇到过APP提交到App Store被拒,然后这些被拒的原因多种多样,今天dApps收集了常见的被拒的原因,以便更多开发者了解. 1.程序有重大bug,程序不能启动,或者 ...

  9. APP被苹果App Store拒绝的79个原因【转】

    作为iOS开发者,估计有很多都遇到过APP提交到App Store被拒,然后这些被拒的原因多种多样,今天dApps收集了常见的被拒的原因,以便更多开发者了解. APP被苹果APPStore拒绝的各种原 ...

随机推荐

  1. PHP中检测ajax请求的代码例子

    多数情况下,基于JavaScript 的Js框架如jquery.Mootools.Prototype等,在发出Ajax请求指令时,都会发送额外的 HTTP_X_REQUESTED_WITH 头部信息, ...

  2. day03

    1.set集合--无序的,不重复的序列,类似dict,但是只有key,没有value 创建一个集合: s1 = {11,22,33} s2 = set((22,33,44))必须传入一个可迭代对象(t ...

  3. NVIDIA 显卡温度提示过高,显卡温度高99度怎么办?

    你可能没有在意您的NVIDIA(英伟达)显卡温度,那么你就不会知道显卡温度过高如何导致的呢?也不会知道如果去解决显卡温度过高的问题了,在此我希望在电脑玩游戏或者在办公中电脑速度快慢,或者发热的情况下, ...

  4. 自己动手开发编译器(五)miniSharp语言的词法分析器

    稍微说明一点,整型常量和上面的标识符的词法,在调用lex.DefineToken时都多传了一个参数.这个参数是可选的描述信息,如果不传会直接使用正则表达式的字符串形式.而标识符的正则表达式有4万多个字 ...

  5. BZOJ 3240: [Noi2013]矩阵游戏

    3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec  Memory Limit: 256 MBSubmit: 1586  Solved: 698[Submit][Status ...

  6. Express 学习记录

    1. Express 4.0以上的版本需要独立安装 the express "generator",即 npm install -g express-generator.

  7. Entity Framework with MySQL 学习笔记一(乐观并发)

    在做项目时,通常我们对乐观并发有几种处理模式 1. 告诉用户此数据已被其他人捷足先登,更改了.你就算新一下重来吧. 2.直接把数据覆盖上去,我最大. 3.用被人的数据. 这里给出 code first ...

  8. C++调用DLL有两种方法——静态调用和动态调用

    C++调用DLL有两种方法——静态调用和动态调用 标签: dllc++winapinullc 2011-09-09 09:49 11609人阅读 评论(0) 收藏 举报  分类: cpp(30)  [ ...

  9. mono环境变量

    mono环境变量 2013-05-11 01:14:33|  分类: mono|举报|字号 订阅     下载LOFTER我的照片书  |     Name mono - Mono's ECMA-CL ...

  10. cf509E Pretty Song

    E. Pretty Song time limit per test 1 second memory limit per test 256 megabytes input standard input ...