手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表全部文章

转:App Store审核指南中文版

不转这个不行啊。某个APP已经两次被拒了。

原文来自:http://www.cocoachina.com/appstore/20140901/9500.html

苹果在9月3日对App Store审核指南进行了重大更新,新添加了扩展、HealthKit、HomeKit以及TestFlight相关内容。另外,在9月10日新品发布会之后,苹果再次更新了App Store审核指南,添加Apple Pay相关内容。文中红色部分是相对于此前版本的新增内容,蓝色部分表示苹果相关官方文档的链接。

App Store Review Guidelines(英文版

前言

  感谢您付出宝贵的才华与时间来开发iOS应用程程序。从职业与报酬的角度而言,这对于成千上万的开发员来说一直都是一项值得投入的事业,我们希望帮助您加入这个成功的组织。我们发布了《App Store审核指南》(App Store Review Guidelines),希望通过它帮您避开开发应用程序过程中的一些问题,并帮你在提交应用时加快审核流程。 
  我们将应用程序(Apps)视为与书籍或歌曲不同的产品,我们并不存储它们。如果您意欲批评宗教,那就去写本书。如果您想要描述性,那就写本书或写首歌,或者可以创建一个医疗程序。这么做可能会比较复杂,但是我们不允许在应用程序商店(App Store)出现某种禁止内容。这会让您认识到我们秉持的更为深远的目的: 
  我们有很多可供儿童可以下载的应用程序。家长的监护可以很好地保护孩子,但是您需要做您应该做的那一部分。因此,您要了解我们时刻在留心着您的孩子。 
  App Store中有数百万的应用。如果您的应用程序没有什么有益的用途,不是独一无二的或者不能提供持续性的娱乐功能,那它可能不会被我方接受。  
  如果您的应用程序看上去像是那种只花了几天功夫简单拼凑出来的产品,或者只是想在我们的商店中抓住朋友的眼球,请提前做好被拒的准备。我们有很多态度严谨的开发者,不希望他们的高品质应用程序充斥在一些业余作品之中。   
  我们将拒绝任何包含越界内容或行为的应用程序。您可能会问道,具体限制是什么?最高法院的法官曾有言:“它出现时我自然心中有数。”当您越过这一范围时,我们认为您也会有自知之明。   
  如果您的应用程序被拒,我们设立了一个审查委员会供您上诉。如果您去媒体抨击我们,肯定对您于事无补。 
  如果您试着作弊(比如在审核流程中作假,窃取用户数据,抄袭其他开发者作品,或者操作应用评分),我们将会移除您的应用程序,并且将您从开发者计划中除名。
  这是一个动态文档,新提交的应用程序会导致新的问题产生,并可能随时产生新的规则。或许您的应用程序会触及到这一点。  
  最后要说明的是,我们非常珍惜这个平台,并且向您的作品表示敬意。我们确实在尝试尽力创建全球最佳平台,以便让您展示才华,同时获得相应的报酬。如果这读上去让您感觉我们的控制欲过强,那是因为我们曾向用户承诺保证,我们将利用我们的产品让他们获得高品质体验。 
 
目录  
1.条款与条件 
2.功能 
3.元数据
4.位置 
5.推送通知 
6.游戏中心 
7.广告 
8.商标与商品外观 
9.媒体内容 
10.用户界面 
11.购买与货币 
12.抓取与聚合 
13.设备损害 
14.人身攻击 
15.暴力 
16.令人反感的内容
17.隐私 
18.色情 
19.宗教、文化与种族 
20.竞赛、赌博、彩票和抽奖
21.慈善与援助 
22.法律要件 
23.Passbook
24.儿童类别
25.扩展
26.HomeKit
27.HealthKit
28.TestFlight
29.Apple Pay

1. 条款和条件
1.1 为App Store开发程序,开发者必须遵守 Program License Agreement (PLA)、人机交互指南(HIG)以及开发者和苹果签订的任何协议和合同。以下规则和示例旨在帮助开发者的程序能获得App Store的认可,而不是修改或删除任何其他协议中的条款。
 
2. 功能
2.1 崩溃的程序将会被拒绝。
2.2 存在错误的程序将会被拒绝。
2.3 跟开发者宣传不符的程序将会被拒绝。 
2.4 无应用文档或隐藏功能与描述不符的程序将会被拒绝。 
2.5 使用非公开API的程序将会被拒绝。 
2.6 在指定容器范围外读写数据的程序将会被拒绝。 
2.7 以任何方式或形式下载代码的程序将会被拒绝。  
2.8 安装或运行其他可执行代码的程序将会被拒绝。
2.9 beta版、demo版、trial版和test版的程序将会被拒绝。 
2.10 iPhone程序必须不经修改就能以iPhone分辨率和2倍 iPhone 3GS的分辨率在iPad上运行。 
2.11 与App Store已有程序重复的应用可能会被拒绝,特别是数量很多的情况下,比如手电筒应用和爱经应用。
2.12 有用性不显著、不独特的应用或者与网站简单捆绑的应用有可能被拒;不提供任何持久娱乐价值的程序可能会被拒绝。 
2.13 主要用于营销或广告的程序将会被拒绝。
2.14 提供欺骗或虚假功能,却有没有明确标示的应用程序将会被拒绝。
2.15 大于100MB(绿色原先是50MB)无法通过蜂窝网络下载的应用(App Store会自动禁止)。
2.16 多任务程序使用后台服务仅限于几种目的:VoIP,音频播放,地理位置,完成任务以及本地提醒等。
2.17 应用程序只允许使用iOS WebKit框架和WebKit Javascript浏览web内容。
2.18 鼓励酗酒或使用违禁药物,或引诱青少年饮酒或吸烟的程序将会被拒绝。 
2.19 提供错误的系统诊断或设备数据的应用将会被拒绝。 
2.20 向App Store上传大量相似版本程序的开发者将会从iOS开发者计划中除名。 
2.21 简单的歌曲或者影片应用要提交到iTunes store,书籍类应用应该提交到iBookstore。
2.22 武断地根据环境(如定位或者运营商)限制用户使用的应用会被拒。
2.23 应用必须遵守iOS数据储存指导方针(iOS Data Storage Guidelines ),否则应用将被拒。
2.24 存放在Newsstand的应用必须遵守开发者项目许可协议(Developer Program License Agreement)的表1、表2以及表3,否则应用将会被拒。
2.25 类似App Store,基于购买或者促销的目的而展示其他应用的应用将会被拒绝,除非是经过特殊审核批准(比如健康管理、航空以及其他无障碍需求等),或者为特殊群体用户提供具有重大意义的附加值的应用。
2.26 只有当app采集是出于特殊审核需求时,app才可以展示和推荐自身以外的其他应用程序,比如健康管理、航空以及无障碍需求等,否则应用程序将会被拒绝。(新增)
 
3. 元数据(名称、描述、评级、排名等)
3.1 应用或者元数据中提到其他任何移动平台将会被拒。
3.2 带有占位符文本的程序将会被拒绝 
3.3 描述中有与程序内容和功能不相关的信息的应用将会被拒绝。 
3.4 为了不混淆用户,iTunes Connect中的应用名称应该和展示在设备上的应用名称一致。 
3.5 不同尺寸的app icon要一致,否则会造成混淆。 
3.6 程序图标和截图不符合4+年龄评级的程序将会被拒绝。 
3.7 目录与类型不适合于程序内容的程序将会被拒绝。
3.8 开发者有责任为其程序指定适合的评级。不相称的评级可能会由苹果公司修改。 
3.9 开发者有责任为其程序指定恰当的关键字。不恰当的关键词可能会被苹果公司修改/删除。
3.10 有以下行为的开发者将会被苹果从iOS开发者计划中除名:试图操纵或者欺骗用户评级,伪造或者付费评级,以及其他不相称的行为。
3.11 在安装下载之前推荐用户重启iOS设备的应用将会被拒。
3.12 在提交审核过程中,应用程序应包含能正常运行的URL,比如支持URL和隐私政策URL。
3.13 如果应用程序的截图和营销文本没有清晰地确定需要额外单独购买(比如使用IAP)的内容或者项目,那么应用程序将会被拒绝。(新增)
 
4. 位置
4.1 在收集、传输或使用位置数据之前未通知并获得用户同意的程序将会被拒绝。 
4.2 使用基于位置的API来自动控制车辆、飞机或其他设备的应用程序将会被拒绝。 
 4.3 使用基于位置的API用于调度、车队管理或应急服务的程序将会被拒绝。
4.4 当与应用功能或服务密切相关时可以使用位置数据,或者用于经过授权的广告。
 
5. 推送通知
5.1 不使用苹果推送通知 (APN)应用接口提供推送通知的程序将会被拒绝。 
 5.2 未从苹果获得Push Application ID便擅自使用APN服务的程序将会被拒绝。 
5.3 在首次推送消息或者要求推送通知运行之前未获得用户许可的应用将会被拒绝。
5.4 使用推送通知发送敏感个人信息或机密信息的程序将会被拒绝。 
5.5 使用推送通知发送非请求消息或用于钓鱼或群发垃圾邮件用途的程序将会被拒绝。 
5.6 应用程序不可使用推送通知发送广告、促销或任何类型的直销信息。 
5.7 应用程序不能向使用推送通知服务的用户收取费用。 
5.8 使用推送通知会过多利用APN服务的网络流量或带宽或给设备带来过度负担的程序将会被拒绝。 
5.9 如果应用程序传送病毒、文件、计算机代码或程序,并且对APN服务的正常运行造成损害或中断,那么该程序将会被拒绝。 
 
6. 游戏中心
6.1 向终端用户或任意第三方显示玩家ID的程序将会被拒绝。 
6.2 将玩家ID用于任何未经游戏中心条款批准用途的程序将会被拒绝。 
6.3 试图进行反向搜索、跟踪、关联、挖掘、获得或利用玩家ID、别名或通过游戏中心获得其他信息的开发者将会iOS开发者计划除名。
 6.4 游戏中心信息(例如排行榜分数)只能通过游戏中心用于应用中。
 6.5 利用游戏中心服务发送非请求信息或用于钓鱼或群发垃圾邮件的程序将会被拒绝。
 6.6 使用游戏中心过多占用网络流量或带宽的程序将会被拒绝。 
6.7 如果程序能够传送病毒、文件、计算机代码或程序,并且对游戏中心服务的正常运行造成损害或中断,该程序将会被拒绝。
 
7. 广告
7.1 人工刷广告浏览量或者广告点击率的应用程序将会被拒绝。 
7.2 包含空iAd广告的应用程序将会被拒绝。 
7.3 主要设计目的在于显示广告的应用程序将会被拒绝。 
 
8. 商标与商品外观
8.1 应用程序必须遵守“Guidelines for Using Apple Trademarks and Copyrights”和“Apple Trademark List”中说明的所有条款与条件。
8.2 任何误导和暗示苹果公司是该应用程序来源或提供商,或者苹果公司以任何形式表示认可其质量或功能的应用程序将会被拒绝。 
8.3 与目前已有苹果产品或者广告主题外观相似或混淆的应用程序将会被拒绝。 
8.4 在应用程序名称中将苹果产品名拼错的应用程序(例如,GPS for Iphone,iTunz)将会被拒绝。 
8.5 使用受保护的第三方材料(商标、版权、商业机密、其他私有内容)在申请时需要提供一份文本形式的版权确认。  
 
9. 媒体内容
9.1 不使用媒体播放器框架(MediaPlayer Framework)获取音乐库中媒体内容的应用程序将会被拒绝。
9.2 用户界面模仿任何iPod界面的应用程序将会被拒绝。 
9.3 通过蜂窝网络传输的音频流内容每5分钟不得超过5MB。 
9.4 通过蜂窝网络传输超过10分钟的视频流内容需要使用HTTP Live Streaming,并包含一个基准线为64kbps的音频HTTP Live Streaming。
 
10. 用户界面
10.1 应用程序必须遵守苹果的《iOS Human Interface Guidelines》中所有的条款和条件。
10.2 外观与与iPhone的自带应用(比如App Store、iTunes Store和iBookstore)相似的应用将会被拒绝。
10.3 未能按苹果《iOS Human Interface Guidelines》描述正确使用系统提供的项目(比如按钮、图标)的应用将会被拒绝。
10.4 创建多桌面/主屏幕环境或者模拟multi-App插件体验的应用程序将会被拒绝。 
10.5 修改音量大小和铃声/静音开关等标准开关功能的应用程序将会被拒绝。 
10.6 苹果和我们的客户高度推崇简单、精致、富有创造性以及经过精心设计的界面。虽然需要付出更多,但却非常值得。苹果设立了很高的门槛。如果你的用户界面太过复杂或者水准不高,可能会被拒绝。
 
11. 购买与货币流通
11.1 使用App Store以外的渠道解锁或开启附加属性和功能的应用程序将会被拒绝。 
11.2 使用应用内支付系统(IAP)以外的系统购买内容、功能或服务的应用软件将会被拒绝。 
11.3 使用IAP购买实物商品和并非用于该软件的服务的应用软件将会被拒绝。 
11.4 应用程序使用IAP购买积分(Credit)或者其他的货币必须在本应用中消费。 
11.5 使用IAP购买已过期积分(Credit)或者其他货币的应用软件将会被拒绝。 
11.6 使用IAP订阅的内容至少要持续7天,而且允许在用户的其他iOS设备间共享。
11.7 应用程序使用IAP购买项目必须分派到正确的购买类型中。
11.8  使用IAP购买iOS内置功能(如照相机,陀螺仪)的应用程序将会被拒绝。 
11.9 含有超过限定时间的内容或服务的应用程序将会被拒绝,除了特殊批准的内容(比如films、电视节目音乐以及书籍)。
11.10 保险类应用程序必须免费,遵守发布地区的法律,并且不能使用IAP。 
11.11 一般而言,你的应用程序越贵,我们的评审越彻底。
11.12 提供订阅功能的应用必须使用IAP,苹果将会按照 Developer Program License Agreement 中的约定与开发者按30/70比例分成。
11.13 在应用内使用跳转至外部购买或订阅链接的应用将会被拒,比如“buy”按钮跳转至一个购买电子书的web页面。
11.14 只要应用内没有跳转至外部购买、订阅的按钮或链接,苹果允许这些应用读取或展示经批准的、在应用外购买或订阅内容(特别是杂志、报纸、书籍、音频、音乐、视频以及云存储内容)。苹果只能通过应用程序内的购买获得一部分收益。
11.15 应用程序可以只使用自动更新订阅期刊(报纸、杂志)、商业应用程序(企业类、效率类、专业创意类以及云存储类)和媒体应用程序(视频、音频、声音),否则应用程序将被拒绝。
11.16 当与特定的经过审核的实体产品(比如玩具)结合使用时,应用程序可以使用获得批准的附件功能,只要附加功能完全依赖于该硬件产品(比如一款用于控制望远镜的应用程序)或者也可以在不使用实物产品的情况下使用应用程序,比如作为成功的奖励或者使用IAP。 
11.17 如果应用功能遵照各州和联邦法律,那么应用可以用来促进被认可的虚拟货币的流通。(新增)
 
12. 抓取和聚合
12.1 从苹果网站(例如apple.com、iTunes Store、App Store、iTunes Connect以及Apple Developer Programs等)抓取任何信息或者使用苹果网站内容和服务进行排名的应用程序将会被拒绝。  
12.2 应用软件可以使用获得批准的苹果RSS feeds,例如iTunes Store RSS feeds。 
12.3 只是简单的网页剪切、内容整合或者收集链接的应用程序可能会被拒绝。
 
13. 损害设备
13.1 怂恿用户以可能造成损害的方式使用苹果设备的应用软件将会被拒绝。 
13.2 快速耗光设备电量或产生过多热量的应用软件将会被拒绝。
13.3 能导致用户人身伤害的app将会被拒绝(新增)
 
14. 人身攻击
14.1 涉及诽谤、人身攻击性质以及内容狭隘卑鄙的应用软件或者打击特定个人或组织的应用软件将会被拒绝。 
14.2 职业政治讽刺家和幽默作家不受这一条款约束。
 
15. 暴力
15.1 应用程序中出现人或动物被杀、致残以及枪击、刺伤、拷打等受伤情形的真实画面将会被拒绝。 
15.2 出现描绘暴力或虐待儿童等内容的应用程序将会被拒绝。 
15.3 游戏中出现的“敌人”不可指向一个特定种族、文化、一个真实存在的政府、企业或者其他任何现实中的实体。 
15.4 对武器进行真实描述以怂恿非法使用或滥用这些武器的应用程序将会被拒绝。 
15.5包含俄罗斯轮盘赌博内容的游戏将会被拒。
 
16.令人反感的内容
16.1 应用程序中出现过于令人反感或者低俗的内容将会被拒绝。 
16.2 在设计上激怒用户或令人感到厌恶的应用程序将会被拒绝。
 
17.隐私
17.1 在未经用户事先许可,或未告知用户如何使用信息,在何处使用信息的情况下,应用程序不能传输用户数据。
17.2 要求用户提供电子邮箱地址和出生日期等私人信息才可使用其功能的应用程序将会被拒绝。 
17.3 仅出于遵守适用的儿童隐私法规的目的,应用程序可以要求用户的出生日期(或者使用其他age-gating机制),但是必须包括一些有用的功能或者娱乐价值,不管用户年龄大小。
17.4 应用程序收集、传输以及分享未成年用户个人信息(比如名字、地址、邮件、位置、照片、视频、绘画、聊天以及其他个人数据,或者与以上所述相关的永久性标示符)必须遵守应用儿童隐私法规,并且必须包含隐私条款。
17.5 包含账号注册或者访问用户现有账号的应用程序必须包含隐私策略,否则将会被拒绝。
 
18. 色情
18.1 含有色情素材,也就是《韦氏词典》中定义的“旨在激发情欲,对性器官或性行为的明确描述或展示,而无关美学或情绪感受”的程序将会被拒绝。 
18.2 用户频繁提供生成色情内容的应用程序(比如以前的Chat Roulette程序)将会被拒绝。
 
19.宗教,文化与种族
19.1 涉及宗教、文化或种族群体的引用或评论包含诽谤性、攻击性或狭隘内容,或会使特定群体遭受伤害或暴力的应用程序将会被拒绝。
 19.2 程序可以包含或引用宗教经文,程序所提供的引用或翻译必须准确且不会引起误导。评论应该有教育意义,可以令人开阔眼界,而不应有煽动性。
 
20. 竞赛、赌博、彩票以及抽奖 
20.1 赌博和竞赛必须由应用程序的开发者或者app所属公司发起。
20.2 应用程序必须展示赌博和竞赛的正式规则,并声明苹果不是发起者,也没有以任何方式参与活动。 
 20.3 开发者运营一款具有抽奖性质的应用必须经过法律允许,并且抽奖应用必须具备以下特征:报酬、机会以及奖品。
  20.4 允许用户在应用中直接购买彩票或彩券的应用将会被拒绝
20.5 提供真钱游戏(比如体育博彩、扑克牌、赌场游戏以及赛马)的应用程序必须有应用使用区当地必要的许可和允许,必须限制在这些区域,必须可以从App Store免费下载。
20.6  使用IAP购买信誉或者货币,且结合真钱游戏的应用将会被拒绝。
 
21.慈善与援助
21.1 包含可以向已认证的慈善组织捐赠功能的应用程序必须是免费的。  
21.2 捐赠款项的募集必须通过Safari浏览器访问web页面或是手机短消息完成。 
 
22. 法律要件
22.1 应用程序必须遵守所有发布地区当地法律,开发者有义务了解并遵守所有当地法律。 
 22.2 包含虚假,欺诈或误导性陈述的程序将会被拒绝。 
22.3 任何招徕、促进或鼓励犯罪或明显鲁莽行为的程序将会被拒绝。 
22.4 支持非法文件共享的程序将会被拒绝。 
22.5 被设计用以非法赌博工具的应用程序(包括点算牌)将会被拒绝。
22.6 具有匿名或恶作剧拨打电话或发送类似短信/彩信功能的程序将会被拒绝。
22.7 任何开发暗中收集用户密码或用户私人数据程序的开发者将会从iOS开发者计划中除名。 
22.8 包含非法律执行部分发布的DUI检查点信息,或者怂恿/协助酒后驾车的应用将会被拒绝。
22.9 任何计算药用剂量的应用必须提交药品制造商或者认可机构(比如医院、保险公司以及高校)。
 
23. Passbook 
23.1 Passbook Passes可被用来支付或者接收支付,传递商业信息或者提供验证(比如电影票、飞机票、优惠券以及其他),而把Passbook Passes用于其他用途的应用程序可能会遭到拒绝,并且会被撤销Passbook证书。
23.2 Passes必须包含有效的pass发行人有效的联系资料,否则app将会被拒绝,并且Passbook证书也会被取消。
23.3 Passes必须经过实体签名,并基于其名字、商标或者品牌进行分发,否则应用程序将会被拒绝,而Passbook证书也可能会被撤销。
 
 
24.儿童类别 
24.1 主要供儿童使用的应用程序必须包含隐私政策,必须适用于应用程序的儿童隐私法。
24.2 主要供儿童使用的应用程序不允许包括行为广告(比如基于用户app内部活动的广告),任何在应用程序中展示的上下文广告必须适合儿童。
24.3 主要供儿童使用的应用程序必须得到家长许可或使用parental gate才能链接至应用程序外部或进行交易。
24.4 儿童类别中的应用程序必须标明“5岁以下,6-8岁或者9-11岁”。
 
9月3日新增内容
25.扩展
25.1 包含扩展的应用程序必须遵照 App Extension Programming Guide (中文版,英文版)要求。
25.2 包含扩展的应用程序必须提供某些功能(辅助屏幕,附加设置)否则将会被拒绝。
25.3 如果扩展的视图中包含营销推广、广告或者IAP内容,那么包含该扩展的应用将会被拒绝。
25.4 键盘扩展必须提供一个切换至下个键盘的方法。
25.5 键盘扩展必须具有离线访问功能,否则将会被拒绝。
25.6 键盘扩展必须提供和 App Extension Programming Guide 描述一致的数字和十进键盘类型,否则将会被拒绝。
25.7 提供键盘扩展的应用必须拥有基本的功能分类和隐私政策,否则将会被拒绝。
25.8 提供键盘扩展的应用程序只允许收集用户活动以增强键盘扩展在iOS设备上的功能,否则将会被拒绝。
 
26.HomeKit
26.1使用HomeKit框架的应用程序必须有提供家庭自动化服务的主要目的。
26.2 使用HomeKit框架的应用程序必须在营销文本中说明用途,同时必须提供隐私政策,否则将会被拒绝。
26.3应用程序不允许将从HomeKit  API收集的数据用于广告宣传或者其他基于使用的数据挖掘。
26.4 出于其他目的使用从HomeKit  API收集的数据,而不是用于提高用户体验或者家庭自动化功能中硬件/软件性能,这类应用将会被拒绝。
 
27.HealthKit
27.1 使用HealthKit框架的应用程序必须遵守其所在区域的适用法律,以及iOS Developer Program License Agreement中的3.3.28和3.39条款。
27.2将虚假或者错误的数据写入HealthKit的应用程序将会被拒绝。
27.3 使用HealthKit框架iCloud中储存用户健康信息的应用程序将会被拒绝。
27.4 应用程序不允许将通过HealthKit API收集的用户数据用作广告宣传或者基于使用的数据挖掘目的,除了改善健康、医疗、健康管理以及医学研究目的。
27.5 未经用户许可与第三方分享通过HealthKit API获得的用户数据的应用程序将会被拒绝。
27.6 使用HealthKit框架的应用程序必须在营销文本中说明集成了Health app,同时必须在app用户界面清楚阐释HealthKit功能。
27.7使用HealthKit框架的应用程序必须提供隐私政策,否则将会被拒绝。
27.8 提供诊断、治疗建议或者控制硬件以诊断或者治疗疾病的应用,若没有根据要求提供书面的监管审批,将会被拒绝。
 
28.TestFlight
28.1应用程序仅能使用TestFlight对以公开发布为目的的应用进行beta版测试,且必须遵守完整的App Review Guidelines。
28.2 当版本中包含的内容或功能有重大变化时,使用TestFlight的应用程序必须提交审核。
28.3 使用TestFlight的应用程序不允许分发给测试者,以作为任何形式的补偿。
 
9月10日新增内容
29. Apple Pay
29.1 使用Apple Pay的应用程序必须在出售任何商品或者服务之前为用户提供所有材料的购买信息,否则将会被拒绝。
29.2 使用Apple Pay的应用程序必须正确使用 Apple Pay Human Interface Guidelines 中的Apple Pay标识和用户界面元素,否则将会被拒绝。
29.3 使用Apple Pay的应用程序不能提供触犯任何领域范围法律的用于交付的商品或者服务,也不能用作任何非法目的。
29.4 使用Apple Pay的应用程序必须提供隐私政策,否则将会被拒绝。 
29.5 只有为了促进或提高商品和服务的交付,或者依照法律要求,使用Apple Pay的应用程序才能与第三方分享通过Apple Pay获得的数据。
 
动态文档
这份文档展现了我们在竭尽所能向您分享我们对提交到App Store的程序的审查方式,我们希望您在开发和提交程序时,这份指南能对您有所帮助。这是一份动态文档,随着新程序和新情况的发生会有所变化。我们会定期更新,以反映这些变化。 
  
感谢您参与到iOS的开发中来。虽然此文档是一份“不该做事宜”的列表,但也请将那份短得多的“必做事宜”列表牢记在心。最重要的是,与我们一道 共同努力让用户感到惊奇和欣喜。用创新方式向他们展示世界,让他们用前所未有的方式与之交流。根据我们的经验,无论是在功能和用户界面上,用户确实会对完 善的程序有所反应。更进一步,给他们期望之外的东西,带他们去从未去过的地方。我们愿意提供帮助。

 

supportedInterfaceOrientations

在OC下写这个真方便。。

 

- (NSInteger) supportedInterfaceOrientations{
     return (UIInterfaceOrientationsMaskPortrait | UIInterfaceOrientationsMaskLandscapeLeft);
}
 
在swift下就。。苦逼了
override func supportedInterfaceOrientations -> Int{
     //错误写法 return (UIInterfaceOrientationsMask.Portrait | UIInterfaceOrientationsMask.LandscapeLeft);
     //上面会报错。。说是UIInterfaceOrientationsMask不能转成Bool
     //google了一下,原来,,,应该这样写
     return UIInterfaceOrientationMask.Portrait.rawValue.hashValue | UIInterfaceOrientationMask.PortraitUpsideDown.rawValue.hashValue;
}
天啊要写这么上。开始网上是写UIInterfaceOrientationMask.Portrait.toRaw().hashValue,但好象toRaw的方法新版没有了。
所以只能用rawValue来转换。
好辛苦啊。swift改了N次了

UIActionSheetView和UIAlertView

 笔记

这两个View都有一个参数 :otherButtonTitles,在OC中的时候,如果这个参数 不设置就是otherButtonTitles:nil,
如果有多个参数 ,就是otherButtonTitles: @"first" , @"second" , nil
就因为这个nil,害得我在swift里走了弯路
 
在写swift的时候,我也是otherButtonTitles:nil的时候直接就报错了,说是不能转成String,再看了一下方法,果然人家写的就是otherButtonTitles:String?
那怎么办?想了一阵,那我不写这个参数行不行?最后果然OK。那么,如果是多个button咋整?
放弃nil吧?otherButtonTitles:"abc","def","ghi"
果然编译通过。。。原代码中的nil真是吓坏我了
 
我在看精通IOS开发第6版。初学。100页还没看完。不过我是全部用swift写的,好累啊@
 

Tags: swift

IOS开发笔记(swift)二

1、 如何获取字符串的长度:

在判断长度是否大于0的时候,if [xxx length ] > 0 就行了。而如果直接用swift,就不能写 if xxx.length > 0 了。因为xxx没有length这个方法。
有两个办法:
  1. if countElements(xxx) > 0 
  2. if xxx.utf16count > 0 
2、swift的delegate不象oc那样一个个的标注,只要在class头上写明就OK了
比如 class ViewController : UIViewController , UIActionSheetDelegate {

}
就能直接用UIActionSheetDelegate中的方法了。然后他们的delegate写self即可

刚开始学。不知道对错,目前就这样先纯做笔记,当然 你也可以delegate: nil 这样代表你这个控件 就不再接受委托了

Tags: swift

IOS开发笔记(swift)

 笔记,从OC翻译成swift。遇到点问题

NSDictionary 和 nameRange 上有点小问题

NSString *plainText = [NSString stringWithFormat:@"%@ test" , @"click"];

NSMutableAttributedString *styleText = [[NSMutableAttributedString alloc] initWithString:plainText]

NSDictionary *attr = @{NSFontAttributeName: [UIFont boldSystemFontOfSize : statusLabel.font.pointSize ]};

NSRange nameRange = [plainText rangeOfString: title ]

[styleText setAttributes:attr range:nameRange ]

statusLabel.attributeText = styleText;

这是OC的代码,转成swift的时候有点问题,第1是NSDictionary不知道怎么写了。。。array好象无法一下子转成NSDictionary,第2就是在用rangeOfString的时候,plainText。因为是NSString,因此可以直接使用rangeOfString,但swift定义字符串时,var plainText = "test" + "click" 这是string不是NSString...

所以查了点资料最后改成下面的代码

var plainText = title! + " button pressed";

var styleText = NSMutableAttributedString(string: plainText);

var attributes : NSDictionary = [NSFontAttributeName : UIFont.boldSystemFontOfSize( statusLabel.font.pointSize )]

let nameRange : NSRange  = (plainText as NSString).rangeOfString(title!);

//styleText.setAttributes(attributes, ))

styleText.setAttributes(attributes, range: nameRange);

statusLabel.attributedText = styleText;

 

----

上面的那个plainText as NSString就OK了。不过我需要再尝试一下,我是不是可以直接var plainText:NSString = title! + " button pressed";

[确认OK,如果真的需要用rangeOfString,应该还是在之前先得强类型一下比较好]

-----

今天算是注意了,所以下次应该可以记得,比如Int(xxxx),强制 转换, (sring as NSString) 也可以作一个转换