提示成功的AppStore提交?

在一两天内,我将准备好将我的iPhone应用程序提交给AppStore,我很好奇经历了这个过程的人是否对顺利提交过程有任何提示/build议。

这是我所涵盖的东西;

  • 没有内存泄漏
  • 在实际设备上testing性能
  • 不会崩溃:)
  • 使用正确的证书/configuration文件

我有点不确定的是如何在info.plist中configuration“Bundle Display Name”/“Bundle Identifier”和“Bundle Name”。 我知道第一个是iPhone上显示的文本,但是最后一个呢? 这是否必须符合捆绑标识符?

还有什么我应该添加到info.plist? 我注意到,当为Adhoc发行版构build时,我的应用在iTunes中没有任何作者/标题信息。

首先,不要担心在iTunes中缺less作者/标题信息(和图标)。 这是元数据,当您使用App Store分发时到达。

正如sascha所说,您的包标识符应该是唯一的,通常是您的域名向后。 这需要与您在Developer Portal中创build的App ID匹配。

显示名称(CFBundleDisplayName)是它在主屏幕上的显示方式。 我发现的一个重要的事情是,它可以被本地化,所以如果你的应用被称为“啤酒”的英文,它可以显示为意大利的“Birra”和德语的“Bier”。

机械的东西,只要你按照说明,其实是相当直接的。 我发现钥匙正在准备。 在您的应用程序上线之前,您基本上没有注意到,审查过程可以从几个小时到几个星期之内进行。 确保你有一个网站正在运行,并有能力接受(并提供)反馈。 我刚刚使用Blogger。

除非你的应用程序是微不足道的,真实的世界将会发现你没有预料到的问题,你的不快乐的用户永远是最有声望的,所以你需要回复的能力!

顺便说一下,我的应用程序是美味的。

确保你有一套防火服,可以处理所有迟钝的评论者,而不用尝试应用程序或阅读它应该描述的内容。

我明白了不要做我描述说不做的事情。

审查过程,无法真正回应,令人发疯。

提交应用程序时,请确保在info.plist文件中正确设置版本号 – 更新应用程序时,您必须增加版本号。 您可以使用xx表示法或xxx表示法。 (我忘了更新我的第一个应用程序更新)。 不是很难更新和重新编译,但这是容易忘记的事情之一。

我也同意亨特。 你会得到不好的评论。 没关系。 他们是白痴。 你的应用很棒。

如果您有证书问题,我发现有一些有用的东西:

  1. 重新启动XCode。
  2. 在您的iPhone / iPod中,进入设置>常规>configuration文件确保您使用的configuration文件在那里,没有其他冲突的configuration文件(我有两个分发configuration文件为同一个应用程序)。 您可以在iPhone / iPod中将其删除。

在某些时候,您会看到“应用程序失败的validation码validation”错误。 它会让你疯狂。 深呼吸一下。 重新启动XCode,重新启动您的开发硬件。 去撞墙,去喝一杯,它会再次运转。

那么,你会想:

  1. 清理构build目标(如果你对所有目标都生气,则清除所有目标)
  2. 将代码签名标识(在目标属性中)设置为“不要代码签名”
  3. closuresXcode
  4. 删除生成文件夹中的所有目录
  5. 打开Xcode
  6. 重置代码签名身份到您的iPhone发行:证书
  7. 牺牲一个小动物。
  8. build立。
  9. 提交应用程序到iTunes Connect
  10. 利润!

请注意,Xcode 4在处理configuration方面要好得多。

一旦您的应用获得批准,您应该将“可用date”更改为今天的date。 这确保了它会显示在按datesorting的类别列表的顶部。 我们为我们的应用iStylist Makeover做这个。

更新:如下所述,这不再有效。

这篇文章是迄今为止这个优秀问题最全面的答案:

app store拒绝

该post也链接到该主题的其他资源。

祝你好运,马修

文章中的信息包括:

错误
HIG Lite版本互联网
连通性(您可能会惊讶地发现优秀的信息)
带宽使用过多
蜂窝networking设备能力(这里救了我的另一个伟大的点)

  • 私有API
  • 有限的function
  • 没有解释的代码
  • 处理UserData
  • 受版权保护的内容
  • 使用商标图像
  • 不良内容
  • UIWebViews中
  • App Store以外的事务
  • 价格信息应用图标和应用程序
  • 存储图像应用说明
  • App Store的关键词更新是
  • 作为新的应用程序审查

如果您被拒绝,您的提交date将保持与您第一次提交时相同,从而导致您的应用程序最终变为可用时的较低排名。 如果您被拒绝,请让苹果删除第一次提交,而不是在被拒绝的应用程序中replace二进制文件,将其作为新版本号1.1等的新应用程序提交。

有人build议在推广阶段将应用程序保留一周左右,然后再提高价格。 我已经尝试了两种方法,到目前为止,它似乎是一个方向,另一个是二分之一。 每1000次免费下载,你会得到10美元的0.99美元(这也是我的经验)

我遇到的一件小事。 确保您的小型embedded式图标57×57匹配大型512×512图标。 如果他们认为“太”不同,他们会拒绝该应用程序。 所以不要试图在更大的图标上显示更多的细节。

如果您正在使用任何Apple窗口小部件,请遵循UI指南。 例如,在改变其含义的上下文中重用苹果的图标集(例如当图标被保留用于调出设备的图片专辑时,重新调整用于截图的相机图标)可以被拒绝。

苹果现在已经(截至2010年9月9日)发布了他们的app store评论指南的正式列表,所以值得检查一下,你没有违反任何一个:

审批指南

(需要苹果开发者login)

或在这里镜子:

app store指南

他们也有自己的App Store提交提示页面(可能需要开发者login)。

我发现他们并不真正检查内存泄漏和稳定性问题,更多的可用性问题。 例如, 我的应用程序使用核心位置在珀斯find巴士站。 当他们在加利福尼亚州进行testing时,他们发现附近没有(真是一个惊喜!)。 他们让我不显示区域外信息。

另一件事是在巴士站数字。 在珀斯,他们是5位数字。 苹果公司的testing人员input了两位数字,并且无意中提出了火车站,为此我使用了一个稍微不同的代码path,而我描述中描述的function不会起作用。

这实际上是非常方便的反馈,有一个我不知道的人给了它一次很好。 我很惊讶他们的testing有多彻底。 我认为这只是某种自动的静态validation工具,以确保您不会试图违反iPhone的安全。

显示名称和名称应该是相似或相同的,除非你知道他们不需要(例如twitteriffic和twitteriffic高级在iphone上显示为“twitteriffic”,但是他们是不同的名称不同的应用程序)。

软件包标识符在某些方面是Appleregistrypath的等价物,Windows开发者将使用HKLM \ Software \ Company \ Application – Apple使用更像com.companyname.appname的约定。

(免责声明:没有AppStore开发知识,只有less量Mac和plist文件的知识)

我的build议是创build一个通配符分布configuration文件。 这样,你可以单独离开Bundle Identifier,默认值工作。

将“捆绑软件名称”设置为默认值。 您可以通过重命名产品来更改显示的名称(转到项目信息屏幕,select所有configuration并search“产品”。)您可以使用“捆绑显示名称”设置覆盖此名称,但是如果产品名称正确,则不需要。

提交应用程序时,您应该准备好高分辨率(512×512)版本的徽标或促销图片。

如果你的应用程序被拒绝,苹果告诉你要修复的东西。 他们很合理,所以不要担心。

从设备提交信息到互联网也是一个潜在的陷阱。 SDK协议说:

任何forms的用户或设备数据收集,或应用程序执行的图像,图片或语音捕获或录制(统称为“录制”),以及由应用程序执行的任何forms的用户数据,内容或信息上传,同步或传输统称“传输”)必须遵守所有适用的隐私法律法规以及与此类方面有关的任何Apple计划要求,包括但不限于任何通知或同意要求。 特别是,作为应用程序的一部分,必须向用户显示合理显眼的视觉指示符,以指示正在进行logging。

如果你喜欢从游戏中提交高分,请确保给用户一个跳过传输的机会。 否则,你可能会被拒绝,发生在我们身上。

顺便说一下:不保证,如果你的第一个版本通过,所有的更新将会。 我们的1.1因为已经在1.0的function而被拒绝了。 这非常烦人,因为更新可能会修复一个bug,如果需要一个星期才能被拒绝,那么当你不得不开始修复你认为没有被破坏的东西时,你已经晚了一个星期。

注意关键字,不要使用其他应用程序名称作为关键字。 (我的音乐应用程序因为使用'last.fm'作为关键词而在3周后被拒绝。)

更新:如下所述,其他人(域名抢注者?)抢劫了域名,所以现在这个链接被破坏了。 它最近似乎已经多次转手:(。

在AppRejections.com上阅读当前拒绝和接受的页面 ,并检查你不会因为最近苹果“秘密”批准原因的某些变化而受到干扰 。

当您提交时,您可以input一个框来input您的应用程序可能需要的任何模拟账户详细信息。

这个框也是一个很好的地方,可以提供任何额外的细节,审查人员可能会发现检查您的应用程序时有帮助。

如果是iPad应用程序,请不要在提交应用程序名称时提及iPad,也不要在Info.plist中提供显示名称。

这对我来说有点怪,因为我有一个应用程序(两个二进制文件),iPhone和iPad有不同的界面 – 我不能称iPad版本为“对称实验室”,因为iPhone应用程序被称为,不能称之为“对称实验室iPad”,因为你不能称iPad为“名称”,因为它与分辨率不同,所以不想称之为“对称实验室HD”。 我结束了“对称实验室临”的决心。

不要在类似iPhone / iPod touch的标签栏项目中使用图像。 他们用来允许他们,但现在他们拒绝他们。 看来,其他苹果硬件不是一个问题。

苹果没有改变新提交的应用程序的sortingdate方法吗?

我们不再需要玩“未来定,然后去今天”的游戏。

“新应用”现在按“批准date”sorting。

在几次尝试中得到“无效的二进制”。 最后的工作是直接在Mac上压缩包并在Mac上进行上传。 当然,忽略.dSYM文件。 在之前的尝试中,在PC上进行了压缩。 在失败的尝试中,在电脑上也进行了重新压缩以避开.dSYM。

如果您使用Safari以外的浏览器与Developer Portal进行交互,则可能无法正常工作。 我花了至less一个小时的苦难才发现这一点。

如果您创build应用程序的精简版,请注意不要locking可能会使其function不完整的function。 你也不应该向上销售到完整版本(尽pipe看起来许多应用程序无论如何都这样做)。