葡京赌场直营官网炸!WWDC2017后,苹果对指南首次等重大更新

一. 状在面前

若果读书算法,“排序”是一个回避不了的要话题,在条分缕析了并查集算法和常用数据结构之后,今天咱们算是得靠近排序算法这个大家族了。计算机是发展至今天,已经产生了重重栽被你乱,多之勤不到底的排序算法,而且还会见发生更新更厉害的算法尚未问世,它们还是人类无穷智慧之名堂,有太多尽好玩儿的情等我们错过思考,去尝尝。作为一如既往篇入门级的求学笔记,我们不会见于此展开讨论,但是,我们用从“排序算法”这个百宝袋中,抓取几个经的,脍炙人口的算法,作为这次我们谈谈的主题。我们会预先聊聊三种植最核心的算法:选择,插入和Shell排序;然后我们倒符合分治思想的世界,聊聊归并排序;然后我们用登上世界的奇峰,来探视20世纪最宏大之算法有——快速排序,了解一下就几十年来人们以研究它们都开了如何巨大贡献;最后,我们将认识一个初对象,一个乎排序而生的数据结构——优先级列,并以部分排序算法的骨子里行使作为本算法分析笔记的了断,在朗诵完本篇稿子后,相信你见面取得对排序算法来一个基础之询问。
本,本篇文章介绍的情还是自己以念Princeton大学Sedgewick教授的Coursera上公开课“Algorithms”时的有些经验,文章中之有的图示,例子和代码,均源于于老教授的课件和英文原版教科书,所有这周的学问和收获,都是外双亲辛苦整理的灵性结晶。感谢Sedgewick先生,感谢这号而尊敬之老前辈带来被自家算法学习中的多多意。

​近日,苹果对《App Store 审核指南》进行了 2017
年底首糟重大创新!对比此前版本,此次的改动/新增的情占据比高达
23%!非但涉及了 App 名称、副标题、应用内购、备用 App
图标、SiriKit、API、订阅等,苹果还对遗弃利用、医疗
App、回复用户评价、“打赏”数字内容提供商等做出了新的规定。

1.1 排序算法怎么耍

排序是一样栽将有元素的集合按照某种逻辑顺序进行排列的过程。我们所以要排序,是坐它们亦可满足我们的某种需要,特别是对于发生强迫症的人头的话,排列整齐总是比烂要好之。最简单易行的例证是,在前方介绍连查集算法时,我们既聊至了二叉搜索算法,它会杀快地由集合中摸索元素,但前提是该集合内的因素是曾经排序的。实际生活遭之例证还有很多:比如人员名单在炎黄便按笔画数排序,在花美国家虽是字母逐一;学校里老师只要按分对考试成绩进行排序,看看前面十名叫都出什么人;银行如若按部就班本状况对客户信息进行排序,存款最多的用户可能会提高变成该行的VIP客户;超市要遵照时间顺序对贸易记录进行排序,以打印账单等等。几乎拥有需要用电脑去处理有关工作之小圈子,你还见面盼排序算法的身影,它们往往是要算法的严重性一缠。

也好大家迅速 get
最新审核指南的最新动态,小七对修改和新增的要紧内容进行了整与小结 ↓↓↓

1.2 排序算法的抽象设计

下更加宽广的物,遇到的问题也便更为多。如果我们只针对简易的要素进行排序,那一点且无碍事,比如对数字进行排序,对字符串进行排序。但实际生活着我们数要面对的是繁体的情状以及复杂的对象。首先,不是有所的素集合都能排序,比如我们爱玩的“石头剪刀布”游戏,石头干少剪刀,剪刀干掉布,然后布又杀死石头,你拿谁在面前都指向,又还反常,无法排序;其次,对一个要素集合我们或许会见遵循多种正规进行排序,比如同修学生成绩记录或含有姓名,学号,科目和分等等,那我既可随分数高低排序选出优秀学生,也可以按照姓名排序进行点名,更足遵循科目分排序找有某一样科的超人。这些都见面当骨子里生活备受遇见,如何处理?
于第一个问题,我们若先期将明白的凡究竟如何的要素集合是得排序的。答案是:如果你会以是元素集合上找到一个“全序”(Total
Order)关系,那么它就是是足以排序的。全序的概念是:1)自反(Reflexive),对具备元素e,e=e都立;2)反对称(Antisymmetric),对持有元素v和w,v
< w则w > v,w = v则v =
w;3)传递(Transitive),对所有的v,w和x,v <= w且w <= x,那么v
<=
x。“石头剪刀布”显然就是不满足,因为虽然石头会干少剪刀,剪刀能干掉布,但石头并无克干掉布,而是受布给涉嫌少了,不满足传递性。不过在其实编程工作负我们为非用最为放在心上,知道出这么回事就好,我们才待通过某种方式告知排序算法如何判断两单要素谁死谁小就得了。
这就是说怎样告诉排序算法两单因素谁大谁小为?我们的措施是依据“回调”机制落实,而各种不同之编程语言在“回调”的根基及建立了上下一心之处理办法:C语言使用函数指针,C++通过定义函对象重载函数调用操作符实现,Python语言由此FP的法子贯彻,Java语言及Go语言则是经“接口”来落实。“面向接口编程”是相同种重要的思想,在计划这种通用算法的时光便特意有因此,这些通用的算法通过“回调”来处理具体的靶子,而未欲懂得对象的底细,这就是恃倒置原则:细节指让肤浅,而肤浅并无依赖让细节。
在Java中,只要我们的类满足Comparable接口,通过落实compareTo()函数就可知告排序算法两单因素谁好谁小。例如一个兑现了Comparable接口的Date类如下所示,这样我们便可以就此排序算法对Date进行以日期的排序排序。compareTo()函数返回一个整型来代表大小关系:正数表示过,负数表示小于,0尽管意味着相当。

public class Date implements Comparable<Date> { 
  /* ... */ 
  public int compareTo(Date that) { 
    if (this.year < that.year) return -1; 
    if (this.year > that.year) return +1; 
    if (this.month < that.month) return -1; 
    if (this.month > that.month) return +1; 
    if (this.day < that.day) return -1; 
    if (this.day > that.day) return +1; 
    return 0; 
  } 
  /* ... */
}

除却,我们还要促成两单援助函数:less和exch,less函数用于对素的比较进行进一步“包装”——因为compareTo返回的凡整型值,而我辈得一个返布尔值的函数;exch函数则用于交换两只元素,这些都是排序算法中所需要的。这样,我们以促成排序算法时就是通过这些函数,以同样栽统一之款型去操作数据结构,而不去关注她是怎比大小要怎么换成元素的。

private static boolean less(Comparable v, Comparable w) { 
  return (v.compareTo(w) < 0);
}
private static void exch(int[] a, int i, int j) { 
  int swap = a[i]; 
  a[i] = a[j]; 
  a[j] = swap;
}

那如我们要对相同记录进行多种形式的排序又该怎么开为?这就要以Java的别一个重复尖端的接口——Comparator。这个接口就含一个函数compare(),它同样通过返回一个整型值来代表大小关系:正数表示过,负数表示小于,而0表示等。比如我们发一个意味着商业工作的类Transaction,包含客户姓名,日期以及财力,我们得针对生意工作的记录按照姓名、日期与资本进行排序,那么我们就是可当Transaction中
实现三个满足Comparator接口的切近:WhoOrder,WhenOrder以及HowMuchOrder。

import java.util.Arrays;
import java.util.Comparator;
public class Transaction implements Comparable<Transaction> {
  private final String  who;      // customer
  private final Date    when;     // date
  private final double  amount;   // amount
  /* ... */
  /**     * Compares two transactions by customer name.     */
  public static class WhoOrder implements Comparator<Transaction> {
    public int compare(Transaction v, Transaction w) {
        return v.who.compareTo(w.who);
    }
  }

  /**     * Compares two transactions by date.     */
  public static class WhenOrder implements Comparator<Transaction> {
    public int compare(Transaction v, Transaction w) {
        return v.when.compareTo(w.when);
    }
  }

  /**     * Compares two transactions by amount.     */
  public static class HowMuchOrder implements Comparator<Transaction> {
    public int compare(Transaction v, Transaction w) {
        if      (v.amount < w.amount) return -1;
        else if (v.amount > w.amount) return +1;
        else                          return  0;
    }
  }

  public static void main(String[] args) {
    Transaction[] a = new Transaction[4];
    a[0] = new Transaction("Turing   6/17/1990  644.08");
    a[1] = new Transaction("Tarjan   3/26/2002 4121.85");
    a[2] = new Transaction("Knuth    6/14/1999  288.34");
    a[3] = new Transaction("Dijkstra 8/22/2007 2678.40");

    StdOut.println("Unsorted");
    for (int i = 0; i < a.length; i++)
        StdOut.println(a[i]);
    StdOut.println();

    StdOut.println("Sort by date");
    Arrays.sort(a, new Transaction.WhenOrder());
    for (int i = 0; i < a.length; i++)
        StdOut.println(a[i]);
    StdOut.println();

    StdOut.println("Sort by customer");
    Arrays.sort(a, new Transaction.WhoOrder());
    for (int i = 0; i < a.length; i++)
        StdOut.println(a[i]);
    StdOut.println();

    StdOut.println("Sort by amount");
    Arrays.sort(a, new Transaction.HowMuchOrder());
    for (int i = 0; i < a.length; i++)
        StdOut.println(a[i]);
    StdOut.println();
  }
}

对应地,less函数和exch函数也如开有轻微的调动,如下所示。实际工作负,我们可遵循需求选择Comparable或者Comparator接口来规划我们的类似。好了,以上就是是咱啊研究各种排序算法搭好的一个基本“框架”,我们介绍了Java的少数只接口,介绍了回调机制和“面向接口编程”的重大思想,下面,我们不怕来深切上一下各种算法的琢磨及其实现吧。

// is v < w ?
private static boolean less(Comparator c, Object v, Object w)  {
  return (c.compare(v, w) < 0);
}
// exchange a[i] and a[j]
private static void exch(Object[] a, int i, int j) {
  Object swap = a[i];
  a[i] = a[j];
  a[j] = swap;
}

重新多内容可查阅翻译与整理后的App
Store 审核指南全文(注:修改/新添有据此加多少字显示) ↓↓↓

二. 基础排序算法

咱俩盖选择排序,插入排序和Shell排序也例,介绍三种植最中心的排序算法。第一个如认识的便是挑选排序算法,选择排序只能作为入门介绍,因为其糟糕之性无法以事实上在受到利用,而后两种植算法就差了,它们于有些特种状况以及气象下会死有因此,这个后面会来讨论。

2017年新星 App Store 审核指南

2.1 选择排序

据此同样句话来描述选择排序,就是把目前不过小之要素放到它应该当的位置。算法会遍历序列中之每一个位置i,然后在i的下手选择一个(当前之)最小值,把她坐位置i,把位置i上本来在的素交换出去。算法第一不良运行时,会把最好小之要素放在位置0,第二不善运行时将第二微之素放在位置1……这样当遍历完最后一个因素时,整个序列就解除好程序了,如图2-1所著。

图2-1 选择排序追踪图

public class Selection {
  // This class should not be instantiated.
  private Selection() { }
  public static void sort(Comparable[] a) {
    int N = a.length;
    for (int i = 0; i < N; i++) 
    {
        int min = i;
        for (int j = i+1; j < N; j++) {
            if (less(a[j], a[min])) min = j;
        }
        exch(a, i, min);
        assert isSorted(a, 0, i);
    }
    assert isSorted(a);
  }
}

从今上面的代码我们可以分析其的性能,算法总共的较次数也(N-1) + (N-2) +
… + 1 + 0 =
N(N-1)/2,交换次数也N次,故性能为O(N^2)。而且选择排序是一个“油盐不前进”的排序算法,随便你叫来什么样的输入序列——哪怕它已是板上钉钉的——都要平方时间才能够做到排序,因此选择排序虽与冒泡排序一样,了解摸底就吓,没有呀实际的用。

简介

2.2 插入排序

插入排序名字获不好,它应当给“扑克排序”,想想你斗地主的上是怎理牌的,你就是知晓插入排序的大约步骤了。在插入排序运行的过程中,我们总是要位置i之前已是有序的,我们的职责就是是用位置i的要素放到合适的职务,就好比摸了同一布置新牌,要把当下张新牌插入到相当的职一样。如图2-2所著,我们手里就发矣三摆放排好序的牌子,当我们还寻觅到梅花3时,因为她比就几乎摆牌还设聊,所以我们最终以它插入到了不过开头之职位。

2-2 插入排序很像打扑克

public class Insertion {
  // This class should not be instantiated.
  private Insertion() { }
  public static void sort(Comparable[] a) {
    int N = a.length;
    for (int i = 0; i < N; i++) {
        for (int j = i; j > 0 && less(a[j], a[j-1]); j--) {
            exch(a, j, j-1);
        }
        assert isSorted(a, 0, i);
    }
    assert isSorted(a);
  }
}

绝酷情况下(输入序列逆序),待插入的要素而与之前有的元素相较,因此待N2/2次比较和交换;最好情况下(输入序列已排序),待插入元素无需移动,且只比较一次,总共需要N-1次比较;平均情况下,插入排序大概需要N2/4蹩脚比和置换,因此她是一个O(N^2)的算法,遇到特别酷之班,排序时间会于缓慢。
然而若是您虽这个下定论,说插入排序是一个失效的算法,那就绝不管不顾了。插入排序有局部百般有意思之属性,科学家等针对插入排序更进一步的钻发现,插入排序对较小之序列非常行,而且本着一部分有序的行列效率特别高。要理解一些有序,首先要认识一个“逆”的
概念,一个排中之“逆”,是依序列中之逆序对,比如“A E E L M O T R X P
S”中“T-R T-P T-S R-P X-P
X-S”就是里有的6个逆。若一个队列第一根本N个,则“部分有序”是负该队的逆序数小于等于cN,其中c为常数。
假使一个行列是有有序的,那么插入排序的周转效率将见面是线性的,即O(N)时间外就会不辱使命,为什么吧?仔细察看插入排序的代码你就算会意识,每进行相同次等交换,序列的逆序数就会见减一(因此插入排序可以据此来算一个序列的逆序数,归并排序也克),因此交换的次数就等逆序数,既然逆序数小于等于cN,那么交换的性质为O(N);关键在于比较的次数,首先,每个元素至少还如和其前面的死元素进行同样糟比,所以肯定生(N-1)次,其次,每出同样潮交换就表示有了同样不良比较,且比的结果是欠因素于它前面的特别元素小,因此总的可比次数一定是(N-1)再加上交换的次数,比较的习性还是是O(N),所以当直面部分有序的阵时,插入排序能做到线性时间内就。
眼看同真相造成了区区单好玩的结果。首先,你见面发觉插入排序总是跟归并排序和迅速排序算法玩“暧昧”,在由并排序和便捷排序将行分解变成必然范围的微数组之后,使用插入排序对这些小数组进行排序要较持续讲要好,能够节省一些支付,如图2-3以及2-4所展示。在1993年Bentley
和 McIlroy那篇著名的舆论“Engineering a Sort
Function”中,两号大神给有了一如既往种有实际工程意义的快捷排序实现,该算法在拍卖比较小的数组时,就应用了插入排序。时至今日,该论文既成各种编程语言排序算法标准库实现之不可或缺参考,你要有胸去阅读这些语言的源代码,就会觉察该论文的身影。比如Go语言sort包中很快排序的实现即借鉴了拖欠论文的思,如图2-5暨2-6所显示。
另一个诙谐之结果是,因为插入排序对有的有序的数组工作之良好,科学家等即使绞尽脑汁地钻如何拿行弄得有静止,这生了其余一个好玩的算法——Shell排序,你可以用Shell排序当成插入排序的一个变种,这为是咱对接下要分析的。

祈求2-3 归并排序中行使插入排序进行局部优化

贪图2-4 快速排序中以插入排序进行部分优化

祈求2-5 实现排序算法标准库必备参考论文

贪图2-6 Go语言标准库sort中很快排序的落实利用及了插入排序

App
正在改变世界,丰富人们的生活,并为像而同的开发者提供前所未有的换代时。因此,App
Store 已成长为一个激动人心且充满活力的生态系统,正也数百万底开发者和过十亿的用户提供劳动。不管是出新手,还是由经验丰富的程序员所成的大型集团,我们还十分欢迎您吗 App
Store 开发 App,并要能帮而了解我们的轨道,以管您的 App
能够高效经过审核流程。

2.3 Shell排序

看来,Shell排序是针对插入排序的一样种植改进。既然插入排序对一部分有序的队列非常实用,那么我们便使琢磨一下什么吃序列变得有稳步。Shell排序的思绪是,与该像插入排序那样挨个排序,还非苟间隔h个要素进行排序,也即是历次排序上跳h个职位,这样序列虽然总体达标看貌似无序,但每间隔h个要素的队列却是交错有序的,这种排序为叫作h-排序,而排序后的行列被名“h-有序的”,如图2-7所著。Shell排序有个根本之概念,一个h-有序的队在g-排序后还是是h-有序的,那么只要我们坐某种方式逐渐缩小h直到h变为1,那么当进行h为1的那么次排序时,序列已经有些一如既往,而且排序也落后为一般的插入排序,那么算法的执行效率也便时有发生了增长。在同等开始经常,因为h很充分,所以子序列很缺乏,随着算法的开展,h越来越小,子序列越来越长,整个序列部分有序的档次越来越大,执行插入排序的效率呢便越强。那么h的跳数该怎么选呢?人们曾经找到多可行的计算公式,但一个简实用的“3X+1”即可满足绝大部分之性能要求了。

图2-7 每隔4单因素交错有序的行

public class Shell {
  // This class should not be instantiated.
  private Shell() { }
  public static void sort(Comparable[] a) {
    int N = a.length;
    // 3x+1 increment sequence:  1, 4, 13, 40, 121, 364, 1093, ... 
    int h = 1;
    while (h < N/3) h = 3*h + 1; 

    while (h >= 1) 
    {
        // h-sort the array
        for (int i = h; i < N; i++) {
            for (int j = i; j >= h && less(a[j], a[j-h]); j -= h) {
                exch(a, j, j-h);
            }
        }
        h /= 3;
    }
    assert isSorted(a); 
   }
}

首先,我们让h增大至大体N/3的位置,然后一边对班进行h排序,一边减小h的值,每次减多少到原来的1/3,这样结尾一次h的价就是也1,有科学家研究,该算法极其酷情况下之运转效率为O(N^3/2),算法演示如图2-8所展示。Shell排序是一个雅有神秘魅力之算法,因为对它的平分情况效率还并未查获可用之定论。但马上并无妨碍Shell排序化一个实用的算法。除非遇到巨大的行,Shell排序还是快速的,在嵌入式和硬件领域用较为常见。

祈求2-8 Shell排序举例

App Store 的点拨标准非常简单 – 我们期望为用户获得 App
时供更安全可靠的体会,并为保有开发者提供借助 App
获得成功的关。我们都按这同一口径更新了 App Review
指南。新版指南本身核心内容并没有外变动,但彼设计得还发出系统,且含有重复多背景以便掌握。在后续页面被,您见面意识这些规则都于明晰地分开也五独片:安全、性能、业务、设计以及法规。另外,请以以下几点谨记在心:

2.4 随机洗牌算法

绝大多数时光,我们期望收获的信是排有序,让丁舒服的,但有点时候咱们倒愿意信息是乱序的,是擅自的,是给人口猜测不准下一样步会获取什么的。比如你当网上开了平等小虚拟赌场,让大家都来而这里打牌斗地主,你虽冀洗牌算法每次取的结果尚且不相同,否则每次将到同样的牌子,这地主还怎么打下去吗,这为不符合实际情况呀。所以我们的靶子是:重新排列数组,使得得到的排是都匀分布之。其中的同等栽方法是,我们为数组中之每一个职用满足均匀分布的伪随机数生成器产生一个随机数,对随意数进行排序,就能够获想要之结果(当然,举一反三地思考,如果我们利用有满足其他概率分布的随意数生成器,就能够可怜成饱其他属性的自由行),如图2-9所著。

图2-9 随机洗牌后的扑克牌

还有一样种随机洗牌算法更常用,是牛人Knuth他父母发明的,叫做Knuth
Shuffle,这种艺术的中坚思想就是:对于元素arr[i],用随机选的另外一个因素arr[r]同它们进行换,其中r是[0,
i]或者[i, N-1]距离内按机选出来的一个素,如下所示。

public static void shuffle(Object[] a) {
  int N = a.length;
  for (int i = 0; i < N; i++) {
    int r = StdRandom.uniform(i + 1);
    exch(a, i, r);
  }
}
public static void shuffle(int[] a) {
  int N = a.length;
  for (int i = 0; i < N; i++) {
    int r = i + uniform(N-i); // between i and N-1
    int temp = a[i];
    a[i] = a[r];
    a[r] = temp;
  }
}

实际,开发以机数算法一定要是慎之同时慎,因为微微不上心就会见产出部分非常粗的尾巴,如果以线扑克牌游戏受出现这样那样的片漏洞,黑客就是好运用其推算出程序将如发作什么牌,这发生早晚是惨不忍睹的,网上发一样首著名的博文当随机不足够随机:一个在线扑克游戏之训诫纵使介绍了达世纪90年份末国外一个不行流行的在线扑克平台出现过的严重错误,是擅自洗牌算法的一个很好的反面教材,提醒我们算法设计得要小心,有趣味的足拘留无异禁闭。

俺们发现多童都见面大方下载各种
App。尽管父母决定作用会也孩子提供实惠保护,但您为不能不做好自己卖内之工作。因此,您而明了,我们时刻都以关注这些小孩子。

三. 算法名人堂——归并排序

核心排序介绍了了,现在我们登堂入室,来认一个鲜明的老牌算法——归并排序。不像Shell排序,人们对由并排序的习性可谓了如指掌,所以它被大量以到各种计算体系面临。Java就就此其来排序各种对象,而C++和Python等编程语言则利用它来贯彻平等种“稳定”的排序算法,我们本着由并排序的介绍,就从“稳定性”这个概念开始。

App Store是一个受世界各地数亿人口聚的好地方。
如果你才是以为亲属与朋友展示而出了千篇一律慢慢悠悠 App,那 App Store
就未是举行这个的最好的地方。使用测试证明发布还是庄版发布 。
如果你刚刚开始,请详细询问 Apple 开发者计划。

3.1 排序算法的安澜

“稳定性”是在针对记录进行余办法排序时便要考虑的问题,如果记录得由此Key1排序,又可通过Key2排序,那么当Key2排序之后,如果Key2相同之同浩大记录相对于Key1而言还是是板上钉钉的,那么我们不怕说该排序算法是政通人和排序,否则,就是休安静之,图3-1吃所著之例子中,我们事先对学员记录按照姓名进行排序,然后又遵循分区进行排序,结果第3区的学生不再是准姓名排序的,因此选择排序并无是一个平静的算法。在我们介绍了之算法中,只有插入排序是平稳的,因为其每次活动元素的跨度大有些,不见面挥发至和其同很之要素前面去。而挑选排序和Shell排序跨度都较充分,比如Shell排序平开始便每间隔h个因素进行排序,自然无法确保安居。
由并排序不但效率最完美,而且满足稳定性,是一个妙不可言之算法。它的中坚思想就是拿行一分为二,分别排序左半部分和右半有些,然后又用即刻简单有的由并化作一个一成不变的班,其中对错误半有和右半局部的排序是递归的,仍然是平分为二然后由并,如图3-2所出示。归并排序虽是一个死突出的“分治”算法思想之反映:某问题解决起来困难,那么我们就是将拖欠问题持续拆分成众多子问题,然后将子问题的解汇总成最终问题之解。“分治”算法不但高效且容易进行数学分析,这个后面会看到。

祈求3-1 选择排序不是政通人和之算法

贪图3-2 归并算法演示

图3-3 归并排序演示

假使我们觉得 App 的另内容还是行为超出了可接受之范围,我们将拒绝该
App。您或许会见咨询,这个可领之克是什么?套用最高法院审判员的等同句话:“当自己顾的当儿,我就是清楚了”。而且,我们信任,当你过这个范围时,您自己吧会意识及。

3.2 归并排序中之联结

一经图3-3所显示,在由并排序中,归并是一个根本之一部分,它的核心思维是:拷贝并下一个平大小的救助序列aux,用半单目录分别针对已经排序的子序列aux[lo..mid]和aux[mid+1..hi],同时遍历两单序列,比较遍历到之要素,每次都拿无限小的元素放入arr,如果中有哪个子序列归并结束了,那么即使以其余一子班的要素一个一个拷进去。使用辅助数组aux意味着这种联合排序的空中效率不赛——每次都如动用额外的O(N)空间,其实归并排序的本不止一种植,还有有比较复杂的算法实现了确实的当庭归并。这里尚足以学到一个初技巧:断言。通常每个算法的执行都见面生一个放置状态(Precondition),当满足前置条件时实施该算法才是无可非议的,而算法正确履行下总会带某种状态的改观,称为后置状态(Postcondition),比如归并,前置状态要求少独子序列是排序的,后置状态要求所有序列是排序的,很多语言都提供了差不多断言机制,比如Java的assert指令,并提供了激活断言的开关功能。那么我们不怕足以在代码中以断言,这足足有星星点点独好处,首先断言能够尽可能早地意识先后中冒出的私房问题,提醒开发者代码执行的准没有叫满足;其次,它是一律种植文档,明确地报告了算法执行的先决条件和拉动的更改,能够增强代码的易读性。

private static void merge(Comparable[] a, Comparable[] aux, int lo, int mid, int hi) {

  // precondition: a[lo .. mid] and a[mid+1 .. hi] are sorted subarrays
  assert isSorted(a, lo, mid);
  assert isSorted(a, mid+1, hi);

  // copy to aux[]
  for (int k = lo; k <= hi; k++) {
    aux[k] = a[k]; 
  }

  // merge back to a[]
  int i = lo, j = mid+1;
  for (int k = lo; k <= hi; k++) {
    if      (i > mid)              a[k] = aux[j++];   // this copying is unnecessary
    else if (j > hi)               a[k] = aux[i++];
    else if (less(aux[j], aux[i])) a[k] = aux[j++];
    else                           a[k] = aux[i++];
  }

  // postcondition: a[lo .. hi] is sorted
  assert isSorted(a, lo, hi);
}

如若您准备哄骗系统(例如,试图在审核流程中作,窃取用户数据,抄袭其他开发者的著作,或者决定评级),我们见面自该公司中易除您的
App,并将你从 Developer Program 中开。

3.3 各个击破:自顶向下之汇合

来了由并,排序虽受设计吧一个递归的过程:每次都划算一个中等位置mid,然后递归地排序左右简单片,最后由并排序好的子序列,当hi
<=
lo时递归返回,因为此时子序列中没元素,不需要举行其他操作,代码如下所示。因为sort是递归调用,因此每个sort调用都见面蕴藏自己之merge过程,也就算管了分层序列在由并前就是稳步的了。归并排序是一个快高速的算法,有科学家做了经验分析,通过试验分别以家用电脑和过级计算机上相比了其及插入排序的运作效率,得到如图3-4所出示之尝试结果,可以望就是是百万级的笔录由并排序仍然是弹指之间就,插入排序却待等达标300基本上年。

// mergesort a[lo..hi] using auxiliary array aux[lo..hi]
private static void sort(Comparable[] a, Comparable[] aux, int lo, int hi) {
  if (hi <= lo) return;
  int mid = lo + (hi - lo) / 2;
  sort(a, aux, lo, mid);
  sort(a, aux, mid + 1, hi);
  merge(a, aux, lo, mid, hi);
}

3-4 归并同插入排序的效率比

3-5 归并排序的递推公式

3-6 归并算法效率的直观解释

本着由并排序的数学分析代表了对“分治”这同样像样算法进行分析的基本模式,掌握了这种分析方法,当我们当各种分治算法时我们就是可为此平等的法门去分析其的频率。分治算法的频率分析日常可以经解某一递给推公式来好,就由并排序而言,因为咱们每次都将行一分为二排序后开展合并,如果我们借设C(N)为算法对长为N的排进行排序所要于次数,那么我们好获取如图3-5所显示之递推公式。解这个递推公式可以取统一排序的频率为NlgN,具体的演绎过程这里虽不赘述了,《算法导论》这仍开及出一揽子而详细的指点。这里才为闹一个于直观的解释,如图3-6所显示。假设N为2的掩盖,我们好用由并排序一分为二的长河作为一蔸树,这株树每一样叠还有N个结点,它会一直讲,而培育的冲天为lgN,所以最终抱NlgN。

咱俩希望这些新则能拉而顺利通过 App Review
流程,并而准和拒绝标准于完全达标尤为一致。本文是一个动态文稿;如果新的
App 引发了新的题目,我们恐怕会见天天制定新的条条框框。也许,您的 App
就以致新的平整。我们同样热爱 App
开发,并且强调你所开的满。我们恰好全力以赴为卿营造世界上顶出色之平台,既会吃你展示才华,还能够于你取回报。

3.4 积少成为多:自底向上的统一

由到向下的方法一般都在在一个对称的逆过程,有时候我们啊足以回想,用自底向上的思路去化解问题。前面提到,长度为1底序列是先天性有序的。那么我们得以多遍历几蹩脚,第一蹩脚用长也1底子序列归并为有序的2-序列,然后将平稳的2-序列归并为4-序列……这样反复开展下,直到所有序列都由并为有序的,这样并递归都并非了,两交汇循环就能够搞定。说起来大概,但要真兑现的话,一些微薄的地方如果顾。从下边的代码示例可以看看,外层循环从1开始,每次加倍,因为第一赖而拍卖大小为1底队列,第二不好而处理大小也2的行列,第三不良则是深浅也4底,以此类推。然后在各个一样不善巡回的其中,用索引i来记录每次要拍卖的队头部(一涂鸦迭代跳了sz+sz个要素)。我们分别计算lo,m和hi,使得aux[lo..m]和aux[m+1..hi]呢少单相当长度的待归并子序列,然后还是用点提到的集合措施进行处理。

public static void sort(Comparable[] a) {
  int N = a.length;
  Comparable[] aux = new Comparable[N];
  for (int sz = 1; sz < N; sz = sz+sz) {
    for (int i = 0; i < N-sz; i += sz+sz) {
      int lo = i;
      int m  = i+sz-1;
      int hi = Math.min(i+sz+sz-1, N-1);
      merge(a, aux, lo, m, hi);
    }
  }
  assert isSorted(a);
}

目录

3.5 基于比较的排序算法,其极何在?

咱们已经分析了之抉择排序,插入排序,Shell排序和联排序,以及下会谈及之很快排序,都得看作是相同近似排序算法——基于比较的排序算法,也就是说,它们只晓得元素中的轻重关系,其他的音讯(比如是否有双重元素,是否有些一如既往等等)则统统不知。对于当下无异看似算法,我们得透过平等栽于“决策树”的家伙,得到一个计算复杂度方面的首要结论。图3-7显了针对性三独例外元素a,b和c的排序过程。从根节点交有同纸牌结点的路子表示某次排序的可比序列,叶子结点表示最终取得的结果。首先,对于N个不同因素的排序决策树,至少有N!个叶子结点,因为有N!种排列的或。其次,二叉树起一个首要的性能,即高度为h的二叉树最多出2h个叶子结点。故得到公式2h
>= #leaf >= N!,即h >= lgN! >=
NlgN(根据斯特林公式得到)。也就是说,我们对基于比较的排序算法建立之表决树模型,其入骨至少是NlgN,而培育之莫大表示算法极其特别比次数,那么我们不怕能得出一个定论:最充分情况下拥有因比较的排序算法至少要因此NlgN次比较。
如留意,这是一个很要紧的下结论。从之结论,我们得汲取这样一个真相:归并排序是时刻最好优异的,因为它们太要命情况下比较次数也NlgN。其次,不可能找到比较次数比较是还少的算法——因为就违反客观规律了,但是,这个结论同时启发我们,应该好查找到日是NlgN,但空间效率又可以的算法,可以自之势头去想。另外一个细微的远在当吃,该结论依据的中坚假要标准是拖欠队是出于N个不同之因素结合的,若序列中冒出还元素,或该队是有的有序的,那么算法的效率会比NlgN还要胜。使用某结论之前若考虑该结论成立之规范是否满足,否则会发出笑话的。

图3-7 比较排序算法的裁决树模型

授之前– 审核前对清单

1.安全

1.1 令人反感的始末

1.2 用户生成的内容

1.3 儿童类别

1.4 人身伤害

1.5 开发者信息

2.性能

2.1 App 完成度

2.2 测试版 App

2.3 准确之首位数据

2.4 硬件兼容性

2.5 软件要求

3.业务

3.1 付款

3.1.1 App 内购买

3.1.2 订阅

3.1.3 基于内容的“阅读器”App

3.1.4 内容代码

3.1.5 App 之外的玩意商品和劳务

3.1.6 Apple Pay

3.2 其他作业模式问题

3.2.1 可以承受

3.2.2 不可承受

4.设计

4.1 抄袭者

4.2 最低功能要求

4.3 垃圾 App

4.4 扩展功能

4.5 Apple 站点和服务

5.法律

5.1 隐私

5.1.1 数据收集及存储

5.1.2 数据采取和共享

5.1.3 健康与健康研究

5.1.4 儿童

5.1.5 定位服务

5.2 知识产权

5.3 游戏、赌博及彩票

交付后– 预期事宜

交给之前

为扶持你尽可能顺利地经过 App
审批,请查看下方列有底科普错误行为,这些行为或会见招致审核流程延误或导致
App 被驳回。这些情节未可知取代准则或担保 App
获批,但保证对该列表中的各一样起会是一个良好的开始。如果你的 App
不再循预期运行,或者你不再维护和营业,它用会见叫由 App Store
中去除。了解关于 App Store 改进的更多信息。

请确保:

测试 App 是否会见生崩溃、是否存在似是而非

包有 App 信息及长数据总体且是

履新您的关联信息,以便 App Review 部门于需要时您获得联络

提供有效的以身作则帐户和登录信息,以及审核 App
时所欲的别样其他硬件还是资源(例如,示例二维码)

启用后台服务,以使该当核期间处于移动和可用状态

于 App Review 备注中附上与非明显特性与 IAP
相关的详实说明,包括支持文稿(如适用)。如果由于地段锁定或者其他限制而招致我们无法访问
App 的局部内容,请提供有关力量的视频链接

反省 App 是否按了其余文稿中的相关指南,如:

支出指南

App Programming Guide

(应用程序编程指南)

App Extension Programming Guide

(应用扩展编程指南)

iOS Data Storage Guidelines

(iOS数据存储条款)

macOS File System Documentation

(Mac OS X文件系统文档)

Safari Extensions Development Guide

(Safari扩展开发指南)

iTunes Connect Developer Guide

(iTunes Connect开发者指南)

规划指南

iOS Human Interface Guidelines

(iOS人机界面则)

macOS Human Interface Guidelines

(Mac OS人机界面则)

tvOS Human Interface Guidelines

(tvOS人机界面则)

watchOS Human Interface Guidelines

(watchOS人机界面指南)

品牌以及营销准则

App Store Marketing Guidelines

(App Store营销指南)

Apple Pay Identity Guidelines

(Apple Pay识别标志指南)

Add to Apple Wallet Guidelines

(加入Apple Wallet指南)

Guidelines for Using Apple Trademarks and Copyrights

(使用Apple商标和版权的条目)

1.安全

当用户通过 App Store 安装 App 时,他们愿意赢得平安的心得:App
不分包令人不快或有所攻击性的情,不见面坏他们之装置,不会见以应用受到致身体伤害。我们于凡列有了最主要的安全隐患。如果你想吓唬、攻击别人,则您的
App 不适合出现在 App Store 中。

1.1使得人反感的情

App
不答应包含有攻击性、不顾及他人感受、令人不安、惹人头痛或低俗不堪的情。此类内容之演示有:

1.1.1 诽谤或恶意内容,包括有关宗教、种族、性取向、性别或另目标群体的援或评头品足,特别是当
App
很可能针对特定的私家要组织造成损伤时。专业政治讽刺与政治幽默作家通常无需以这同一求。

1.1.2 人类还是动物被杀害、残害、酷刑、虐待的写真描绘,或者鼓励暴力的内容。在打中,“敌人”不能够止针对一定种族、文化、真实存在的当局要小卖部,或是任何其它实际存在的实体。

1.1.3 鼓励非法采取还是不负责任地使武器和险恶物品的叙述,或者促进铁采购的叙说。

1.1.4 过于色情的始末(韦氏词典对“色情”一歌词的概念是:对性器官或性活动之干描述或显,目的在刺激性快感,而不带来美学价值或者点情感)。

1.1.5 具有煽动性的宗教评论,或者对宗教文本进行不当或误导性的援。

1.1.6 虚假信息以及机能,其中包未纯粹的设施数量或者用来恶作剧/开玩笑的作用,如假的位置跟踪器。即使指明
App“仅供游戏”,也不能够违反这同样准则。支持匿名或调侃电话还是短信/彩信的 App
会被驳回。

1.1.7 App Store评论:

App
Store用户评价可以当利用经验的一个有的,因此而该以应用户的品时尊敬的地比用户。将你回复的目标锁定于用户的评头品足上,不要以平复中涵盖个人信息、垃圾邮件或进行营销。

利用所提供的 API 来提示用户为卿的 App 评价; 此功能允许用户以不离 App
的景下提供 App Store 评级和评分,我们将未允打定义评论提示。

1.2用户生成的情节

对此富含用户生成内容的
App,有特定的难题要缓解,比如文化产权侵权、匿名欺凌等。为了避免滥用,包含用户生成内容或社交网络服务的
App 必须满足以下标准:

运用相应的点子来过滤令人反感的始末,以免这些内容在 App 中披露

制订一个建制,以举报攻击性内容连当产出问题时这作出回应

要用户发布攻击性内容,可以取消该用服务的身份

颁布联系信息,以便用户和君联系

只要 App
中所富含的用户生成内容还是服务最后要用以色情内容、客观化现实生活中之某(如“性感吗”投票)、进行肉体威胁或欺凌,则这些
App 不相符出现在 App Store 中,它们或者会见以未经通知的景下被移除。如果
App 中所涵盖的用户生成内容来于依据 Web 的服务,则可展示意外生的“
NSFW(公众场所不宜)”内容,前提是这些内容是默认隐藏的,只有当用户通过公的网站以那个开辟时才见面显。

1.3幼儿类别

“儿童类别”可帮助用户轻松地找到符合儿童之
App。如果您愿意与“儿童类别”,则应从为为年较小之用户量身打造独立的施用体验。这些
App 不得供 App
外链接、购买时要外会针对儿童造成干扰的内容,除非该保存在叫家长监督之指定区域受到。请谨记,只要客户愿意你的
App 能够满足“儿童类别”的求,您的 App
就待一直满足连续更新受的对应准则;即使你决定收回选择此类别,也是这般。进一步询问老人监督。

“儿童类别”中的 App 不得展示作为广告(例如,广告主不得因用户在 App
中之移位下广告),而且具有内容相关广告都得符合孩子观看。您还承诺特别留心世界各地与在线收集儿童数量有关的隐私法。请务必查阅这些规则的“隐私”部分,以了解再多信息。

1.4人体损害

假若 App 的行艺术或会见造成肢体损伤,我们也许会见拒绝该 App。例如:

1.4.1 如果看 App
可能会见供错误的多寡还是信息,或用来诊断或治疗病患,则这些 App
可能会见面临更加严厉的审批。

App必须懂得地吐露数据与道,以支撑及正规测量相关的准确性声明,如果
App 的准头与方式无法验证,我们用不容你的 App。
例如,仅用设备上的传感器拍摄 x
射线、测量血压、体温、血糖水平或血氧水平的 App 是勿给允许的。

App应该提拔用户除外以该 App
外,以及作出医疗决定前,要往先生了解。

设若您的医疗 App 已经获得监管部门的许可,请随 App 提交有关文稿的链接。

1.4.2 药物剂量计算器必须来自药品生产合作社、医院、大学、健康保险企业,或是经过
FDA
或该对应国际机构的特许的另外实体。由于可能会见对病患造成损害,我们需要保证
App 将于加上时外得支持,并维持更新。

1.4.3 App
不得鼓励非法利用毒或过摄入酒精;或者鼓励未成年人打毒、酒精或烟草;不允吗大麻销售提供方便。

1.4.4 App
只能显示由相关执法部门发布之酒后出车检查点,不得鼓励酒后驾车和包括超速在内的其它鲁莽行为。

1.4.5 App 不得促使客户以违反 Apple
硬件安全文稿的措施,或为可能会见招设备或者肢体伤害的不二法门来用他们之设施。例如,App
不得鼓励用户在充电时拿配备放置于床垫和枕头之下。请查阅设备文稿。

1.5开发者信息

用户需理解哪就问题和支持问题与君取联络。请确保您的支持 URL
中包含便捷的联系方式。如果未能提供高精度之流行联系信息,不但会让客户来不好的感触,可能还会违反某些国家/地区的法网。另外,请确保于
Wallet
凭证中蕴含发卡机构的有效性联系方式,以及分配为据的品牌还是商标所有者的专用证书。

2.性能

2.1 App完成度

付给以供应对的 App 应该是最后版,应涵盖有必要的状元数据及咸效的
URL;占位符文本、空白网站以及其他临时内容应于提交前清除。在提交 App
之前,请务必以配备及对 App 错误与平稳进行测试;如果您的 App
需要登录,请提供示范帐户信息(并开拓你的后台服务!)。如果您当 App
中提供了 App
内购买,请确保复核人员能看出这些内容,并确保这些情节处于整体且行的状态,否则要在审核备注中说明有关原因。请不要用
App Review 视作软件测试服务。我们将不容不完的 App
套装和会并发崩溃或在鲜明技术问题的二进制文件。

2.2测试版 App

App 的演示版、测试版和试用版不吻合出现于 App Store 中 – 请动
TestFlight。所有通过 TestFlight 提交以进行测试发布之 App
都答应旨在公开宣布,并许诺依“App Review 准则”。请留意,使用 TestFlight 的
App
不得分发给测试者用以换取任何项目的酬劳,包括作为众筹资金的赏。对于测试版
App 的大幅更新应先提交至 TestFlight App Review
团队,然后再分发给你的测试者。要询问又多信息,请访问“TestFlight Beta
Testing”。

2.3准确无误之老大数据

客户应该了解他们当下载或进货而的 App 时会获什么,所以告保管 App
的叙说、屏幕快照和预览能够精确反映 App
的中坚体验,并记不断更新,以便保障与新本子相应的新式状态。

2.3.1 请无以 App 中含有无记录的效益或躲藏功能;不管是对此最终用户还是
App Review 团队,App
功能还答应清晰可见。如果出现恶性或者频繁教不更改之行为,则可能会见起 Apple
Developer Program 中开。我们正力图将 App
Store 打招值得信任的生态系统,并期望咱们的 App
开发者也会如此;如果你不确实以待,我们中便未会见产生另业务来往。

2.3.2 如果你的 App 包含 App 内购买,请保管 App
的叙述、屏幕快照和预览清楚地指明是否来得重新购买的选品种、关卡、订阅等。比方你决定在
App Store 中推广应用内购买,请保管 IAP
显示的号与描述是为公众用户编写的,并且您的App可以正确处理用于支付的接口
API,以便客户可于动用启动时无缝完成购买。

2.3.3 屏幕快照应显示 App
的下状况,而不就展示标题封面、登录页面或开屏幕。它们为堪显示文字与装备的扩展功能,比如
Touch Bar。

2.3.4 预览是给客户了解 App 外观及功能的好措施。为了保客户理解她们将在
App 中取得的体验,预览或许只有会动自 App 中捕获的视频屏幕。表情贴纸和
iMessage 扩展可以将用户体验展示在“信息”App
中。您也可长旁白同视频,或加上文本说明,以赞助说明外无法单独经过视频进行说明的内容。

2.3.5 请也 App 选择最为可之花色,并在待协助时参照“App Store
类别定义”。如果选的类与实际状况去比较远,我们可能会见再度改 App 的型。

2.3.6 请于 iTunes Connect 中老实地应年龄段分别问题,以使 App
与老人决定效果的独家保持一致。如果 App 分级有误,客户在取得 App
时可能会见感到惊奇,或促使政府监管部门进行相应调查。

2.3.7 请捎一个举世无双之 App 名称,指定能规范描述 App
的严重性词,不要试图用商标术语、流行 App
的名或者其它未系的短语来包装任何元数据,以这个欺骗系统。App
名称必须界定以30字符中,且不得含有无属 App
名称的用语或者描述。
动可标题是吗而的 App 提供附加说明的好之章程;
它们必须按照我们的标准元数据规则,且未答应包含无当内容、引用其他
App,或制不可验证的出品声明。Apple 可能会见天天修改不合适的严重性词。

2.3.8 元数据应符合有受众,所以告保管您的图标、屏幕快照和预览保持在 4+
年龄分别;即使你的 App 分级更胜似,也答应这样。例如,如果您的 App
是含有暴力的游艺,请不选择含惨烈的凋谢或用枪瞄准特定角色的图像。以“App
名称”中运用“For Kids”和“For
Children”这些术语是吗“儿童类别”保留的。
告务必保管包括 App
名称和图标(小图标、大图标、Apple Watch App
等)在内的首任数据交互相似,以免引起困惑。

2.3.9 您应负担管发生且以 App
图标、屏幕快照和预览中之享有材料,并应显示虚构的钱户信息,而无实际个人的多寡。

2.3.10 请确保您的 App 注重 iOS、Mac、Apple TV 或 Apple Watch
体验,并且不以 App
或初次数据中寓其他运动平台的号、图标或图像,除非在就获批的特定互动效果。

2.4硬件兼容性

2.4.1 为了确保用户能够充分利用您的 App,iPhone App 应尽可能能以 iPad
上运行。我们鼓励你考虑开发通用
App,这样客户就是可当颇具设施及加以运用。进一步了解通用 App。

2.4.2 通过统筹,使 App 节省能耗。App
不承诺迅速耗尽电池电能、产生过多的热能还是对配备资源造成不必要的承受。

2.4.3 对于 Apple TV App,应管用户无论需采用除 Siri Remote
或第三方游戏控制器之外的硬件输入,但若可轻易提供增强力量供连接其他外围设备时以。如果要用户配备游戏控制器,请务必以初次数据遭到加以明确说明,以便用户知道他们待格外的设施才会打游戏。

2.4.4 App 不得建议或要求再次起动设备。

2.4.5 对于经 Mac App Store 分发的
App,还有几单附加要求需要您牢记在心:

(i) 这些 App 必须适度地沙盒化,并论“macOS File System
Documentation”。另外,这些 App 只答应使用相应的 macOS API 来改外 App
存储的用户数据(如题签、“地址簿”或“日历”条目)。

(ii) 这些 App 必须采用 Xcode
中提供的技艺来展开打包和交由;不同意利用第三正在安装器。另外,这些 App
必须是单科的打包含应用程序安装包,不克拿代码或资源安装于共享位置。

(iii) 这些 App
不得自行启动或当起步时带有其他活动运行的代码,不得在未经允许的情形下登录,也不足大量变迁于用户退
App 后遵在未经同意的状下继续运行的过程。这些 App 不得用图标自动添加至
Dock 中,或在用户桌面上留快捷方式。

(iv) 这些 App 不得下载或设置独立的
App、kext、额外代码或资源,以向我们于核过程被看出的 App
添加功能,或开展大幅变动。

(v) 这些 App 不得报名升级至 root 特权或使用 setuid 属性。

(vi) 这些 App
不得在开行时显示许可证屏幕、需要用许可证密匙或实行协调的正片保护措施。

(vii) 这些 App 必须下 Mac App Store 分发更新;不容许利用任何创新机制。

(viii) 这些 App 应于眼前随附的 OS 上运行,不得采用就停用或选装的技艺(如
Java、Rosetta)。

(ix) 这些 App 必须以单个 App 套装内包含有的语言与本地化支持。

2.5软件要求

2.5.1 App 可以仅行使公共
API。再者要配合已揭晓的风行系统。了解又多关于公共 API 的音讯。
让你的 App
保持最新的状态,并保证您慢慢淘汰那些当明天之操作系统版本被不再支持之不合时宜的效力、框架或技术。

2.5.2 App
应从包含在其套装中,不得以指定容器范围外读取或写副数据,不得下载、安装或实施代码,包括另外App。旨在教授、开发或测试可实施代码的
App 可以当个别的情事下下载代码,但前提是此类代码不用于其它目的。 这样的
App 必须采用应用程序提供的源代码,可以了由用户查看和编排。

2.5.3 如果 App
传输的病毒、文件、计算机代码或程序会指向操作系统及/或硬件功能(包括推送通知及
Game Center)的正常化运行造成负面影响或造成中断,则该 App
会被拒绝。如果出现恶性之违规行为或累教不移的行,则会造成从 Apple
Developer Program 中开。

2.5.4 多任务处理 App
只同意以促成预期用途时行使后台服务:VoIP、音频播放、地理位置、任务成功记录与本土通知等。如果
App 使用一定后台模式,请提醒用户,这么做会大幅缩水电池使用时。

2.5.5 我们拿以 IPv6 网直达开展查处。如果你的 App 无法同 IPv6
寻址功能兼容,则恐无法透过审批。

2.5.6 如果 App 会浏览网页,则要采用相应的 WebKit 框架和 WebKit
Javascript。

2.5.7 基于蜂窝移动网络都过 10 分钟的视频流内容要动 HTTP Live
Streaming,并涵盖一个基准 192 kbps HTTP Live Stream。

2.5.8 如果 App 会创建替代的桌面/主屏幕环境,或者拟多应用 Widget
体验,则该 App 会遭到拒绝。

2.5.9 如果 App
会改变专业开关(如音量增/减和铃声/静音开关)的机能,或变更其他的原生用户界面元素或作为,则该
App
会遭到拒绝。譬如,应用程序不应该阻碍链接到其他应用程序或用户要以某种方式工作的其余力量。了解又多关于正确处理链接的音信。

2.5.10 不得交付包含空白广告横幅或测试广告的 App。

2.5.11 SiriKit

(i) 集成 SiriKit 的 App 只能登记无需外 App
支持就可处理的意向,而且该图应该和用户指向所陈述效的预期相符。例如,如果你的
App 属于膳食计划 App,则不应融入开始体能训练的意图,即使该 App
共享了跟健身 App 的购并为不可以。

(ii) 确保 plist 中的词汇和短语与您的 App 及其所注册意图的 SiriKit
功能可。Aliases 必须同君的 App
或企业号称相关,不应该是通用的术语或者包第三着应用程序的名号或劳务。

(iii) 以最直接的章程分析 Siri
请求,不要在呼吁和贯彻中插入任何广告还是另市场营销信息。只有以就有关职责需要经常(例如让用户指定特定项目的体能训练时),才可来得插页式用户界面。

3.业务

于 App Store 中,您可经多种措施于好之 App
实现扭亏为盈。如果你的工作模式并无显著,请务必以该首数据和 App Review
备注中加以证实。如果我们无能为力理解 App 的行事章程,或者 App
内购买无是那一目了然,则审核会有所耽搁,并可能会见导致 App
被驳回。尽管价位由乃决定,但是我们不见面散发要价明显了高之 App 和 App
内购买项目。对于拟为不合常理的昂扬价格欺诈用户之 App,我们拿与回绝。

要是我们发现而准备控制评价,通过付费、提供奖、经过筛选或假冒之反映来提高排名,或者要求第三正值服务取代您这般做,我们拿应用相应措施以保障 App
Store 的完整性,其中可能连将公于 Apple Developer Program 中革除。

3.1付款

3.1.1 App 内购买:

·如果您想只要以 App
内解锁特性或效益(解锁方式发生:订阅、游戏内货币、游戏关卡、优质内容的拜会权限或解锁完整版等),则必须运用
App 内购买。App
可以行使应用内买的货币来帮忙用户以应用中“付费”给数字内容提供商。
App
不得含有指引客户采用非 IAP
机制进行采购的按钮、外部链接或者其它行动号召用语。

·通过 IAP 购买的装有点数和戏货币必须在 App
内使用还不可过期,并且您应管为所产生可过来的“App
内购买”设计相同效恢复机制。

·请务必指定正确的而打类型,否则你的 App 将受拒。

·App 不得直接或间接地以 IAP 内容、功能或消耗品赠予他人。

·通过 Mac App Store 分发的 App 可托管基于非 App
Store 机制的插件或扩大功能。

3.1.2 订阅:无论属于 App Store 上哪一样像样别,App 都足以提供自动续订的 App
内购买订阅。在 App 内集成可活动续订的订阅时,请务必以下述指导标准。

3.1.2(a) 允许的用途:如果你提供自动续订订阅,则必须为客户提供源源的价。以下并非详尽列表,适当的订阅示例包括:新游戏关卡;连载内容;多玩家支持;持续提供实质性更新的
App;对媒体内容之特大型合集或持续创新的访问权限;软件就服务
(SAAS);以及出口服务支撑。此外:

·订阅可和单点式服务协同提供。例如,您得提供全影片库的订阅,以及单部影片购买或者承租。

·您可提供于你自己之例外 App
间共享的十足订阅,但此类订阅不得扩大及第三正值 App
或劳动。订阅必须适用于可使该 App 的所有用户设备。进一步询问在公的 App
之间共享订阅。

· App 不得强制要求用户为 App 评级或点评、下载其他
App,或施行外类似操作,然后才能够顾该 App 的功效、内容或使该 App。

·与有 App
一样,此类服务订阅应当允许用户直接拿走付费买的类型只要无需实践额外任务,如在交际媒体及发帖、上传通讯录,以及以
App 内签到特定次数等于。

·订阅不得含有消耗性的积分和游乐内货币等,即使跟另服务相结合吗老,但您得供含有消耗性商品打折活动的订阅,例如克以优惠价购买宝石包的尖端会员资格。

·如果要是将现有 App
更改为根据订阅的工作模式,您不得减少现有用户都付费买的显要意义。例如,针对初客户引入订阅模式继,已购置“完整游戏解锁”的客户承诺能继承看完整版本游戏。

3.1.2(b) 升级跟降:用户应能取无缝的晋级/降级体验,并且不见面现出无意间订阅同一内容的几近独不等版本。请查阅有关管理订阅升级和降选项之特等做法。

3.1.2(c) 订阅信息:在被客户订阅之前,您该清晰描述付费后底切实可行活动。每月有几乎盼?云存储容量有差不多挺?具体能看您的怎么样服务?另外,务必要分明地表达相关的要求,即您协议的
Schedule 2 中“Agreements, Tax, and Banking”部分所陈述之求。

3.1.3 “阅读器”App:App
应允许用户访问先前进货之始末还是内容订阅(具体而言是:杂志、报纸、图书、音频、音乐、视频、专业数据库访问权限、VoIP、云存储与经批准的劳务,如用于管理学生成跟课表的教育类
App),和多平台游戏受之消耗品,只要你同意不直接或间接地引导 iOS
用户以 IAP
之外的旁市方,且有关任何采购法的概括性信息并无旨在阻止使用
IAP。

3.1.4 内容代码:App
不得用本人体制来解锁内容还是效益,如许可证密钥、增强现实标记、二维码等。在为数不多的情状被,例如当效依赖让特定的硬件功能时,App
可在匪利用 App 内购买之情下解锁该功能(例如,天文 App
会在跟望远镜一起后增加效益)。与通过批准的实在产品(如玩具)配合以的可选 App
功能可当未采取 IAP 的情景下解锁特定功能,前提是同时为供 IAP
选项。您不得要求用户通过请无关产品还是参与广告还是市场走来解锁 App
功能。

3.1.5 App 之外的钱物商品与服务:如果 App 允许用户买用当 App
之外使用的商品要劳动,则必须利用 IAP 以外的购置艺术来接受相应款项,如
Apple Pay 或民俗的信用卡入口。App
可支撑获批虚拟货币的商品流通(如比较特币、狗币),前提条件是,在拖欠 App
能够健康下的地区,前述做法务遵从各州法律及联邦法律。

3.1.6 Apple Pay:如果 App 使用 Apple
Pay,则在销售其他货物或者服务前,必须先行为用户提供有的基本买信息,并且要科学利用
Apple Pay 品牌和用户界面元素,具体求可是参看“Apple Pay
识别标志指南”和“Human Interface Guidelines”。使用 Apple Pay
提供再付款服务之 App 至少需披露以下信息:

·续订周期的时长;除非叫收回,否则续订将会晤持续

·每个周期中会提供怎样服务

·将通往客户收取的其实支出

·如何取消

3.2任何事情模式问题

尘世列表并非详尽清单,并且您提交的 App
可能会见促成我们的政策有着改观或者更新,但这里产生有分外的许诺举行事情与无做事情要你谨记在心:

3.2.1 可以承受

(i) 在你的 App 中,出于购买或促销目的而显得你的其余 App,只要你的 App
不只是简单地摆其他 App。

(ii) 显示或引进专为经批准的特定需求使计划之老三方
App(如健康管理、航空及帮助功能等)。您的 App
应能提供源源不断的编排内容,这样 App 看起才不见面只如是只摆设。

(iii) 在包期限截止后,禁止访问经批准的一定租借内容(例如电影、电视节目、音乐葡京赌场直营官网、图书);所有其他品种劳务不足在逾期时。

(iv) Wallet
凭证可用于付款或接收付款、传输交易可能提供身份验证(例如电影票、优惠券与
VIP 凭据)。如以 Wallet 凭证用作外用途,则可能会见促成 App 被驳回,Wallet
凭据也发出或被撤除。

(v) 保险类 App 必须免费提供,并且要遵从 App
发布地方的连带法规,且不可以 IAP。

(vi)被认可的非营利性组织得一直当祥和之运或第三在用被贷,其前提是所提供的筹款活动要遵守
App 审查指南并支持 Apple
Pay
。相关应用必须透露将何以利用这笔资金,遵守所在国家要地方的法度,并提供方便的税收收据给捐赠者。冲要求提供附加信为采用对。一连捐助者和任何非营利团体的非营利平台要保证每个非营利组织被列有之用还经了非营利组织的审批流程。了解再多——关于批准成为非营利组织。

3.2.2 不可接受

(i) 创建和 App Store 类似且用于展示第三正值
App、扩展功能要插件的界面,或以其当做热门 App 的合集。

(ii) 通过由硬件还是操作系统提供的放置功能(诸如推送通知、照相机或者陀螺仪)或
Apple 服务(如 Apple Music 访问还是 iCloud 存储)获利。

(iii) 人为地刷广告展示次数要广告点进次数之
App,以及要设计目的在于显示广告之 App。

(iv) 获得批准的非性营利组织才会于 App
内为慈善团体同集资金者收集资金。出于以上目的筹集资金的 App 必须以 App
Store 上免费,并不得不在 App之 外筹集,例如通过 Safari 或短信。

(v) 强行限制 App 的用户群,例如限制特定地区或者运营商。

(vi) App
应当允许用户一直得到付费买的种类如不论需执行额外的职责,如在张罗媒体齐发帖、上传通讯录,以及以
App 内签到特定次数等于。App 不得强制要求用户也 App
评级或点评、看看视频、下载其他 App
点击广告、或实行外类操作,然后才能够访问该 App
的功效、内容还是应用该 App、获奖金要另补偿。

(vii)人为地控制用户之可见性、状态或对其他服务的排行,除非该服务之条目及规格允许。

(viii) App Store中莫允上传二首批期权交易的 App。可考虑就此一个 web
应用代替。

4.设计

Apple
客户很强调简洁、雅致、创新都便于使的活,这为亏我们要于 App
Store 上张的。您而尽情提供各种精美设计,但假如惦记获准在 App Store 上揭示
App,至少得满足以下标准。另请求记住,即使在 App
获得特许之后,您为该对那个进行创新,确保 App
功能正常并不停引发新客户与水土保持客户。停止服务要体验下降之 App
随时可能会见从 App Store 中移除。

4.1抄袭者

请求用出你自己之想法。我们懂得你发出温馨的奇思妙想,那么请用它们付诸实际。请不要简单照搬 App
Store 上的红 App,或单独是轻微改动外 App 的称呼或者
UI,就拿该倒为己用。这么做不仅有吸引文化产权侵权索赔的高风险,更会加深在 App
Store 中浏览的难度,并针对性君的开发者同仁来说呢大不公道。

4.2低功能要求

App 应包含功能、内容及 UI,而不仅仅是一个由此重新包装的网站。如果 App
没有啊实用价值、毫无新意或者无太像是一个 App,那它们就是未切合出现于 App
Store 中。如果 App
不可知带持久的玩耍价值,或独自是给人口倍感毛骨悚然,则无从得到特许。如果 App
只是同样首歌或者同一部电影,则答应付出至 iTunes Store。如果 App
只是一样按照图书还是打指南,则承诺交由到 iBooks Store。

4.2.1 App 应该吗实现预期用途要下 API 和框架,并于 App
描述着验证并详情。例如,HomeKit 框架应提供家居自动化服务,HealthKit
则当用于保障正规和健身目的,并集成以“健康”App 中。

4.2.2 除了那些属特定项目的 App 之外,App
不答应只有用于市场营销材料、广告、网络剪报、内容聚合或链接集合。

4.2.3 App 应能独立工作,无需安装任何 App。

4.2.4 以及表面类似的 Apple Watch App
可能会见叫人发困惑,因为用户会认为这些 App
能与各种设备功能(如轻扫、通知及老三正力量栏)配合下。将创意性的年月表现方式作为
App 界面是单好点子(例如,供冲浪者使用的潮汐时钟),但是如果你的 App
与表面过于相像,则恐会见为我们拒绝。

4.2.5 主要为此作 iCloud 和 iCloud Drive 文件管理器的 App
需要包含其他以效益,才会获取特许。

4.3垃圾 App

呼吁不要吧和一个 App 创建多只套装 ID。如果你的 App
针对特定岗位、运动队、大学等存在不同版本,请考虑交由单个 App,并提供 App
内购买为提供差异功能。同时,请避免后续以已生大量类 App
的型下进展付出;App Store 上曾经产生无限多学放屁、打嗝声的
App,以及手电筒和爱经 App。上传大量般版本 App 的开发者会遭 Apple
Developer Program 的开。

4.4扩大功能

托管或包含扩展功能的 App 必须按“App Extension Programming
Guide”或“Safari Extensions Development
Guide”,如果中,还许诺涵盖诸如帮助屏幕与设置界面在内的平名目繁多功能。您该于
App 的市场营销文本中明晰还准确地披露提供什么样扩展功能。

4.4.1 键盘扩展功能还待遵循一些额外的规则。

其必须:

供键盘输入功能(如可输入字符);

提供切换至下一个键盘的方;

当从来不网络连接的景下按会使:

依“App Extension Programming Guide”所述提供数字与十进制键盘类型;

募集用户活动数量才是为精益求精其键盘扩展功能于 iOS 设备上之性。

她不可:

包含市场营销、广告还是 App 内购买;

起先“设置”之外的其余 App;或者

拿键盘按键用于其他行为,例如按停 Return 键来启动相机等。

4.4.2 Safari Extension 必须以 OS X 上之摩登版本 Safari
上运行。它们不可干扰系统和 Safari UI
元素,并毫无会包含恶意还是误导性的情或代码。违背此规则会中 Apple
Developer Program 除名。除了正常干活所必要的网站,Safari Extension
不得要求顾更多网站。

4.4.3 表情贴纸

容贴纸是为“信息”变得再动态、更有趣的绝佳方式,让人们会以更抢眼、有趣、有意义的计发挥自我。无论你的
App
含有表情贴纸扩展,还是你若创建单独的色贴纸包,其情节全不得冒犯用户、造成负面体验还是违反相关法律。

(i) 通常,不相符在 App Store 上颁布之始末为未入放入表情贴纸内。

(ii) 考虑地方敏感性,不要在难以承受或会背离地方法规的国度/地区提供您的表情贴纸包。

(iii) 如果您的神情贴纸含义是理解,请于审备注中附上清晰的认证,从而避免造成审核流程的误工。

(iv) 确保您的神贴纸在公的恋人和亲属以外所有相关性;它们不承诺特定于民用移动、群体还是涉。

(v) 您要对表情贴纸中的情,持有所有必要的著作权、商标权和形象权及授权许可,不得交付任何未经授权的内容。请牢记,您得能以务求时提供可核实的文本。若
App 内含您无权用的色贴纸内容,该 App 将起 App Store
中失除,屡次侵权者将于 Developer Program
中革除。如果您当自己之始末中任何提供商侵权,请在这里提交理赔。

4.5 Apple站点和服务

4.5.1 App 可以运用获批的 Apple RSS Feed,例如 iTunes Store RSS
Feed,但非可知抹除 Apple 站点(如 Apple.com、iTunes Store、App
Store、iTunes
Connect、开发者门户等)的别消息,或是使用是音进行排行。

(i) 在采取你的 App 时,客户可以经 Apple Music API
访问他们之订阅。它的目的是也苹果音乐用户提供简单的乐播放效果。用户须给予
Apple Music
播放的权杖,
连会利用规范媒体控件(如“播放”、“暂停”和“跳了”)来拓展播报;此外,您的
App 不得要求用户通过付款或间接的货币化方式来得到 Apple Music
服务的看权限(如 App
内购买、广告、需要用户信息相当)。毫无下载、上传或启用 MusicKit API
音乐文件的共享,除非 MusicKit 文档中明显允许。

(ii)运用 MusicKit APIs
并无克取代而或许用再行深切或再次复杂的乐集合时所提供的执照。例如,如果你想给您的
App
在某特定的时刻播放特定的歌,或者创造好享用给张罗媒体的音频或视频文件,此时您需一直挂钩版权所有者得他们之准(例如,同步还是改编权)和财力。封面及另外元数据只能用于音乐广播还是播放列表(包括显示App功能的
App Store
屏幕截图),不得在其它营销要广告中使用,而随便需取权利所有者的特定授权。
在你的 App 中集成 Apple Music 服务经常,请务必以
the Apple Music Identity Guidelines。

(iii)做客 Apple Music 用户数量的
App(如播放列表和收藏夹)必须于目的字段中领略地披露此访问权限。
除了支撑还是改进 App 体验之外,收集的其余数据都不足与第三在分享。
该数额或许无见面用于识别用户要设施,或用于固定广告。

4.5.3 不得以 Apple 服务(包括 Game Center
或推送通知等)发送垃圾邮件、进行网络钓鱼,或者往客户发送未经请求的音讯。不得尝试进行搜寻、跟踪、关联、挖掘、获得或动玩家
ID、别名以及经过 Game Center 获得的旁消息。如果如此做,将会晤遭到 Apple
Developer Program 的开除。

4.5.4 App
不可知拿推送通知列为必需条件,并无能够以该功能用于广告、推广要直接销售用途,或者用来发送敏感的民用还是保密信息。

4.5.5 仅盖 Game Center 团队认可的计采取 Game Center 玩家 ID,并不足在
App 中展示或为外第三正出示。

4.6备用 App 图标

App可以显得自定义的图标,例如,来体现运动团队的偏好,其前提是每次变更都是由于用户发起的,而
App 则带有恢复旧图标的安。所有图标版本要跟 App
的内容相关,所有系统资源的变动应一律,以便在装置、通知等中显得的图标与新的
springboard 图标相匹配。
此功能不用于动态、自动或多重变化,例如反映最新的天气信息,日历通知等。

4.7老三正软件

App可以涵盖或运行由第三方开发者提供的代码(如基于 HTML5
的玩耍),只要代码不以信用社或者近似企业的界面中提供,并且使软件(1)是免费的还是购买时采取
App 内购买 (2)仅用正式 WebKit 视图中可用的效能; 您的 App 必须下
WebKit 和 JavaScript Core 运行第三正在软件,不应尝试用原生平台 API
扩展或显到第三在软件;
(3)由开发人员提供,加入了苹果开发者计划,并签定了苹果开发者计划许可协议;
和(4)遵守这些“App 审查指南”的条款(例如,不包令人反感的内容;使用 IAP
解锁特性以及力量)。
您必须依照要求提供你的App的老三着软件以及可用之首家数据的目录。

5.法律

假使 App
向某地方的用户提供,那么就不能不信守该地方的富有法律要求(如果您不极端确定,请和律师联系)。我们知晓这些东西非常复杂,但晓有地方法律,并确保您的
App
能满足所有法律要求,而不仅是下方列出之清规戒律,是您要承担的义务。当然,如果
App 存在唆使、宣传要鼓励犯罪的行事或者明显不负责任的表现,则会于驳回。

5.1隐私

在 Apple
生态系统中,保护用户隐私总是第一要务。您若当拍卖个人数据时小心谨慎,以保证遵守了适用的法和“Apple
Developer Program 许可商榷”中之条目,并满足客户的企。尤其是:

5.1.1 数据搜集与储存

(i) 如果 App
会收集用户信息或用数据,其外得制定隐私政策,并征求用户之许才会收集。这包括(但非压)以下
App:实施 HealthKit 或另正常/医疗技术、HomeKit、键盘扩展功能、Apple
Pay、表情贴纸和 iMessage 扩展功能的 App;包含登录信息之
App;或访问设备上用户数量(例如位置、通讯录、日历等)的 App。

(ii) 如果 App
不分包基于帐户的要职能,请允许用户在非记名的情状下行使。App
不得要求用户提供个人信息才能够健康下,除非个人信息与 App
的核心职能一直相关,或是法律要求时。如果您的中坚 App
功能与特定的应酬网络(如 Facebook、微信、微博或 Twitter
等)不相干,您要提供无需登录要任何类机制的访问权限。调取基本档案信息、分享至社交网络要请对象用
App 等未就是说核心 App 功能。

(iii) 如果开发者开发的 App
试图暗中收集用户密码还是其他用户私人数据,那么该开发者会惨遭 Apple
Developer Program 的开。

(iv)必须采用 SafariViewController
在明显位置为用户显示信息;不得隐藏该控制器,也无可知吃外视图或图层遮挡。此外,未经用户的掌握与同意,App
不得私自动用 SafariViewController 来跟用户。

5.1.2 数据采取以及共享

(i)汝不得试图、促进或鼓励其他人根据你所说之盖“匿名”、“统计”或任何不可识别的计来搜集数据重建用户个人信息。若当无事先获用户之准,并提供有关数据应用方法和采用位置的相干信息,则您不可知下或者传输用户之私房数据。

(ii) App 收集的数额只有在以精益求精与 App
功能有关的用户体验还是软/硬件表现时,或以按部就班“Apple Developer Program
许可商榷”的前提下用于广告投放用途时,才会以还是与第三正在分享。

(iii)从 HomeKit API
收集的数额不得用于投广告或基于使用情况开展其它数挖掘。

(iv)使用 Apple Pay 的 App 只能与第三正共享通过 Apple Pay
获得的用户数量,以拉或者改善商品要劳动之交由。

5.1.3 健康和正规研究

正常、健身与医疗数据特别敏感,涵盖这些领域的 App
必须满足额外的规则,并保证客户隐私受保安:

(i) App
仅会当获得认可的景下,出于改善健康管理还是健康研究的目的,使用以正常、健身及医疗研究背景下收集的数目(包括由
HealthKit
API、“运动以及健身”或正规领域人体研究着搜集之多少)或以那透露为第三着,不得用于广告投放或冲使用状态展开任何数据挖掘。

(ii) App 不得将仿真或者不当数据形容副 HealthKit 或其他任何医疗研究/健康管理
App,不得以 iCloud 中贮存个人健康信息。

(iii) 开展正常领域人体研究的 App
必须得到与人口提供的接头同意写,如果波及未成年,则必须得由该父母或者监护人提供的掌握同意书。上述知情同意书要包含以下内容:(a)
研究的习性、目的与时长;(b) 具体规程,给与人员拉动的高风险与利;(c)
关于保密和数据处理(包括与第三正值共享信息之状)的音;(d)
用于回复与人员问题之联系人;以及 (e) 退出流程。

(iv) 用于进行正常领域人体研究之 App
必须得到同样寒独伦理审查委员会的批准。一经要求,必须提供此类批准的征。

5.1.4 儿童

鉴于多种缘故,您在拍卖孩子之个体数据常常务必小心谨慎。我们建议乃精心看有要求,以本有关法规,如《儿童在线隐私保护法》(“COPPA”)和另国际直达适用的一致法律。

App
只能由遵守适用儿童隐私法之目的要求用户提供出生日期或老人联系信息,但不能不提供一些适用于各个年龄层用户的实用功能或娱乐价值。

此外,“儿童类别”中之
App,以及朝未成年人收集个人信息(例如姓名、地址、电子邮件、位置、照片、视频、图画、能否聊天、其他个人数据,或是将永生永世标识符与上述任何信息做使用)、传输此类消息或者会共享此类信息之
App,则要遵循适用的小不点儿隐私保护法规,且必须有所隐私政策。为了知道起见,“儿童类别”的上下监督要求,通常并无净相同于在这些苦法下征得老人家的允许后采访个人数据。

5.1.5 定位服务

惟有以稳服务与 App 提供的功效及服务一直相关时,才会于 App
中采取固定服务。基于位置的 API
不得用于供迫切服务,不得对汽车、飞机与其余设备开展自主决定(小型设备,如轻量无人机和玩具除外),不得遥控汽车防盗系统等。在收集、传输或应用位置数据之前,务必进行通报并收获用户同意。如果
App 会下后台定位服务,请务必在 App 中证明相应的由来;请参考“Human
Interface Guidelines”,了解相应的超级做法。

5.2学问产权

告确保 App
只包含由你创建或者具备使用许可的情节。如果你已越线并当未经许可的情景下使用了内容,您的
App 可能会见吃移除。当然,这也代表一旦人家抄袭了你的著作,则他们之 App
也或会见叫移除。如果您觉得好的学识产权在 App
Store 上饱受了任何开发者的侵害,请通过网表单提交权利主张。各个国家/地区的法网互不相同,但请务必避免以下常见错误:

5.2.1 一般性:不得在未经许可的景况下,在 App
中以让保障之老三在材料(例如商标、版权作品、专利设计),或于 App
套装中包含虚假、抄袭还是误导性的演示、名称、元数据或开发者名称。应用程序应由所有或早已收获知识产权或者其他相关权利许可的村办或者有关合法人员付出,并背提供该以提供的旁劳动。

5.2.2 第三着站点/服务:如果您的 App
会用、访问第三正在服务、通过拜访第三正服务盈利或显示第三在服务之始末,请确保您收获在该服务的利用条款下进展此类操作的特别批准。如有相应要求,则须提供有关授权。

5.2.3 音频/视频下充斥:App
不得促进非法文件共享,或于尚未得这些资源的明确授权的状态下,提供于第三方来(如
Apple
Music、YouTube、SoundCloud、Vimeo)保存、转换或生充斥媒体资源的能力。视频/音频内容流也产生或触犯使用条款,所以要务必以
App 访问这些劳务前,进行检查。如产生照应要求,则须提供相关文稿。

5.2.4 Apple 背书:不得误导或暗示 Apple 是 App 的来源或供商,或者 Apple
以其他形式表示认可其品质要效益。如果你的 App 被挑选呢“编辑选荐”,Apple
将自动显示相应徽章。

5.2.5 Apple 产品:不得创建与存活 Apple 产品、界面(如
Finder)、App(如 App Store、iTunes Store
或“信息”)或广告主题外观相似或容易混淆视听的 App,请不拼错 Apple
产品的称号(如 Iphone 版 GPS、iTunz)。iTunes
音乐预览内容不得用于其游戏价值(如作为照片拼贴画的背景音乐或嬉戏配音)或其他非落授权的措施。如果
App 显示健身记录圆环,请不要改动到环本身的观感,以及那象征的多寡。“Human
Interface Guidelines”中寓有关如何行使健身记录到环之又多信息。

5.3嬉戏、赌博与彩票

游戏、赌博和彩票的军事管制难度十分,是 App
Store 上面临无比多管理的应用类有。只有完善核实了即将发布您 App
的保有国家/地区的相干法规要求后,才能够包含此功效,并且要善准备这意义的审核流程需要再行增长的时空。您需谨记以下事项:

5.3.1 抽奖及竞技要由 App 的开发者赞助。

5.3.2 抽奖、比赛及抽彩的业内规则必须以 App 中注明,并且要明白表示
Apple 不是赞助者,也从未因其它款式参与运动。

5.3.3 App 不得通过 IAP
购买点数或元,以用来其它项目的实在货币游戏;不得向用户出售彩票还是回落彩券;不得在
App 内进行资金转账。

5.3.4 提供真实货币游戏(例如体育下注、扑克、赌场玩、赛马)或彩票的 App
必须在运用该 App 的地段取得必要的准与许可,且不得不于这些地带宣布,此类
App 在 App Store 中务必免费供。不允在 App
Store 上颁发非法的赌钱辅助工具,包括记牌器。彩票 App
必须来报酬、几率及奖品。

交付后

于 iTunes Connect 中提交 App
和冠数据后,您就便见面进去审核流程。请谨记以下几点:

时间部署:App Review 团队将尽快检查你的
App,而且我们一直以力求缩短审批时间。进一步询问 App Review。

状态更新:App 的脚下状态会反映在 iTunes
Connect 中,所以恳请多注意此处。

事不宜迟请求:要你遇了惨重的时日问题,可以申请增速对。请只有于您真的用加紧对时才提出申请,以便其他开发者的急迫请求不为影响。如果我们发现你滥用此系统,从此之后咱们或许都见面拒绝你的提请。

公布日期:倘若你设定了前途之宣布日期,在此日来之前,即使就沾了
App Review 团队的认可,App 也非会见显在 App
Store 上。请小心,最多或得 24 小时时,您的 App
才能够显得在具备选定的营业所中。

拒绝:咱们的对象是持平、持续地本这些轨道,但是人无完人。如果你的
App 被拒绝,但你有问题,或希望提供任何信息,请动解决方案基本,以和
App Review 团队直接关联。这样好助您的 App
出现在合作社中,也不过帮助我们改进 App Review
流程,并以咱们的政策备受发现用说明的部分。如果您照对结果不合意,请提交申诉。

咱愿意看到你支出还多优秀作品!

*本文由ASO100(国内最为专业的移动加大数据解析平台)专栏撰稿人【小七】原创,转载请联系该平台获得授权,并注明作者和文章来源。