ios ios开发者创建应用中心怎么删除刚创建的应用

IOS开发APP提交程序上传流程
我的图书馆
IOS开发APP提交程序上传流程
& & & 由于苹果的机制,在非越狱机器上安装应用必须通过官方的App Store,开发者开发好应用后上传App Store,也需要通过审核等环节。AppCan作为一个跨主流平台的一个开发平台,也对ipa包上传App Store作了支持。本文从三个流程来介绍如何实现AppCan在线编译出ipa包,以及上传到苹果App Store。
一、证书的导出
1.1、前期工作
首先你需要有一个苹果的开发者帐号,一个Mac系统。
如果没有帐号可以在打开申请加入苹果的开发者计划。支付99美元每年,怎么申请网上有详细的介绍,在此不多做介绍。
如果你已经有了一个IDP,打开并登录到苹果MemberCenter
登录以后可以看到下面这个界面,列出了你开发需要的一些工具,支持,itunes app管理等内容。
选择第二项:Ios provisioning Portal,进入,所有证书相关的都在这里进行。
1.2、申请AppId
在下图的左边选择 App IDs,我们先创建一个AppId,对于要发布到Appstore上的程序, 都有一个唯一的AppId,下面会列出你当前所有的AppId。
我们点击右上角的New App ID:
其中有两项需要你自己填:
第一个Description,用来描述你的AppId,这个随便填,没有什么限制;
第二项Bundle Identifier (App ID Suffix),这是你appid的后缀,这个需要仔细。
因为这个内容和你的程序直接相关,后面很多地方要用到,最好是com.yourcompany.yourappname的格式,当然没有公司名的个人开发者,第二项可以用你自己的英文名字或者拼音,如下图:
<在线ipa包编译时需要填写的iapp IDs就是你在此输入的第二项内容。
填完后submit,如下图,可以看见我们已经生成的appid:ebook appid。想要支持推送服务和iCould等也可以在这儿配置:
1.3、申请发布证书
1.3.1、先创建一个证书请求文件
这儿需要一个Mac系统。以下内容以雪豹系统为例,其他版本差别不是很大。
首先打开应用程序-实用工具-钥匙串访问(KEY CHAIN),在证书助理中,选择"从证书颁发机构求证书",如下图:
在下图所示的界面,你的电子邮件地址:填你申请idp的电子邮件地址,常用名称,默认就好,CA空,选择存贮到磁盘,点击"继续":
选择保存的位置,比如选择桌面。
下一步点击完成,你就可以看到你的桌面多了一个CertificateSigningRequest.certSigningRequest的证书请求文件。
1.3.2、安装WWDR证书
继续登录到你的MEMBER CENTER,选择左边的certificates项,可以看到它右边有四个选项,我们选择Distribution,点击下面的click here to download now.
下载完成后,双击安装,安装成功后,可以在你的钥匙串里面的证书下面看到这个中级证书。
1.3.3、请求一个发布证书
OK,现在来请求一个真正的发布证书,还是在这个页面,点击request certificate:
这个页面告诉你怎么生成发布证书,点击下面的"选取文件",选择你在第一步创建的证书请求文件,然后点击"submit":
OK。现在你有一个证书可以下载了,如下图(不能下载请刷新页面):
1.3.4、安装和导出
点击"download"下载你生成的证书,下载完成后双击安装,如果有如下提示,选择login,OK:
这时再查看你的钥匙串,应该有下面这一行Iphone Distribution的证书,注意,这个证书有一个小三角可以点击,展开后有一个对应的密钥。如果你没有这个钥匙,那么请检查上面那一步做错了。
现在发布证书已经安装了,我们选择这个证书,右击,选择,导出"xxxxxxx",如下:
给你要导出的证书起个名字,选择一个存的位置,注意,保存成P12的信息交换文件
输入密码,如果Mac系统有密码,后面还会要求你输入系统密码。
现在你就有了发布程序需要的p12文件。
<在线ipa包编译时需要上传的distribution.p12就是你导出的发布证书;certificate password就是导出证书时填写的密码。
1.4、生成provisioning文件
在下图左边选择provisioning选项,同样的右边的子项中选择distribution,来生成一个发布的准备文件:
选择new profile,在下图中,第一个method,选择App Store;
Profile name,这个随便填,下面的App ID,选择我们开始的时候创建的appid,这个必须一致。确认后提交:
等待几秒钟,provisioning就可以下载了,点击download,下载。我们得到了一个xxxxxx.mobileprovision
<在线ipa包编译时需要上传的distribution.mobileprovision就是你生成的文件。
现在,我们的证书的准备工作就做完 了,我们有了一个appid,一个p12格式的证书文件,一个provisioning文件。
二、在线ipa包编译
根据流程一制作的证书及p12文件,开发者就能够对应于进行混编,从而生成出可上传Appstore的ipa包,其流程如下:
AppCan在线的打包方式(非IDE打包方式),用户生成应用时需要选择生成ios平台,勾选后弹出下图窗口:
需要填写上传Apple开发者在Apple获得的发布应用相关资质信息(详情请参考),并却确认提交。务必填写正确否则会打包失败的。
上传相关资质信息后,【注意】提交打出的文件包是用来上传到苹果App Store 用的 不能直接安装到手机测试
Q:打包成功后我如何上传到App Store?A:下载.ipa文件到本地,更改文件后缀.ipa为.zip。(上传请参看)
Q:打包完成后我如何安装到越狱手机上测试?A:1、下载.ipa文件到本地,更改文件后缀.ipa为.zip并解压缩文件包,2、新建Payload文件夹,3、把解压缩.zip包里面的文件夹拷到Payload文件夹里4、压缩Payload文件夹为.zip文件包,改.zip后缀为.ipa5、安装到手机
跳过后打出的安装包可以直接安装到越狱手机。
三、Ipa包提交苹果App Store
通过AppCan在线与开发者证书混编后,生成的ipa包(后缀.ipa改为.zip)即可上传至苹果Appstore,以下是操作流程。
3.1、在itunes中创建程序
该部分内容继续以雪豹系统为例
打开(membercenter中也可以找到)选择"Manage Your Applications":
点击"Add New App",填写下面的表格。
默认语言,appname,SKU Number,这是自己程序的标识,点击后面的"?"有说明。Bundle id:这个可以选择,必须和你申请证书时候的appid保持一致。否则会上传失败。
填完后,点击"Continue"。
这个页面设置程序的生效时间和价格,选择后,点击"Continue"。
下图的页面需要填一些程序的信息,注意"Review Notes (optional)"这个选项是对苹果review程序的说明,如果你的程序需要登录才可以使用,要在这里提供用户名和密码,如果你的程序的一些特色很隐晦,可以在这里提供操作步骤,这是让apple的review人员看的东西,不会在App Store里面显示。
下图的页面是一些分级的说明,根据需要选择:
下面是metadata,这个可能很重要,注意那个keywords,设置的越多你的程序被搜到的几率越大,但是最好不超过100字,否则可能会被苹果认为是作弊。Large app icon 这需要一张的icon。screenshots是屏幕截图或者说明性的图片。
填完后done,这样就创建好了一个app,点击"view detail",然后选择“Ready to Upload Binary”。这时发现你的app显示一个黄色的wait for upload,表示你可以上传你的二进制代码了。如下图:
3.2、上传程序
上传程序请在你的mac系统下找到application uploader工具,找不到的可以在下图这儿下载。Xcode4.x将该工具集成到了xcode里面。
在Mac下安装了该工具后,运行,如果是第一次,可能需要你用你自己的idp帐号登录(以后会保存在钥匙串中),登录后会自动检查你有没有等待上传状态的app,选择你创建好的app,如下图:
点击"Next"按钮:
点击"choose"按钮,选择你从AppCan在线编译出来的ipa包,修改.ipa后缀为.zip,请不要打开修改包里面的内容(包括添加和删除资源图片等文件),否则会上传失败。
点击"Send"按钮,等待上传,上传完成后,打开itunesconnect,这时候你的程序状态变为"upload received",程序进入苹果第一步审核。第一步审核几分钟到几小时。当通过第一步审核后,程序状态变为"wait for review",此时程序进入等待人工审核的状态,大概4天到2周的时间都是这个状态,直到排队轮到你的程序时,程序进入"in review"状态,如果你的程序没有内容上的问题,符合苹果的审核标准,那么审核成功,你程序的状态变为绿色的" Ready for Sale",如果审核失败,程序状态变为红色的" Rejected "。
上传过程中每一步的失败苹果都会发邮件给你,或者你能在Resolution Center看到详细的失败信息。
当你的程序变为"ready for sale"状态时候,你就可以在appstore里面找到它了。至此,上传结束。你就可以通过IOS设备在Appstore中找到你的应用了。
发表评论:
TA的最新馆藏iOS开发--应用设置及用户默认设置【2、读取应用中的设置】 - 简书
iOS开发--应用设置及用户默认设置【2、读取应用中的设置】
在上一节中,我们通过探讨,了解运用bundle捆绑包以及plist文件的基本开发。用户能够使用设置应用来声明他们的偏好设置,那么我们怎样去调用用户所设置的参数呢,上节我们只创建了Setting.bundle捆绑包,在这个基础上,这一节,我们将继续讨论,关于如何读取应用中的设置,以及让app应用与设置的数据同步。我们将通过本节内容达到的效果如下:
【图1 app应用界面】
【本次开发环境: Xcode:7.2
iOS Simulator:iphone6S plus
By:啊左】一、获取用户设置1、NSUserDefaults类的介绍访问用户的设置需要调用NSUserDefaults类,NSUserDefaults为单例类,需要调用类方法standardUserDefaults来获取指向标准用户默认设置的指针:NSUserDefaults *defaults =
[NSUserDefaults standardUserDefaults];defaults可以像NSDictionary类一样进方法的调用,例如“objectForKey:”,会返回一个Object-C对象,如NSString、NSDate、NSNumber。若需要获取整型、浮点型等方式,可以用“intForKey:”、“floatForKey”、“boolForKey”等其他方法。2、键值在上一节中,plist属性列表中的偏好设置字段,每个条目都有特定的键,例如Item1对应的是“officer”、滑块Item6对应的是“SliderValue”,这些键都是做为调用该项的ID。因此我们可以先把这些键放在自己创建的头文件"settingHead.h"中,便于调用。内容如下:#ifndef settingHead_h#define settingHead_h#define Officer
@"officer"#define AuthorizationCode
@"authorizationCode"#define Rank
@"rank"#define IsWarp
@"IsWarp"#define SliderValue
@"SliderValue"#define moreFactor
@"MoresliderValue"#endif /* settingHead_h */3、关联相关控件接下来,我们使用Main.storyboard创建14个label、一个开关、一个滑块,为左边8个label修改为Officer、code等内容如下:
Main.storyboard设置界面】
确认该视图关联的是ViewController,然后打开辅助编辑器(或者在Main.storyboard界面按下option+command+return),按住control键分别从Main.storyboard图标拖动到ViewController.h中,为右边6个label以及滑块、开关添加在ViewController.h的接口,代码如下:#import@interface ViewController : UIViewController//5个label接口@property (weak, nonatomic) IBOutlet UILabel *label1;@property (weak, nonatomic) IBOutlet UILabel *label2;@property (weak, nonatomic) IBOutlet UILabel *label3;@property (weak, nonatomic) IBOutlet UILabel *label4;@property (weak, nonatomic) IBOutlet UILabel *label5;//滑块、开关接口@property (weak, nonatomic) IBOutlet UISwitch *enginesS@property (weak, nonatomic) IBOutlet UISlider *WarpS//滑块、开关的接口方法(修改用户默认设置)- (IBAction)enginesSwitchBtn:(UISwitch *)- (IBAction)WarpSliderBtn:(UISlider *)@end在ViewController.m中,敲入:#import"settingHead.h"
添加键集合的头文件,然后添加一个更新app界面数据的方法:-(void)refreshValue ,代码如下:#import "ViewController.h"#import "settingHead.h"@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];self.view.backgroundColor = [UIColor orangeColor];[self refreshValue];}-(void)refreshValue{NSUserDefaults *defaults =
[NSUserDefaults standardUserDefaults];self.label1.text = [defaults objectForKey:Officer];self.label2.text = [defaults objectForKey:AuthorizationCode];self.label3.text = [defaults objectForKey:Rank];self.label4.text = [defaults boolForKey:IsWarp]?@"Enable":@"Disable";self.label5.text = [[defaults objectForKey:SliderValue] stringValue];self.enginesSwitch.on = [defaults boolForKey:IsWarp];self.WarpSlider.value = [defaults floatForKey:SliderValue];}在以上的refreshValue方法,首先通过调用NSUserDefaults类获取了标准用户默认设置,然后调用objectForKey方法访问获取对应键值的内容、需要注意的是label1到label5,除了label4外,都是以NSString对象的形式返回,label4中defaults调用键值为IsWarp的方法返回的是bool值。因此我们得到结果后给予判断再赋值给label4的文本;而label5由于是内容为滑块的值,是以NSNumber形式返回的,因此需要调用改对象的stringValue方法来获取它存储的值的字符串表示。二、在应用中修改用户默认设置应用中修改用户默认设置所调用的方法为:“setObjectforKey:”,在在ViewController.m中,需要在关联的开关滑块方法WarpSliderBtn、enginesSwitchBtn中添加如下代码:- (IBAction)WarpSliderBtn:(UISlider *)sender {NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];[defaults setFloat:self.WarpSlider.value forKey:SliderValue];[defaults synchronize];}- (IBAction)enginesSwitchBtn:(UISwitch *)sender {NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];[defaults setBool:self.enginesSwitch.on forKey:IsWarp];[defaults synchronize];}运行、我们可以看到如下界面:
我们可以看到,即使我们为Multi Value、IsWarp设置默认值得,依然不会显示在我们的应用中,这是因为:我们的应用完全不知道设置捆绑包中已保存的该应用的偏好设置,即使我们在设置中设置好相应的值,然后再运行一次可以看到应用上显示值,但是当我们删除掉运用再运行一次,还是显示为空值,而不能看到默认值。我们可以作如下处理:如果我们尝试查找未设置的键/值,但该键至少会有一个默认值,可以用registerDefaults:方法,为了使得改设置在整个运用中都能有效,最好在应用启动时就调用它因此,点击AppDelegate.m文件,添加"settingHead.h”头文件,然后在didFinishLaunchingWithOptions中键入以下代码:-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {// Override point for customization after application launch.NSDictionary *dict = @{@"warp":@YES,@"warpFactor":@5,};[[NSUserDefaults standardUserDefaults] registerDefaults:dict];return YES;}按下command+shift+H ,在ios模拟器主页上面长按我们创建的app,删除它,然后按下command+R再运行一次我们可以看到刚刚我们通过registerDefaults:方法设置的默认值。三、同步系统设置与应用上的数据现在我们可以尝试下通过调整应用来修改系统设置的值,但是奇怪的是:当我们修改系统设置,再打开app应用上面的数据也没有变化,当我们修改app上面的滑块与开关,再查看系统设置也是没有变化。这也是ios系统的一个特点:当应用在运行时返回主屏幕,并不会退出应用,而是由操作系统在后台将其暂停了,这样它就可以随时能够快速启动,因为用户在切换应用时,重新唤醒一个应用比从新启动一个应用要省下很多时间,这使得ios系统下应用的切换更加高效快捷。这也是后台应用的基本知识。那么在这个例子中,我们应该如何同步更新数据呢,其实只要在唤醒的时候添加一个功能:重新加载同步用户偏好设置并重新显示它们的内容。接下来我们需要运用到“通知”这一个对象之间进行通信的轻量级机制。通知中心是一个单例对象,作用是在对象之间传送通知。“通知”通常是在某些事件发生时发送的说明,UIApplicaton类会发送大量的通知(可以从Xcode的文档阅读器中找到这些更加详细的内容,在UIApplicaton页面的底部)。应用在回到前台时,刷新一下它显示的内容,因此我们需要调用名为 “UIApplicationWillEnterForegroundNotification”的通知,编写viewWillAppear:方法时,我们会订阅该通知,并告诉通知中心该通知出现时需要调用的方法,这个方法我们可以命名为:“applicationwillenterforegound”、点击ViewController.m,添加以下代码:-(void)applicationwillenterforegound:(NSNotification *)notification{NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];//进行应用设置与控件上的数据同步[defaults synchronize];[self refreshValue];}其中,我们可以看到defaults调用synchronize方法,该方法强制用户默认值保存尚未保存的修改,然后从存储中重新加载所有未修改的偏好设置。事实上,这是在强制它重新读取已保存的偏好设置,从而获取设置应用中所作的修改,然后调用refreshValue:方法来个更新显示的内容。Now,我们需要在ViewController.m中实现viewWillAppear:方法,使得该控制器订阅我们关注的“UIApplicationWillEnterForegroundNotification”通知。如下:-(void)viewWillAppear:(BOOL)animated{[super viewWillAppear:animated];//注册观测者UIApplication *app = [UIApplication sharedApplication];[[NSNotificationCenter defaultCenter]addObserver:self selector:@selector(applicationwillenterforegound:) name:UIApplicationWillEnterForegroundNotification object:app];}在该addObserver:selector:name:object:方法中,observer传递的是self,也就是我们的控制器本身;而selector,调用的是我们自己写的选择器方法,用于告诉通知中心在该通知发出时调用该方法;name是我们要接収的通知的名称,一般可以在Xcode的文档阅读器中找到这些更加详细的内容;最后一个参数app,是我们关心的获得通知的来源对象,如果改为nil,表示只要有方法发出“UIApplicationWillEnterForegroundNotification”通知,我们就会得到通知。这样,我们就完成了,回到app前台重新加载内容的开发。那么当用户在应用中操作控件,又怎样把内容同步到系统的默认设置里面呢?很简单,只要在我们设置的控件,开关与滑块的方法中添加一行 “[defaults synchronize]” 即可。- (IBAction)WarpSliderBtn:(UISlider *)sender {NSUserDefaults*defaults =[NSUserDefaults standardUserDefaults];
[defaults setFloat:self.WarpSlider.value forKey:SliderValue];[defaults synchronize];}- (IBAction)enginesSwitchBtn:(UISwitch *)sender {NSUserDefaults*defaults =[NSUserDefaults standardUserDefaults];
[defaults setBool:self.enginesSwitch.on forKey:IsWarp];[defaults synchronize];}【注意:调用synchronize:方法的开销会很大,因为要比较应用以及系统设置中的所有用户偏好设置,因此应该尽量减少对synchronize的调用,不过像我们此次的项目中,在响应每个用户操作时调用它一次,并不会造成任何显著的性能问题。】当然,为了使得系统的工作过程更加清晰,我们可以在通知系统不需要接收到通知时,在viewDidDisappear中撤销注册,因此我们可以添加代码如下:-(void)viewDidDisappear:(BOOL)animated{[super viewDidDisappear:animated];/*注销监听
也可以用removeObserver:self name: object:方法来撤销对特定通知的订阅,但以下这种更加方便:直接告知确保通知中心彻底忘记我们的observer的方法,不管注册它是为了接收多少种通知。*/[[NSNotificationCenter defaultCenter] removeObserver:self];}按下“command+R”运行。在应用的空间【参照图1】以及系统设置上面编辑,以及切换时查看同步效果。做完以上工作,我们已经可以了解了设置应用和用户默认机制的基本概念,懂得如何添加捆绑包、为应用的偏好设置构建结构化的视图、通过NSUserDedeults读写偏好设置以及修改设置等内容,并且开发了相关的项目。相信在iOS开发的工作学习你一定也会用到相关的技术,并不断完善。(转载请标明原文出处,谢谢支持 ~ ^-^ ~)? by:啊左~不能创建ios的移动应用吗?_百度开发者中心吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0可签7级以上的吧50个
本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:6,484贴子:
不能创建ios的移动应用吗?
在开发者平台的的创建应用功能里,没有让选择是还是。。只能通过上传的方式创建。ios应用咋办?
1.此号亮点在于重复没有...
11连胜 感谢一路有你们...
ipad怎么才能变成大号路...
达内软件开发培训,&5+4&革命式软件测试培训,8大企业级实战项目,名师实操.高端软件测试课程覆盖Selemium,Jmeter,QTP,QC等高精软件测试工具,高薪入名企
这个问题你解决了没?
贴吧热议榜
使用签名档&&
保存至快速回贴怎么取消对不受信任应用开发者的信任?_ios吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:301,781贴子:
怎么取消对不受信任应用开发者的信任?收藏
手贱用了一把第三方的助手 心里又有强迫症 系统是8.2的 在网上搜索办法无果 谢谢谢谢~~~
好的话剧,坚决不能错过,价格也很重要!
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或天极传媒:天极网全国分站
您现在的位置:
& >&iOS开发:如何向App Store提交应用
iOS开发:如何向App Store提交应用博客 09:18
  当你克服重重困难终于开发出了自己的App,下一步就是向App Store提交了,这时应该如何操作呢?我的App真的准备好提交了?我敢肯定这些问题将会浮现在你的脑海。基于这篇教程,我将告诉你一个完整的提交过程。
  我们都知道苹果审核的过程就像是在“黑箱”操作,但这并不妨碍你为这个审核过程做一些事先的准备。苹果的App Store审核指南已经告诉你哪些是允许的,哪些是不允许的。当你第一次提交你的应用到苹果的时候,这是一个令人兴奋而但又伤脑筋的过程。即使再有经验的 开发者也会措手不及,毕竟这事不像写代码每天都干。
  在向App Store提交应用的前提是你已经成为苹果iOS开发者项目成员之一,你已经向苹果缴纳了99美元/年的费用。你可以通过此链接注册成为苹果iOS开发者项目成员。点击Enroll Now按钮。
  图1.注册成为iOS开发者
  1.你的应用已经准备好了吗?
  Step1.测试
  写完最后一行代码或者执行完最后一个功能并不意味着你的App已经完成了,你是否让你的应用在多个设备上进行了?你的应用是否有泄露的问 题?你的 应用程序是否总是崩溃?这几年,iOS设备市场规模增长迅猛,你必须保证你的应用已经在尽可能多的设备上通过测试。常见的问题比如你是否在iPhone 5的4寸屏幕到iPad Mini的7.9寸屏幕上都通过了测试。
  iOS模拟器非常有用,但它是在Mac上运行的,内存和处理能力要比你口袋中的强大很多,一款iPhone 3GS和iPhone 5的性能差别更不用多说。作为iOS开发者,你可不能冒着风险长期使用一款过时的iOS设备来创建和维护App,即便App可以在老的iOS设备上很好地 运行,但不代表也可以在新设备上跑的顺畅。
  苹果的审核是封闭的,但能减少不完善的性能表现给用户带来的糟糕体检。如果你的应用时常崩溃,或者启动后不久运行速递变得缓慢迟滞,那在向App Store提交之前你还有不少工作要做。即便苹果审核人员不能发现App存在的问题,但用户会发现。如果用户很差,那么用户会给你的差评或者低分,进 一步影响到应用的销售和下载。
  Step2.规则和指南
  就像我前面所说的,苹果为开发者提供了很多文档资料,开发者尤其要注意iOS人机交互指南和App Store审核指南,不过不少开发者没有精力或者难以静下心来认真研读这些文档,那么你的应用将会因为这些文档中列出的要求而被一再拒绝。
  再退一步说,即便你没有研读iOS人机交互指南和App Store审核指南,但开发者也要知道大家常说的那些规则,如下我列出了一些你的应用应该和不应该做的事情。
  你的应用:
  不能崩溃
  不能使用私有API,
  不能复制原生app的功能,
  应该使用IAP(应用内付费)金融交易
  不能在用户不知情的情况下使用或者麦克风
  应该使用有版权的图片
  这些只是上边所说的文档内容中很小的一部分。iOS人机交互指南和App Store审核指南内容更多是非常琐碎的。但有的小地方你也许会不经意的违反。比如,在苹果使用启用自家地图之前,MapKit framework使用的是谷歌地图,用户也非常清楚谷歌的logo会放在每张地图的左下角,如果你的应用的用户界面覆盖了谷歌的logo,那么苹果就会 拒绝你的应用。虽然这非常琐碎,但也是不少开发者经常“犯错误”的地方。
  2.预先准备
  在你开始将程序提交到App Store之前,你需要有一个App ID,一个有效的发布证书,以及一个有效的Provisioning profile。下面来看看它们各自的作用。
  Step 1: App ID(应用ID)
  App ID是识别不同应用程序的唯一标示符。每个app都需要一个App ID或者app标识。目前有两种类型的App标识:一个是精确的App ID(explicit App ID),一个是通配符App ID(wildcard App ID)。 使用通配符的App ID可以用来构建和安装多个程序。尽管通配符App ID非常方便,但是一个精确的App ID也是需要的,尤其是当App使用iCloud 或者使用其他iOS功能的时候,比如Game Center、Push Notifications或者IAP。
  如果你不确定什么样的App ID适合你的项目,我推荐你读下苹果关于这一主题的文档:Technical Note QA1713。
  Step 2: Distribution Certificate(发布证书)
  iOS应用都有一个安全证书用于验证开发者身份和签名。为了可以向App Store提交app,你需要创建一个iOS provisioning profile 。首先需要创建一个distribution certificate(发布证书),过程类似于创建一个development certificate(开发证书)。如果你已经在实体设备上测试你的App,那么你对创建development certificate就已经很熟悉了。
  如果对此不熟悉,我建议你读下苹果关于signing certificates和provisioning profiles的详细指导。
  Step 3: Provisioning Profile(配置文件)
  一旦你创建了App ID和distribution certificate,你可以创建一个iOS provisioning profile以方便在App Store中销售你的App。不过,你不能使用和ad hoc distribution相同的provisioning profile。你需要为App Store分销创建一个单独的provisioning profile,如果你使用通配符App ID,那么你的多个app就可以使用相同的provisioning profile。
  Step 4: Build Settings(生成设置)
  配置App ID、distribution certificate 和provisioning profile已经完成,是时候配置Xcode中target的build settings了。在Xcode Project Navigator的targets列表中选择一个target,打开顶部的Build Settings选项,然后更新一下Code Signing来跟之前创建的distribution provisioning profile相匹配。最近添加的provisioning profiles有时候不会立马就在build settings的Code Signing中看到,重启一下Xcode就可以解决这个问题。
  图2:配置Target的Build Settings
  Step 5: Deployment Target(部署目标)
  非常有必要说下deployment target,Xcode中每个target都有一个deployment target,它可以指出app可以运行的最小版本。不过,一旦应用在App Store中生效,再去修改deployment target,你要考虑到一定后果。如果你在更新app的时候提高了deployment target,但是已经购买应用的用户并没有遇到新的deployment target,那么应用就不能在用户的移动设备上运行。如果用户通过 (不是设备)下载了一个更新过的app,然后替代了设备上原先的版本,最后却发现新版本不能在设备上运行,这确实是个问题。
  对此我有两个方法
  (1) 当你决定提高现有app的deployment target时,要在新版本的版本注释中进行说明。如果你提前告知用户,那么至少有一点,你已经尽力阻止问题的发生了。
  (2) 对于一款新app,我经常会把deployment target设置为最近发布的系统版本。因为新iOS版本发布后,渗透率的增长速度是令人难以置信的。很多人认为提高deployment target会失去大部分市场,这个说法并不准确,比如iOS 6,iOS 6发布后一个月,超过60%的设备已经进行了更新。但对Android而言,就是另外一回事了,Android用户并不会像iOS用户那样热衷于更新版本。
1分页导航1.应用准备2.3.
(作者:cocoachina责任编辑:Sunny)
天极新媒体&最酷科技资讯扫码赢大奖
* 网友发言均非本站立场,本站不在评论栏推荐任何网店、经销商,谨防上当受骗!
办公软件IT新闻整机

我要回帖

更多关于 ios开发者 删除应用 的文章

 

随机推荐