杀鸡儆猴!苹果撤销Facebook的iOS企业证书

因Facebook违规收集用户数据,苹果撤销其iOS企业开发者证书,阻止内部应用分发。此举旨在保护用户隐私。

据外媒报道,自2016年以来,Facebook每个月向13至35岁的用户支付20美元的费用以让他们下载一款名为Facebook Research VPN的应用程序,并收集他们的个人数据如历史、位置信息等,这违反了苹果与Facebook之间的协议。为此,苹果决定撤销Facebook的iOS企业开发者证书,这意味着Facebook的iOS应用程序将不能通过内部的形式进行分发。

iOS企业开发者证书能做什么?

从2018年10月开始,苹果要求所有更新的或新的iOS应用都将需要符合隐私政策,隐私政策的其中一条是必须指明app/服务所收集的数据(若有)、收集数据的方式,以及这些数据的所有用途。像Facebook这款应用收集用户个人数据的行为肯定被禁止,而且是无法上线App Store的。

但上有政策,下有对策,苹果有一个企业开发者项目(Enterprise Developer Program),主要针对内部测试的大公司,苹果与其签署相关协议,给予iOS企业开发者证书,iOS企业开发者证书也称为In-House证书,用于In-House应用,这种应用只在企业部门和员工内部使用,不对外公开,不能上传到App Store售卖或供用户下载,也就不需要经过苹果的审核,具有In-House证书的应用,通过一个URL,用户即可下载安装,开发者也能根据需求随时修改,在测试和分发时,为开发者带来了极大的便利。

而Facebook就是通过这种方式,规避了苹果的审核,以“不正当”的方式获取了用户隐私。对此苹果官方发言人表示:

设立企业开发者项目的最初目的仅是为了让企业内部分发应用程序,但Facebook却一直利用其会员的身份向消费者分发应用并收集数据,这明显违反和苹果之间的协议。任何使用企业开发者证书向消费者分发应用程序的开发人员都会被撤销其证书,这是我们为保护用户数据安全能做的事情。

撤销证书后,Facebook不仅不能再分发这款App,也不能通过企业开发者项目分发其他应用,当然,Facebook在App Store上线的应用不受影响。

据了解,Facebook不是第一个违反苹果这项规定的企业,Google曾有一个名为Screenwise Meter的应用,该应用与Facebook Research分发的方式相似,现已经被苹果禁止使用,原因是Google邀请18岁及以上用户通过企业开发者证书的特殊代码和注册流程下载应用程序,之后,Google发表道歉声明,并在iOS设备上停止了该应用。

国内开发者需要注意什么?

从这件事情中,我们看出苹果从巨头企业开始整顿滥用企业证书的行为,有杀鸡儆猴的意味,苹果接下来可能在这方面加大审查,严厉打击。众所周知,在国内,也有很多滥用或通过购买企业证书打包非法App的行为,希望在当下,大家不要挑战苹果的底线,否则很容易滚入苹果的刀口下。

参考链接

https://www.theverge.com/2019/1/30/18203551/apple-facebook-blocked-internal-ios-apps

更多内容,请关注前端之巅。

\"\"

【源码免费下载链接】:https://renmaiwang.cn/s/qqeui ### Python通过Matplotlib生成复合饼图在数据分析与可视化领域,图表是一种强大的工具,能够帮助我们更好地理解数据、发现模式并做出决策。其中,饼图因其直观性而在展示部分与整体的关系时尤为常见。然而,在某些情况下,单一的饼图可能无法完全展现复杂的数据结构或层级关系。这时,复合饼图(也称为嵌套饼图或多层饼图)就派上了用场。#### 复合饼图的概念复合饼图是一种特殊的饼图形式,它将一个或多个较小的饼图嵌入到一个较大的饼图中,以此来表示数据的不同层次或类别。这种图表非常适合用来展示多层次的数据结构,比如市场份额中的细分市场占比等。#### Matplotlib简介Matplotlib是一个用于Python的2D绘图库,它可以生成各种类型的图表,包括线图、柱状图、散点图、饼图等。由于其高度的自定义能力和灵活性,Matplotlib成为了数据科学家和工程师们进行数据可视化的主要工具之一。#### 使用Matplotlib绘制复合饼图下面我们将详细介绍如何使用Matplotlib库在Python中生成复合饼图。1. **导入必要的库** ```python import matplotlib.pyplot as plt from matplotlib.patches import ConnectionPatch ```2. **创建画布和子图** 在复合饼图中,通常会有一个主饼图和一个或多个子饼图。因此,我们需要创建一个包含这些子图的画布。 ```python fig = plt.figure(figsize=(9, 5.0625)) ax1 = fig.add_subplot(121) # 主饼图所在的子图 ax2 = fig.add_subplot(122) # 子饼图所在的子图 fig.
【源码免费下载链接】:https://renmaiwang.cn/s/u0npk 在Java程序设计语言中,将字符串内的字符按字母顺序重新排列是一种常见的操作,在处理文本数据或需要对字母顺序进行排序的场景中尤为常见。本节内容将详细讲解如何实现这一功能。由于Java字符串结构固定,无法对其进行后续更改,因此在对字符串中的字符进行排序时必须采取特殊方式。为达到排序目的,我们需要理解以下关键点:首先,Java字符串是不可变对象,默认由`String`类创建;其次,在这种类型下无法直接修改原有内容,因此实现字符排序需要通过构造新的字符串对象来完成。 具体步骤如下: 1. **转换字符数组**:利用`toCharArray()`方法将原始字符串转换为可操作的字符数组。 2. **排序字符数组**:调用`Arrays.sort()`方法对上述生成的字符数组进行排序,默认按Unicode值排列,对于a-z范围内的字母顺序与Unicode排序一致。 3. **构造新字符串**:通过`new String(charArray)`或`String.valueOf(charArray)`将已排序的字符数组转换为新的字符串对象。 以下示例代码展示了这一操作的具体实现: ```javaimport java.util.Arrays;public class Zifuchuan { public static void main(String[] args) { String originalStr = "java 字符串a-z排序"; // 步骤1:将字符串转换为字符数组 char[] chars = originalStr.toCharArray(); // 步骤2:对字符数组进行排序 Arrays.sort(chars); // 步骤3:构建新的排序后的字符串 String sortedStr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

2名名名名名名名名名名名名名名名名名名名

谢谢啊011702

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值