[转]Mac App distribution in App Store
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的更多相关文章
- App开发到App Store上架,发布流程。
http://blog.csdn.net/wojsg001/article/details/12005887 App开发到App Store上架,发布流程. 分类: IOS2013-09-25 11 ...
- App Distribution Guide (二)
Configuring Your Xcode Project for Distribution You can edit your project settings anytime, but som ...
- App Distribution Guide (一)
This guide contains everything you need to know to distribute an app through the App Store or Mac Ap ...
- App Distribution Guide--(三)---Configuring Your Xcode Project for Distribution
Configuring Your Xcode Project for Distribution You can edit your project settings anytime, but some ...
- [App Store Connect帮助]四、添加 App 图标、App 预览和屏幕快照(1)App Store 图标、App 预览和屏幕快照概述
您可以为您的 App Store 产品页提供有关您 App 的 App Store 图标.三个 App 预览和十张屏幕快照. App Store 图标 您必须提供一个 App Store 图标,用于在 ...
- apicloud 上传/更新App版本到 ios store 流程步骤
app更新 上传APP的地址: https://itunesconnect.apple.com/login 苹果开发者中心: https://developer.apple.com/ app正式包更新 ...
- iOS App Store上架新APP与更新APP版本
iOS App Store上架新APP与更新APP版本 http://www.jianshu.com/p/9e8d1edca148
- 【转】APP被苹果App Store拒绝的N个原因(持续补充)
作为iOS开发者,估计有很多都遇到过APP提交到App Store被拒,然后这些被拒的原因多种多样,今天dApps收集了常见的被拒的原因,以便更多开发者了解. 1.程序有重大bug,程序不能启动,或者 ...
- APP被苹果App Store拒绝的79个原因【转】
作为iOS开发者,估计有很多都遇到过APP提交到App Store被拒,然后这些被拒的原因多种多样,今天dApps收集了常见的被拒的原因,以便更多开发者了解. APP被苹果APPStore拒绝的各种原 ...
随机推荐
- PHP中检测ajax请求的代码例子
多数情况下,基于JavaScript 的Js框架如jquery.Mootools.Prototype等,在发出Ajax请求指令时,都会发送额外的 HTTP_X_REQUESTED_WITH 头部信息, ...
- day03
1.set集合--无序的,不重复的序列,类似dict,但是只有key,没有value 创建一个集合: s1 = {11,22,33} s2 = set((22,33,44))必须传入一个可迭代对象(t ...
- NVIDIA 显卡温度提示过高,显卡温度高99度怎么办?
你可能没有在意您的NVIDIA(英伟达)显卡温度,那么你就不会知道显卡温度过高如何导致的呢?也不会知道如果去解决显卡温度过高的问题了,在此我希望在电脑玩游戏或者在办公中电脑速度快慢,或者发热的情况下, ...
- 自己动手开发编译器(五)miniSharp语言的词法分析器
稍微说明一点,整型常量和上面的标识符的词法,在调用lex.DefineToken时都多传了一个参数.这个参数是可选的描述信息,如果不传会直接使用正则表达式的字符串形式.而标识符的正则表达式有4万多个字 ...
- BZOJ 3240: [Noi2013]矩阵游戏
3240: [Noi2013]矩阵游戏 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 1586 Solved: 698[Submit][Status ...
- Express 学习记录
1. Express 4.0以上的版本需要独立安装 the express "generator",即 npm install -g express-generator.
- Entity Framework with MySQL 学习笔记一(乐观并发)
在做项目时,通常我们对乐观并发有几种处理模式 1. 告诉用户此数据已被其他人捷足先登,更改了.你就算新一下重来吧. 2.直接把数据覆盖上去,我最大. 3.用被人的数据. 这里给出 code first ...
- C++调用DLL有两种方法——静态调用和动态调用
C++调用DLL有两种方法——静态调用和动态调用 标签: dllc++winapinullc 2011-09-09 09:49 11609人阅读 评论(0) 收藏 举报 分类: cpp(30) [ ...
- mono环境变量
mono环境变量 2013-05-11 01:14:33| 分类: mono|举报|字号 订阅 下载LOFTER我的照片书 | Name mono - Mono's ECMA-CL ...
- cf509E Pretty Song
E. Pretty Song time limit per test 1 second memory limit per test 256 megabytes input standard input ...