遗传算法中几乎栽不同选项算子及Python实现

官方文档地址

  苹果店应用对指南

前言

本文对遗传算法中之几种选择策略进行了总结, 其中包:

  1. Proportionate Roulette Wheel Selection
  2. Linear Ranking Selection
  3. Exponential Ranking Selection
  4. Tournament Selection

对此每种选择策略本身还使用Python进行了相应的兑现并因放权插件的款式构成进了我所勾画的遗传算法框架GAFT中。对需要动用遗传算法优化问题及上遗传算法的童鞋可以作为参考.

色链接:

  • GitHub: https://github.com/PytLab/gaft
  • PyPI: https://pypi.python.org/pypi/gaft

前言

  非常高兴您能交到宝贵的时日跟生机来支付iOS应用。成千上万的开发者的涉表明,无论由正式技巧还是划得来收入达到,开发iOS应用都是个发义的事体,我们以帮而重新快成,成为中的相同各。这首App
Store Review
Guidlines主要是为帮忙你作明白开发过程遭到见面碰到的有迷惑,加快而提交应用后的审过程。

  我们觉得用不同于书本和歌曲,我们无支持这些。如果你要讨论宗教信仰,那么该去形容书。如果您只要谈论性,那么写书,或者去形容歌,或者去举行一个生理卫生的利用。看起也许出硌麻烦,但咱仍控制App
Store不接受上述内容。记住下边这些大致的基准,会对您抱有帮助:

  • 产生很多娃儿会来号下载应用,而且只有父母们设置了上下管理(事实很多人口未设置),否则孩子辈是休吃其他限制的。所以我们设关注子女辈。

  • 现行商家里发生超越百万之采用。我们无需平等舒缓差劲的施用。一款款不能够提供部分得力的机能还是只是哗众取宠的戏之运,肯定通不了审。

  • 假定您的下相同看就是一个老三片天拼凑出来的事物,或者你只是怀念将一个练手应用上流传商店里,跟朋友秀同样管,那以为拒绝后肯定要hold住(勇敢面对被拒)。我们有巨大盛大的开发者,不指望他们高质量之运叫这些业余创作包围。

  • 咱见面拒绝掉那些有越线内容要作为之下。那么红线是什么吗?恩,有个高级人民法院的审判员就说罢:“等真正看出的时节,我才晓得”。还有,我们相信你越线的早晚,你也会知道的。

  • 咱有一个审委员会,如果您的运被拒绝了,你得当那么上诉。不过你威胁我们要胡乱喷,肯定是被事无补的。

  • 若是您拟哄骗系统(比如:在按过程中举行动作,盗取用户数据,剽窃其他开发者作品,或者刷评级),你的采用会为下线,你的开发者许可为会于撤销。

  • 及时是平等首动态文档,新利用随时都见面带来新的问题,我们呢将制定新的规则。你的下或就是带下一致长条规则。

  最要害的凡,我们充分注重这个平台,并且强调您的作品。我们由衷而始终我们最特别努力创造一个全球最好的阳台,在此间你们可以大展才华,并且可以赚钱养家。看起我们限制了最为多之东西,恩,其实是因,我们对此咱们的用户发郑重承诺,保证他们在apple的装备及保有最佳体验。就如你们为期望的那样。

遗传算法中之抉择算子

遗传算法(genetic algorithms, GAs)是同等种植于适应之启发式搜索算法,
它套达尔文进化论中之“适者生存”的法,
最终赢得优化目标的极其优解。下图描述了一个大概的遗传算法流程:

图片 1

对种群受到待开展配对的物种选择方式来无数,而且选择相同种植适于的选项策略对遗传算法整体性能的震慑将是可怜非常的。如果一个挑算法选择多样性减退,便会导致种群过早的收敛到有的最亮点而无是我们怀念使的全局最可取,也便是所谓的”早熟”。而挑选策略过于分散则会招致算法难以磨灭到无限可取。因此当当下有限接触着我们得进行平衡才能够如遗传算法以同等栽高效之法门没有到全局最可取。

目录

  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. 幼儿类别

GAFT框架中之算子插件

GAFT是我因自己需求开发的一个遗传算法框架,相关介绍的博客可以参见《GAFT-一个运Python实现之遗传算法框架》,《以MPI并行化遗传算法框架GAFT》。该框架提供了插件接口,用户可以经打定义算子以及on-the-fly分析插件来放gaft框架中运行遗传算法流程对目标问题展开优化。

遵照有自不怎么介绍下gaft关于遗传算子相关接口规范,以及编写能用于gaft的算子的编纂方法。

在gaft中遗传算子的编写都是亟需继续框架内置的基类,然后因基类提供的接口,实现团结的算子。其中基类的概念都以/gaft/plugin_interfaces/operators/目录下,下面我因为选择算子为例,介绍下接口。

gaft中挑选算子的基类为GASelection,其中在遗传算法流程中见面调用该类实例的select艺术,进而根据算子中的相关选择策略形成由种群受到精选一对准物种作为爸爸与妈妈有后。基类的概念也:

 

 

 

 

 

 

Python

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class GASelection(metaclass=SelectionMeta):
    ”’
    Class for providing an interface to easily extend the behavior of selection
    operation.
    ”’
    def select(self, population, fitness):
        ”’
        Called when we need to select parents from a population to later breeding.
        :param population: The current population.
        :type population: GAPopulation
        :return parents: Two selected individuals for crossover.
        :type parents: Tuple of tow GAIndividual objects.
        ”’
        raise NotImplementedError

select的方的参数为当下种群population暨对应的适应度函数fitness,其中population需要是GAPopulation对象,fitness也非得是callable的目标。

自然,这些在Python这种动态类型语言中貌似看起有些鸡肋,但是为了能更为正规使用者,我行使Python的元类在实例化类对象的早晚对接口的落实和接口的参数类型加以限制。具体的兑现还当/gaft/plugin_interfaces/metaclasses.py遭逢,有趣味之童鞋可以看看实现方式。

切切实实于定义算子的编方法本身拿当生部分同选择策略一起贴出来。

1. 章和准

  1.1 为App
Store开发顺序,开发者必须遵循Program License
Agreement (PLA)、人机交互指南(HIG)以及开发者和苹果签订之旁协议和合同。以下规则与演示旨在救助开发者的程序能够取App
Store的承认,而非是改或者去任何其它协商被的条文。

今非昔比之精选策略

本有自第一对四栽不同的选取策略进行总结并加以gaft插件形式之Python实现。

选料算子决定了怎样个体以会晤自种群受到为选择下用于繁衍下一致代种群被之初个体。其重要的口径就是是:

the better is an individual; the higher is its chance of being a
parent

慎选算子在遗传算法迭代中将适应度函数引入进来,因为服度函数式标定一个民用是否足够“好”的基本点标准。但是选择经过还要非能够只是完全依靠让适应度函数,因为一个种群受到之极致出彩物种并不一定是在全局最亮点附近。因此我们呢应当让相对来说并那么“好”的私有一点机给他俩滋生后代,
避免“早熟”。support by 漳州叉车

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程序要休经过修改就会当IPad上同意,支持一般iPhone分辨率和2倍增 iPhone
3GS之分辨率。

  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,基于购买或促销的目的而显示外以之运用将会见叫拒绝,除非是经特殊核(比如常规管理、航空以及可访问性等)或者为一些用户提供所有重大意义附加值的以。(此前呢“苹果拒绝具有以下行为的动:展现、推广他人以;推广和App
Store现有应用极为相似之采取”)

  2.26
应用程序可以展示和推荐具有特定需要的采用集合(比如常规管理、航空及可访问性等)或为一个一定群体之客户提供了重要的附加价值之运,否则将被拒。

Proportionate Roulette Wheel Selection

此轮盘赌选择策略,是最好中心的挑三拣四策略之一,种群受到之私家受选中的票房价值与私家相应的适应度函数的值成正比。我们要用种群受到拥有私的适应度值进行劳动加然后归一化,最终经任意数对随意数到手于的区域对应之个体进行精选,类似赌场中的旋的轮盘。

图片 2

每个个体ai被入选的几率为:

图片 3

好了,下面可以拿这个算法写成一个得gaft中执之算子。

 

 

 

 

 

Python

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
from random import random
from bisect import bisect_right
from itertools import accumulate
 
from …plugin_interfaces.operators.selection import GASelection
 
class RouletteWheelSelection(GASelection):
    def __init__(self):
        ”’
        Selection operator with fitness proportionate selection(FPS) or
        so-called roulette-wheel selection implementation.
        ”’
        pass
 
    def select(self, population, fitness):
        ”’
        Select a pair of parent using FPS algorithm.
        ”’
        # Normalize fitness values for all individuals.
        fit = [fitness(indv) for indv in population.individuals]
        min_fit = min(fit)
        fit = [(i – min_fit) for i in fit]
 
        # Create roulette wheel.
        sum_fit = sum(fit)
        wheel = list(accumulate([i/sum_fit for i in fit]))
 
        # Select a father and a mother.
        father_idx = bisect_right(wheel, random())
        father = population[father_idx]
        mother_idx = (father_idx + 1) % len(wheel)
        mother = population[mother_idx]
 
        return father, mother

经过要分为下几乎只:

  1. 继承GASelection
  2. 实现select方法
  3. select的参数为GAPopulation实例和适应度函数
  4. 据悉算法选择发生个别单需要繁衍的种并返即可

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都使处在正常运行状态,例如保密协议及系支撑页面等。

  3.13
应用截图及行销文本没有明白标识需要独自买(如使用IPA)的类型或上内容之施用会让拒。

Tournament Selection

由算法执行之效率以及爱实现的之特色,锦标赛选择算法是遗传算法中极盛行的抉择策略。在我的其实行使中确是政策比基本的轮盘赌效果要好些。他的政策也不行直观,就是我们再度整个种群受到抽取n个个体,让他俩开展竞争(锦标赛),抽取其中的最地道的私房。参加锦标赛的私房个数成为tournament
size。通常当n=2便是最常使用的轻重,也如作Binary Tournament
Selection.

Tournament Selection的优势:

  1. 还粗的复杂性度O(n)
  2. 轻并行化处理
  3. 正确陷入有最亮点
  4. 非需要针对有的适应度值进行排序处理

生图显示了n=3的Tournament
Selection的历程:

图片 4

可开写成自定义算子在gaft运行了:

 

 

 

 

 

 

 

Python

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from random import sample
 
from …plugin_interfaces.operators.selection import GASelection
 
class TournamentSelection(GASelection):
    def __init__(self, tournament_size=2):
        ”’
        Selection operator using Tournament Strategy with tournament size equals
        to two by default.
        ”’
        self.tournament_size = tournament_size
 
    def select(self, population, fitness):
        ”’
        Select a pair of parent using Tournament strategy.
        ”’
        # Competition function.
        complete = lambda competitors: max(competitors, key=fitness)
 
        # Check validity of tournament size.
        if self.tournament_size >= len(population):
            msg = ‘Tournament size({}) is larger than population size({})’
            raise ValueError(msg.format(self.tournament_size, len(population)))
 
        # Pick winners of two groups as parent.
        competitors_1 = sample(population.individuals, self.tournament_size)
        competitors_2 = sample(population.individuals, self.tournament_size)
        father, mother = complete(competitors_1), complete(competitors_2)
 
        return father, mother

 

4. 位置

  4.1
在征集、传输或采用位置数据之前不通并得到用户同意的次序将会见叫驳回。

  4.2
使用基于位置的API来机关控制车辆、飞机或另装置的应用程序将会见于拒。

  4.3
使用基于位置的API用于应急服务的次序用会见叫拒。

  4.4
位置数据只能用来采取直接提供的连锁职能还是服务,或者有授权的广告。

Linear Ranking Selection

下两只介绍的挑选策略都是基于排序的精选策略,上面提到的首先种植基本轮盘赌选择算法,有一个瑕疵,就是设一个个体之服度值为0的口舌,则被入选的几率将会见是0,
这个个体以无能够来后。于是我们得一致种基于排序的算法,来吃每个个体安排相应的当选概率。

在Linear Ranking
Selection中,种群受到之私房首先冲适应度的值进行排序,然后让持有民用与一个序号,最好的村办为N, 被入选的几率也Pmax, 最差之个体序号为1, 被入选的几率也Pmin,于是其他的以他们当中的私房之概率就可以依据如下公式得到:

图片 5

兑现代码:

 

 

 

 

 

 

 

Python

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
from random import random
from itertools import accumulate
from bisect import bisect_right
 
from …plugin_interfaces.operators.selection import GASelection
 
class LinearRankingSelection(GASelection):
    def __init__(self, pmin=0.1, pmax=0.9):
        ”’
        Selection operator using Linear Ranking selection method.
        Reference: Baker J E. Adaptive selection methods for genetic
        algorithms[C]//Proceedings of an International Conference on Genetic
        Algorithms and their applications. 1985: 101-111.
        ”’
        # Selection probabilities for the worst and best individuals.
        self.pmin, self.pmax = pmin, pmax
 
    def select(self, population, fitness):
        ”’
        Select a pair of parent individuals using linear ranking method.
        ”’
        # Individual number.
        NP = len(population)
        # Add rank to all individuals in population.
        sorted_indvs = sorted(population.individuals, key=fitness, reverse=True)
 
        # Assign selection probabilities linearly.
        # NOTE: Here the rank i belongs to {1, …, N}
        p = lambda i: (self.pmin + (self.pmax – self.pmin)*(i-1)/(NP-1))
        probabilities = [self.pmin] + [p(i) for i in range(2, NP)] + [self.pmax]
 
        # Normalize probabilities.
        psum = sum(probabilities)
        wheel = list(accumulate([p/psum for p in probabilities]))
 
        # Select parents.
        father_idx = bisect_right(wheel, random())
        father = population[father_idx]
        mother_idx = (father_idx + 1) % len(wheel)
        mother = population[mother_idx]
 
        return father, mother

 

5. 推送通知

  5.1
不采用苹果推送通知 (APN)API提供推送通知之次将会晤受拒。

  5.2
未打苹果获得Push Application
ID便随意动用APN服务之次第将会晤为拒。

  5.3
在首蹩脚推送消息之前不得到用户同意的运用将会晤受拒绝。

  5.4
使用推送通知发送敏感个人信息或机密信息的次第用会晤为拒绝

  5.5
使用推送通知发送主动消息还是用于钓鱼或群发垃圾邮件用途的主次将会晤被驳回

  5.6
应用程序不可下推送通知发送广告、促销或其他项目的直销信息。

  5.7
应用程序不克于以推送通知服务的用户收到费用。

  5.8
使用推送通知会见了多应用APN服务的网络流量或带富或为配备带来过度负担之先后用见面吃拒绝

  5.9
如果应用程序传送病毒、文件、计算机代码或程序,并且针对APN服务的健康运行造成伤害或者暂停,那么该次用会晤为拒绝。

Exponential Ranking Selection

接近上面的Linear
Ranking选择策略,这种指数排序虽是以确定每个个体的选取概率的上用了指数形式的表达式,
其中c为底数,满足0<c<1:

图片 6

实现代码:

 

 

 

 

 

 

 

Python

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
from random import random
from itertools import accumulate
from bisect import bisect_right
 
from …plugin_interfaces.operators.selection import GASelection
 
class ExponentialRankingSelection(GASelection):
    def __init__(self, base=0.5):
        ”’
        Selection operator using Exponential Ranking selection method.
        :param base: The base of exponent
        :type base: float in range (0.0, 1.0)
        ”’
        if not (0.0 < base < 1.0):
            raise ValueError(‘The base of exponent c must in range (0.0, 1.0)’)
        self.base = base
 
    def select(self, population, fitness):
        ”’
        Select a pair of parent individuals using exponential ranking method.
        ”’
        # Individual number.
        NP = len(population)
        # NOTE: Here the rank i belongs to {1, …, N}
        p = lambda i: self.base**(NP – i)
        probabilities = [p(i) for i in range(1, NP + 1)]
        # Normalize probabilities.
        psum = sum(probabilities)
        wheel = list(accumulate([p/psum for p in probabilities]))
        # Select parents.
        father_idx = bisect_right(wheel, random())
        father = population[father_idx]
        mother_idx = (father_idx + 1) % len(wheel)
        mother = population[mother_idx]
        return father, mother

 

6. 游戏为主

  6.1
向终极用户或随意第三着出示玩家ID的次用会见叫驳回

  6.2
将玩家ID用于其它未经游戏为主条款批准用途的次第用见面于拒绝

  6.3
试图进行反朝搜索、跟踪、描述、关联、挖掘、获得或使用玩家ID、别名或通过游戏为主取得任何信息的开发者将见面吃iOS开发者计划除名。

  6.4
游戏中心消息(例如排行榜分数)只能通过玩为主用于采取中。

  6.5
利用游玩为主服务发送主动信息还是用于钓鱼或群发垃圾邮件的以将会晤为驳回

  6.6
使用游戏为主过多占用网络流量或带宽的下将会给驳回

  6.7
如果程序传送病毒、文件、计算机代码或程序,并且针对娱乐中心服务的健康运行造成损伤或者刹车,该次用见面吃驳回

总结

本文对于遗传算法中四种植不同之精选策略进行了介绍与总,同时于本文所形容的遗传算法框架的自定义算子接口进行了大概的介绍,针对本文中之取舍策略分别因接口的要求贯彻了相应的算子,这些算子也作GAFT框架的放开算子放入到GAFT中,对于下GAFT的童鞋可以一直用来利用。

7. 广告

  7.1
人工刷广告浏览量或者广告点击率的应用程序将会晤为驳回

  7.2
包含空iAd广告之应用程序将会见于拒

  7.3
主要设计目的在显示广告之应用程序将见面被拒

参考

  • Shukla, Anupriya, Hari Mohan Pandey, and Deepti Mehrotra.
    “Comparative review of selection techniques in genetic algorithm.”
    Futuristic Trends on Computational Analysis and Knowledge Management
    (ABLAZE), 2015 International Conference on. IEEE, 2015.

8. 商标及商品外观

  8.1
应用程序必须遵循“Guidelines for Using Apple
Trademarks”和“Apple
Trademark
List”中证明的兼具条条框框及标准。

  8.2
任何误导和暗示苹果店是拖欠应用程序来源或供商,或者苹果商店因为其他形式表示认可其品质要效益的应用程序将会让驳回。

  8.3
与时已起苹果产品或广告主题外观般或歪曲的应用程序将会给拒绝。

  8.4
在应用程序名称中将苹果产品号称拼错的应用程序(例如,GPS for
Iphone,iTunz)将会让拒

  8.5
使用被保障的老三正资源(商标、版权、商业秘密、其他个人内容)在提请时得提供平等客文件形式的行使授权。

9. 媒体内容

  9.1
不下媒体播放器框架(MediaPlayer Framework)获取Music
Library中媒体内容之应用程序将见面吃驳回。

  9.2
用户界面模仿任何iPod界面的应用程序将会给拒。

  9.3
通过蜂窝网络传输的音频流内容不得超5MB或5分钟。

  9.4
通过蜂窝网络传输超过10分钟之视频流内容需动用HTTP Live
Streaming,并蕴藏一个基线为64kbps的音频HTTP Live Streaming。

10. 用户界面

  10.1
应用程序必须信守《Apple iOS Human Interface
Guidelines》中所有的条规和极。(以前版本描述为:应用程序必须遵守苹果《iPhone用户界面指导标准》以及《iPad用户界面指导规范》中之兼具条条框框及原则。)

  10.2
外观以及iPhone的自带应用(比如App Store、iTunes
Store和iBookstore)相似之采用将会见叫驳回。

  10.3 未能按《Apple
iOS Human Interface
Guidelines》中之叙说是行使系统提供的控件(比如按钮、图标)的用将会晤受驳回。(以前版本描述为:未能按照苹果《iPhone用户界面指导规范》及《iPad用户界面指导原则》所陈述,正确行使系统自带的按钮、图标等档次的应用程序可能会见吃拒。)

  10.4
创建多桌面/主屏幕环境还是拟multi-App插件体验的应用程序将见面被驳回。

  10.5
修改音量大小及铃声/静音开关等标准开关功能的应用程序将会晤为驳回。

  10.6
Apple和咱们的用户高度强调简单、精致、富有创造性和通过精心设计的界面。虽然如此要交再多,但却百般值得。Apple在即时上面要求特别高。如果您的用户界面最过复杂或者水准不强,可能会见给拒。

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
含有已超越限定时间的情还是服务的下软件将会晤为驳回,除非通过审查的内容(比如电影、电视节目、音乐、书籍)。(上只版描述为:含有已超越限制时间之“出租”内容或劳动的施用软件用见面被驳回)

  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
应用软件可应用得授权的Apple RSS,例如iTunes Store RSS。

  12.3
简单的网页裁剪、内容结合或链接收集之应用程序可能会见吃驳回。

13. 误设备

  13.1
任何怂恿用户做出可能损坏Apple设备的作为之利用会让驳回。

  13.2
快速耗光设备电量或来过多热量的运用软件将会见给拒绝。

  13.3
任何可能造成身体及的伤害的以或会见叫拒。

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
应用程序收集、传输和享受未成年用户个人信息(比如名、地址、邮件、位置、照片、视频、绘画、聊天与另个人数据,或者与上述所述相关的永久性标示符)必须遵守应用儿童隐私法。

18. 色情

  18.1
含有色情资料,也即是《韦氏词典》中定义的“旨在鼓舞性欲,对性器官或性行为之醒目描述或显示,而无关美学或情绪感受”的次第将会给驳回。

  18.2
经常有用户提供色情内容之应用程序(比如原先的Chat
Roulette程序)将会让拒绝。

19.教,文化以及种族

  19.1
涉及宗教、文化或种族群体的援或臧否包含诽谤性、攻击性或者小内容,或会如特定群体被损害或武力之应用程序将会见叫拒。

  19.2
程序可以分包或引用宗教经文,程序所提供的援或翻译要规范且无见面挑起误导。评论应该出教育意义,可以令人开阔眼界,而无该煽动性。

20. 赛、抽奖、奖券、抽奖及博

  20.1
赌博跟竞技必须由应用程序的开发者或者app所属公司帮。

  20.2
应用程序必须出示赌博和比的法定条款,并声明Apple不是发起者,也从不因为另外方法介入运动。

  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秋。

动态文档

  这卖文档展现了咱于竭尽所能向你分享我们对交付到App
Store的程序的核对方式,我们期待而当支付和提交程序时,这卖指南能对您拥有帮助。这是一致卖动态文档,随着初程序和初景象的产生会拥有扭转。我们见面定期更新,以反映这些变化。

  感谢你与到iOS的支付被来。虽然这文档是同一份“禁止事项”的列表,但为请以那份短得差不多的“必做事情”列表牢记在心。最根本之是,加入我们便是使给用户带来惊喜与恺。把世界因此最有新意的法门展示让他们,让他们以史无前例的方相互。根据我们的更,用户真正会指向效益以及界面上的改进有所影响。进一步改善而的创作,带吃用户超过期望的体验,带被用户前所未有的体会,我们以扶持您得就通。

参考资料

  App Store Review
Guidelines翻译版