开发者总结的WatchKit App提交技巧
苹果4月初宣布所有注册开发者已经可以向App Store提交基于WatchKit开发的Apple Watch app了,不过不少开发者遇到了模拟器中没有发现的问题。这篇文章主要收集了一些提交tips和常见问题的解决方案,但首先你要先学习下苹果的官方指南。
文中大部分tips来自于从开发论坛和我自己的一些经验,根据收集情况,这篇文章会不定期更新。
iTunes Connect
可在iTunes Connect中上传Apple Watch截图和icon,并且iTunes Connect会在上传了第一个WatchKit build后展示出来。
截图
确保截图尺寸是312x390px。
截图只能是app的界面内容,并且是全空间截图。
不要在Apple Watch框架或者图片中设计截图。
不要将Apple Watch app置于iPhone app截图中。
不要在截图中添加额外的文本/宣传资料。
早期苹果要求开发者使用Apple Watch真机上运行的app截图,不过现在也可以使用模拟器中的运行图。点击command+S或者从File > Save Screen Shot中截图。截图默认会保存在桌面上。
App icon
确保你的app icon不包含alpha channel,不然将会在审核期间被拒,或者产生一些模糊的错误信息。
如果遇见了file names must match pattern "*@x.png"这个错误,请确保Watch app target的资产目录中已经包含了Watch app icon,因为iPhone app和Watch app不能共享一个资产目录。
请确保你的icon不包含黑色背景,以防icon和黑色的屏幕混在一起,并且也会增加被拒的风险。
Deployment Targets
虽然你的iPhone app可能支持iOS 8.2之前的系统,但WatchKit extension支持的操作系统必须是iOS 8.2或者更高版本。
如果你在WatchKit extension中使用了框架,那么iPhone app的部署目标必须是8.0及以上版本的系统,原因是你的WatchKit extension是与host app绑定在一起的。
Build Process
如果你使用Xcode以外的工具开发应用,或者你使用了自定义的构建脚本,请确保你的最终打包文件遵守苹果开发者论坛中的相关描述。
Version & Build Numbers, Bundle Identifiers, Names
确保iPhone app、WatchKit extension以及Watch app有着相同的编译号和版本号。
用iPhone app的bundle identifier作为WatchKit extension的bundle identifier的前缀,比如如果iPone app的bundle identifier是com.company.AppName,那么WatchKit extension的bundle identifier就是com.company.AppName.watchkitextension。
Jackrabbit Mobile的David Olesch建议,要确保app target和watch app target展示的名称应该一致,他曾因为该问题被拒。
在Xcode 6.3中打开你的应用程序,Deployment Target也会更改为iOS 8.3。如果要改回来,可能会被苹果拒绝。
Provisioning
WatchKit extension需要自己的app ID和Provisioning profile.
App Store描述
如果你在App Store描述中提及Apple Watch,请遵守苹果的指南,比如其中对字母大写的要求等。少数开发者曾因没有遵守苹果的指南而被拒。
Apple Watch通常应用英语书写,并且A和W要大写。你不能写成UPPERCASE和lowercase这种形式,也不能使用苹果的logo代替单词"Apple"。
性能
要尽可能地确保你的app在模拟器中响应积极。如果应用在模拟器中运行比较卡,那么在真机上卡顿情况只会加重,不止一位开发者曾因这个原因被拒。
如果你使用了openParentApplication:reply:,那我强烈建议你遵守这篇文章中的建议。我在真机上进行测试时发现,如果不使用文中的技巧,那么使用openParentApplication:reply:是非常不可靠的。一些参与真机体验的开发者也确认了这个问题。至少一位开发者曾因openParentApplication:reply:调用出现问题而被拒绝。
Swift
如果iPhone app使用了Swift编译,请设置框架和扩展的"Embedded Content Contains Swift"的 build setting为NO,设置iPhone app target的"Embedded Content Contains Swift" build settingYES。
App
复制钟面的功能,或者展示时间的方式容易跟其他混淆,那么可能会被苹果拒绝。可以查看苹果开发者论坛中的帖子,这个规则应当被写入HIG中,但苹果似乎遗漏了这一点。
在开发者论坛中查看这个帖子,提示你的Watch app大小不能超过50MB.
原文:Submitting Your WatchKit App
推荐阅读:
开发者总结的WatchKit App提交技巧的更多相关文章
- iOS APP提交上架流程
转载自CocoaChina,链接地址:http://www.cocoachina.com/bbs/read.php?tid=330302 后面问题我也遇到了,参考该文章解决的 转自http://blo ...
- App提交Appstore审核流程
原文: https://www.douban.com/note/461351420/ 这是一个app提交到iTunces Connect被拒了4次摸索出来的经验,说多了都是泪,先让我擦擦...好了,话 ...
- apple个人开发者证书无线发布app的实现(转)
解释一下这标题:apple个人开发者证书无线发布app的实现,也就是说不经过发布到app store,直接在ios设备上安装app,注:ios设备不需要越狱. 之所以有这篇文章的产生,可以看这里: 不 ...
- WatchKit App Submission Issues
查看原文: http://leancodingnow.com/watchkit-app-submission-issues/ I submitted a new version of my app P ...
- Apple Watch 1.0 开发介绍 1.3 简介 WatchKit App 架构
WatchKit app和WatchKit extension一起实现了app的界面.当用户在Apple Watch中操作时,WatchKit app从storyboards中选择合适的场景.比如,如 ...
- ele.me在IOS浏览器端启动APP的技巧分析
ele.me在IOS浏览器端启动APP的技巧分析 巧妙利用后台重定向,在schemes启动时提示用户打开,启动不了APP时能够及时跳转至下载页面. 避免报错页面的出现以及用户还没来的及选择就跳转到下载 ...
- App提交Appstore审核流程【转】
这是一个app提交到iTunces Connect被拒了4次摸索出来的经验,说多了都是泪,先让我擦擦...好了,话不多说,为了让中国的app不再那么容易被拒,或者被拒了不知道该咋办,我把我的小经验在这 ...
- error: WatchKit App doesn't contain any WatchKit Extensions whose WKAppBundleIdentifier matches
error: WatchKit App doesn't contain any WatchKit Extensions whose WKAppBundleIdentifier matches &quo ...
- ios app提交之前需要哪几个证书
1.遇到的问题 一款App在别人的机器上开发和发布,现在迭代更新和开发需要在一台新mac机上开发和发布. (使用同一个开发者账号)问题: 1.在新mac机器上开发并导入真机测试,是不是需要从别人的机器 ...
随机推荐
- 通过pyppeteer来爬取今日头条
import asyncio from pyppeteer import launch async def main(): browser = await launch() page = await ...
- 关于SQL查询效率 主要针对sql server
1.关于SQL查询效率,100w数据,查询只要1秒,与您分享:机器情况p4: 2.4内存: 1 Gos: windows 2003数据库: ms sql server 2000目的: 查询性能测试,比 ...
- spring源码学习之springMVC(二)
接着上一篇.继续来看springMVC中最和我们开发中接近的一部分内容: DispatcherServlet的逻辑处理 作者写到在DispatcherServlet类中存在doGet.doPost之类 ...
- Highcharts 饼图数值显示在图形上
1.引用js文件 <script type="text/javascript" src="http://cdn.hcharts.cn/jquery/jquery-1 ...
- poi操作word,简单写docx
参考博客: https://www.cnblogs.com/guilty/p/3977016.html 在HWPF中换行符是"\013",在XWPF中是run.addBreak() ...
- Python网络爬虫与信息提取[request库的应用](单元一)
---恢复内容开始--- 注:学习中国大学mooc 嵩天课程 的学习笔记 request的七个主要方法 request.request() 构造一个请求用以支撑其他基本方法 request.get(u ...
- 【洛谷】P1554 梦中的统计
P1554 梦中的统计 题目背景 Bessie 处于半梦半醒的状态.过了一会儿,她意识到她在数数,不能入睡. 题目描述 Bessie的大脑反应灵敏,仿佛真实地看到了她数过的一个又一个数.她开始注意每一 ...
- 洛谷P2982 [USACO10FEB]慢下来Slowing down [2017年四月计划 树状数组01]
P2982 [USACO10FEB]慢下来Slowing down 题目描述 Every day each of Farmer John's N (1 <= N <= 100,000) c ...
- python之pip
sudo vim /usr/bin/lsb_release 确保第一行是python2.7,不然无法使用pip安装第三方依赖
- DOM 创建元素 删除元素(结点)
创建新的 HTML 元素 如需向 HTML DOM 添加新元素,您必须首先创建该元素(元素节点),然后向一个已存在的元素追加该元素. <script> var para=document. ...