您的位置:首页 > 移动开发

版本迭代与App Store上架

2017-07-26 16:16 183 查看

前言

自从
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
格式的,否则可能出现这个问题:



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

- - 被拒的理由 - -



回答这几个问题:

你的App用户是谁?

你的应用是为特别的组织设计的吗?

用户怎样获取一个账号?

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



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



总结

有朋友戏称iOS开发人员都是折翼的天使,因为Apple会有各种奇葩的理由来拒绝你辛辛苦苦开发的应用。Anyway,遵守规则就不用怕了,被拒的多了就会有经验了,大不了再来一次了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息