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

转: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的开发中来。虽然此文档是一份“不该做事宜”的列表,但也请将那份短得多的“必做事宜”列表牢记在心。最重要的是,与我们一道 共同努力让用户感到惊奇和欣喜。用创新方式向他们展示世界,让他们用前所未有的方式与之交流。根据我们的经验,无论是在功能和用户界面上,用户确实会对完 善的程序有所反应。更进一步,给他们期望之外的东西,带他们去从未去过的地方。我们愿意提供帮助。

 

APNS 推送

关于apns这玩意,以前也写过不少的博客来介绍它了,国内的文章都是基于同一套代码的.
而正因为对apns了解的少,所以写的代码,以及对它的扩展都是不够完善的.

不过google code上终于有一套相对比较完善的代码了.https://code.google.com/p/apns-php/,其实在最近他已经迁移到了github了(October 26, 2012, Project source code has moved to github. )
看了一下代码,确实不错.
如果是原先的代码,其实一直有一个问题:如果某个token失效了,那么在接下来的10s左右,fwrite的推送都会失败.
虽然苹果提供了feedback的返回,但其实你翻看国内的文章,介绍,都没有告诉你怎么查询feedback,所以我到现在也没有好好的对Feedback处理过那些无效的信息.

上面介绍的这套代码就好很多了.可以进行推送,在失败的话,还能够继续推,如果成功的推送是直接可以进入下一条,不会胡乱浪费资源,真心不错...
代码也很简单:

PHP代码
  1. $push = new ApnsPush(ApnsAbstract::ENVIRONMENT_SANDBOX, '/dev.pem');  
  2.         // Set the Root Certificate Autority to verify the Apple remote peer  
  3.  
  4.         //$push->setRootCertificationAuthority('entrust_root_certification_authority.pem');  
  5.         // Increase write interval to 100ms (default value is 10ms).  
  6.         // This is an example value, the 10ms default value is OK in most cases.  
  7.         // To speed up the sending operations, use Zero as parameter but  
  8.         // some messages may be lost.  
  9.         // $push->setWriteInterval(100 * 1000);  
  10.         // Connect to the Apple Push Notification Service  
  11.         $push->connect();  
  12.         foreach ($result as $data) {  
  13.             $token = $appCache->getAppTokenByUserId($data['receive_userid']);  
  14.             if(!$token){  
  15.                 continue ;  
  16.             }  
  17.             $token = str_replace(" ","",$token);  
  18.             // Instantiate a new Message with a single recipient  
  19.             $message = new ApnsMessage($token);  
  20.             // Set a custom identifier. To get back this identifier use the getCustomIdentifier() method  
  21.             // over a ApnsMessage object retrieved with the getErrors() message.  
  22.             //$message->setCustomIdentifier(sprintf("Message-Badge-%03d", $i));  
  23.             // Set badge icon to "3"  
  24.             $message->setBadge( intval($data['cnt']));  
  25.             // Add the message to the message queue  
  26.             $push->add($message);  
  27.         }  
  28.         // Send all messages in the message queue  
  29.         $push->send();  
  30.         // Disconnect from the Apple Push Notification Service  
  31.         $push->disconnect();  
  32.         // Examine the error message container  
  33.         $aErrorQueue = $push->getErrors();  
  34.         if (!empty($aErrorQueue)) {  
  35.             var_dump($aErrorQueue);  
  36.         }  

这段代码不要纠结,为什么与官方不一样,因为我在用yii框架的时候没有autoload成功它的 代码,花了5分钟将它全部改成基于namespace的了.

转:运作开源项目的一点经验

说实话,本文的内容真的不可以相信,至少在国内没有多少人会这么用。国内据我所知,做开源的没几个混的好的,除非已经是历史优久的那些。当你的开源做了一两年之后,你会发现你的项目已经被人改的面目全非,换个名字在卖钱、在运营,难道不是吗?国内的这些状态实在让人对做开源实在不是一个好的平台。忍忍吧。

看看别人是怎么说的:
上周我在 PHPUK 上面讲了一些关于开源项目的内容。我想把它们整理一下都记录下来,以免忘记。也许我不太适合来给出一些这方面的建议,但这些都是我运营 joind.in 的一些真实、重要的总结。
社区(Community)

你喜欢一个项目,分享了它的代码,并且公布了它,这就算是开源项目吗?在我看来这不是,开源项目必须有一个社区。作为兴趣,你这么做可以,但是你想要其他人也参与这个项目,事情就大不同了。

为了让别人参与贡献,你必须建立一些基础设施,可以让别人能够顺利沟通,看到项目的进展。作为项目的负责人,你需要管理这些基础设置。Joind.in 使用google groups的邮件列表,问题跟踪系统(atlassian为开源项目提供免费的授权)以及IRC频道。我们也有一个博客,以及twitter账户来发表 公开的声明。我们使用了多个邮件列表,外联、功能、开发。这样就可以让不同的人选择自己感兴趣的信息,而不会被其他信息淹没。

如果你的项目还不是很有名,你需要通过博客,twitter,stack overflow等各种渠道来让人们知道它。

说明文件(README)

在项目能获得其他人的贡献之前,你首先要保证其他人能顺利的配置你的项目。你最好在网页,wiki,博客,以及项目中都有README信息,因为你不知道人们习惯从哪里看这些信息。

项目规划(Roadmap)

有一个清晰的项目规划是非常有用的。当用户给你提出一些新功能的时候,你可以说“it's on the roadmap”,或者让他们去邮件列表讨论。人们也知道你们正在干什么。

贡献代码(Code Contributions)

这一点有点复杂。大部分的开源贡献者只对他们感兴趣的东西感兴趣,其他的功能或者系统的其他部分很难引起他们的兴趣。但是恰恰其他部分是系统的关键部分。 还有,作为项目负责人,你需要及时审核,测试,合并,部署这些贡献的代码。当某些贡献不能被采纳的时候,你需要告诉别人为什么,以及如何改进。

以我的经验来看,区分真正有用的贡献,以及一般般、没用的贡献是比较困难的。有可能那个贡献者提交了代码以后就消失了,剩下你来维护这个代码。这个问题似乎只能靠直觉去解决。你能做的就是诚恳的对待贡献者,说出你心里真实的想法。

透明化(Transparency)

对我来说,这是运营开源项目最重要的一点!人们能看到代码,能看到问题列表,邮件列表,甚至持续集成服务器。我可以向人们求助,指出哪段代码不工作。有时候,在我还没有意识到问题的时候,就会有人跳出来指出我的错误。

对于和我一起工作的人来说,他们可以看到哪些“pull request”是开放的,谁评论了什么,哪些代码在什么时候被采纳了。我会提交我参与的所有分支到githut。所以当有人问我一个功能的进度的时候,我往往直接告诉他们最新的版本号。

把项目的所有东西都拿出来给人看有点像是在熨烫一件脏衣服,让人有点不适。但是这样做的好处是你可以听到各种各样的建议。好几次我在twitter上贴出了一个bug链接寻求帮助,有不少人去留言,给建议,也有人直接去测试代码。
----EOF----
上文来自:http://cnbeta.com/articles/175607.htm
说实话,社区这东西,由于在国内私人不能架设论坛,其实有点让人蛋疼(虽然很多人都私自架设了),在社区内有四种人:潜水员、用户、开发者、骂人者。任何一个论坛都会有第四类人,除了黄色网站吧。真正参与到项目中的人真的很少,往往很多人都是索取者。痛苦啊。

来自80sec:XML实体注入漏洞安全警告

文章不长,可以仔细看看,说的是php中的两个函数,其他语言也可能会有类似问题,但simplexml_load_string是PHP比较常用的函数,所以,要注意一下了。
原文地址是:http://www.80sec.com/xml-entity-injection.html

漏洞介绍:可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集,非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。80sec发现目前一些普遍使用xml的场景中都存在一种古老的XML实体注入漏洞,这 可能导致较为严重的安全问题,使得攻击者可能可以任意访问服务器以及应用所在网络的任何资源;

漏洞分析:XML作为一种使用较为广泛的数据传输格式,在语言内部允许引用外部资源来作为语言的补充,譬如


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE copyright [
<!ELEMENT copyright (#PCDATA)>
<!ENTITY hi80sec SYSTEM "http://www.wooyun.org/">
]>
<wooyun version="2.0">
<whitehats>
&hi80sec; is a legend
</whitehats>
</wooyun>

这将使得xml解析器以当前上下文的环境引用外部的资源www.wooyun.org作为hi80sec实体的内容,从而在实际的应用上下文里将该部分数据引入逻辑流程进行处理。同样,我们可以使用

file:///etc/passwd
file://localhost/etc/password

进行访问本地文件系统的操作。

不同的解析器可能默认对于外部实体会有不同的处理规则,以PHP语言为例,默认处理xml的方法就包括:

xml_parse

simplexml_load

两种不同的方法,这两种不同的方法在底层完全采取不同的底层逻辑实现,xml_parse的实现方式为expat库,而simplexml_load使用 的是libxml库,两个底层库在解析的时候细节并不一样,expat默认对外部实体并不解析,而simplexml_load默认情况下会解析外部实体 等,所以simplexml_load和DOM等函数会受此问题影响,而xml_parse则默认不会受到影响。
我们不止在PHP,在包括Java,Python等处理xml的外部组件及函数中都证明可能存在此问题,而且已经在一些互联网公司的应用及一些使用广泛的开源软件中都发现存在问题。

漏洞证明:我们将在WooYun漏洞报告平台上提交我们发现的已经被证明的安全漏洞

解决方案:检查所使用的底层xml解析库,默认禁止外部实体的解析,同时增强对系统的监控,防止此问题被人利用;我们将在WooYun漏洞报告平台上发布可能受影响的,请及时关注;

position : static | absolute | fixed | relative 的意思

position : static | absolute | fixed | relative
取值:
static   : 默认值。无特殊定位,对象遵循HTML定位规则
absolute   : 将对象从文档流中拖出,使用 left , right , top , bottom 等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据 body 对象。而其层叠通过 z-index 属性定义
fixed   : 未支持。对象定位遵从绝对(absolute)方式。但是要遵守一些规范
relative   : 对象不可层叠,但将依据 left , right , top , bottom 等属性在正常文档流中偏移位置

看到static的时候不知道干嘛。

Records:912