版本迭代与App Store上架

Posted ZeroOnet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了版本迭代与App Store上架相关的知识,希望对你有一定的参考价值。

前言

自从Xcode8引入了Automatic manage signing,广大ios Developer终于松了很多口气了。(幸运的我是在这之后才有上架的经历,嘿嘿!)现在的上架也就不再那么多坑点了,很多步骤都是水到渠成。这篇博客就分享一些我在这过程中的经验,同时也会粗略演示上架的过程和注意事项,最有价值的是两个被拒的原因,一定不要错过哟!

版本迭代

之前实验室里做过的一个关于智能停车的项目——停如意,需要将之前用文本框输入车牌换成用指定的自定义键盘让用户更方便的添加车牌号。然而,在刚开始动工时发现原来的工程运行后,点击登录程序直接崩溃!淡定,先加个全局异常断点来看看哪里出问题了:

然后发现是登录请求参数有一个为nil导致的,这个参数是deviceToken。做过远程推送通知的朋友就知道,这是一个设备标识符。既然获取不了设备标识符,那么注册通知就不会成功,不妨先看看失败原因:

- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error 
    NSLog(@"error: %@", error.description);

原来是通知证书失效了,在开发者中心重新配置通知就可以了。

//之前是Disable

后面就是正常的开发流程了。对于自定义键盘,在iOS 10以下,你需要持有当前键盘控制器的实例(UIInputViewController),否则会出现界面布局无法实现和按钮行为响应错误等问题。在iOS 10以上系统会自动持有,为了兼容考虑,你还是应当自己完成这份工作,就像这样:

- (void)textFieldDidBeginEditing:(UITextField *)textField 
    //......
    _carPlateViewController =[[EPCarPlateViewController alloc] initWithKeyboardType:type hiddenType:hiddenType];
    _carPlateViewController.delegate = self;

    UIView *inputView = _carPlateViewController.inputView;
    inputView.frame = viewFrame;

    textField.inputView = inputView;

App Store上架

- - 构建版本 - -

对于一个全新的App,需要先新建App。使用开发者账号登录iTunes Connect,点击我的App,就会进入如下界面:

点击+,选择新建App:

然后依照提示依次填写信息就行了。对于版本升级,就点击那个需要升级的App,然后点击添加版本:

然后依照提示填写信息就行了。

- - 打包上传 - -

将对应版本号的工程文件打包并上传到App Store

然后静静的等待打包成功……

开始上传:

可能你会发现始终上传失败,原因你懂的。感谢Stack Overflow上大神们的探索,你只需要在终端执行这条命名就行了:

命令是:”/Applications/Xcode.app/Contents/Applications/Application Loader.app/Contents/itms/bin/iTMSTransporter” (需要将引号改为英文格式)

当你把这条命令执行完毕之后,上传的过程就会变得很顺利,而且以后都会是这样。

- - 提交审核 - -

此时,你需要完善你的应用信息,以便更好地在App Store展示。针对于屏幕快照,你需要5.5寸设备(iPhone 某Plus)来截屏,然后可使用QQ选择原图传送到你电脑上,随后添加到里面即可。对于App Store图标,你需要上传一个1024 ☓ 1024的icon,最好是jpg格式的,否则可能出现这个问题:

将所有信息填写完毕后,保存并提交审核即可。

- - 被拒的理由 - -

回答这几个问题:

  1. 你的App用户是谁?
  2. 你的应用是为特别的组织设计的吗?
  3. 用户怎样获取一个账号?

因为这是一个休渔期船只管理App,只有管理人员使用,管理人员的账号是后台申请下发的,所以审核人员需要你回答以上问题。之后应用就成功上架了。

因为这个原因被拒的话,你就必须重新上传修改后的二进制文件。根据审核回复的消息来看,被拒的原因是因为启动引导界面的手机模型是android手机。因为:

总结

有朋友戏称iOS开发人员都是折翼的天使,因为Apple会有各种奇葩的理由来拒绝你辛辛苦苦开发的应用。Anyway,遵守规则就不用怕了,被拒的多了就会有经验了,大不了再来一次了!

以上是关于版本迭代与App Store上架的主要内容,如果未能解决你的问题,请参考以下文章

iOS APP上架及版本迭代

最新上架 App Store 全流程

iOS 迅雷重新上架 App Store,请速度下载!

App Store 已上架项目打开瞬闪问题

详细iOS APP上架App Store新手教程

2018最新苹果APP上架App Store流程(超详细)