山东快3精准预测网 江西快3跨度怎么算 吉林快3人工预测 大发三分彩玩法 大发幸运pk10开奖 陕西快3遗漏号码查询 一分快三代理 大发三分快3 上海快3计划软件 广西快3用什么软件预测 福建快3用什么软件预测 甘肃快3大小如何计算 天津快3哪个平台正规 河南快3多久一期 云南快3官方计划网 大发二分快3平台 大发5分彩注册 江西11选5网址 河南快3第一期几点 北京快3点数计划 河北快3点数计划 山东快3独胆计划 山西快3app 极速3d彩开奖 山东快3全天计划 重庆快3独胆计划 广东11选5代理 大发代理官网 大发2分彩规则 大发分分快3代理

内容字号:默认大号超大号

段落设置:取消段首缩进段首缩进

字体设置:切换到微软雅黑切换到宋体

业界资讯软件之家
Win10之家WP之家
iPhone之家iPad之家
安卓之家数码之家
评测中心智能设备
精准搜索请尝试:精确搜索

苹果Mac App Store 拒绝使用 Electron 6 (or 7) 开发的应用

2019/11/7 8:02:34来源:开源中国作者:局长责编:骑士评论:

近日一名开发者在博客分享了自己提交应用(基于 Electron 7 开发的App)到Mac App Store的经历。

Electron是一个跨平台桌面应用开发工具,支持使用JavaScript, HTML和CSS等Web技术开发桌面应用。知名开源项目诸如GitHub打造的Atom编辑器和微软打造的Visual Studio Code编辑器均使用Electron开发。

由于此应用不是采用原生开发的应用,所以这位开发者为了能成功将应用提交并通过Mac App Store的审核,他根据网络上的教程采用了 Electron-Packager对应用进行打包。

不过开发者在按照教程操作后,却发现苹果的审核回复称无法打开所提交的文件。他判断是审核者无法打开来自elektro编辑器的文件(elektro 是开发者提交的应用),因为他没有添加用户读取和写入的权限。经过以下的调整后,他再次提交了应用。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
  <key>com.apple.security.app-sandbox</key>
  <true/>
  <!-- Add entitlements here -->
    <key>com.apple.security.cs.allow-jit</key>
    <true/>
    <key>com.apple.security.cs.allow-unsigned-executable-memory</key>
    <true/>
    <key>com.apple.security.cs.allow-dyld-environment-variables</key>
    <true/>
    <key>com.apple.security.files.user-selected.read-write</key>
      <true/>
</dict>
</plist>

然而经过调整后再次提交依旧没有通过审核。对此,开发者表示一脸茫然。接着,他又提交了一款基于Electron名为 trommel 的应用。结果又是意料之中被拒绝了,不过这次却意外地收到了不同于之前的原因:

可以看到,苹果之拒绝这款应用是因为它使用了私有框架(non-public framework)。作者不是唯一一名遇到此问题的人,于是他向苹果反馈自己目前正在使用Electron开发应用,但不能更改任何这些私有框架的用法。

苹果对此的回应是,当提交的应用使用或引用了私有API就会被拒绝。如果开发者无权访问二进制文件或不确定如何删除有问题的API,请与服务提供商联系以获取技术支持。重点来了,被拒绝后,如果后面继续提交此应用时出现使用或隐藏私有API的情况,可能会导致Apple Developer帐户被禁用,并从App Store中删除所有关联的应用程序。

而这位开发者目前面临的情况是:由于调用这些API属于 Electron框架的行为,并非应用执行的,而且Electron框架使用这些API已经有好几年了。但由于近期苹果更新了服务端的应用审核流程,能检测和识别出这些违反其应用审核规定的私有API,最后导致开发者的应用无法通过审核。

苹果的这次举动不禁让人回想起当年对一些使用热更新框架的应用的“警告”。

当时苹果向所有开发者推送警告邮件,宣布未来将禁用APP内部的“动态分发”功能,并要求开发者在自家APP中删除JSPatch相关框架,否则APP将面临下架或禁止上架。

结合此次的事件来看,其实这一切都十分符合苹果的一贯作风——让所有事情可控、保证安全。开发者能用什么不能用什么都尽量在自己的控制范围内。大多数开发者使用热更新框架修复bug,或者弄一些临时的小功能配置,这些没有问题,但总会有少数开发者借此去调用私有API以实现某些不当企图,这正是苹果不可控的。

因此在此次事件中,我们也就不难理解苹果为何会严厉禁止调用私有API的应用。

相关文章

关键词:App StoreMacElectron

IT之家,软媒旗下科技门户网站 - 爱科技,爱这里。

Copyright (C)RuanMei.com, All Rights Reserved.

软媒公司版权所有