服务器之家:专注于服务器技术及软件下载分享
分类导航

服务器资讯|IT/互联网|云计算|区块链|软件资讯|操作系统|手机数码|百科知识|免费资源|头条新闻|

服务器之家 - 新闻资讯 - IT/互联网 - 苹果Mac App Store 拒绝使用 Electron 6 (or 7) 开发的应用

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

2019-11-07 11:35开源中国 IT/互联网

近日一名开发者在博客分享了自己提交应用(基于 Electron 7开发的App)到 Mac App Store 的经历。 Electron是一个跨平台桌面应用开发工具,支持使用JavaScript, HTML和CSS等Web技术开发桌面应用。知名开源项目诸如GitHub打造的Atom编辑器和微软打

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

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

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

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

  1. <?xml version="1.0" encoding="UTF-8"?> 
  2. <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"
  3. <plist version="1.0"
  4. <dict> 
  5.   <key>com.apple.security.app-sandbox</key> 
  6.   <true/> 
  7.   <!-- Add entitlements here --> 
  8.     <key>com.apple.security.cs.allow-jit</key> 
  9.     <true/> 
  10.     <key>com.apple.security.cs.allow-unsigned-executable-memory</key> 
  11.     <true/> 
  12.     <key>com.apple.security.cs.allow-dyld-environment-variables</key> 
  13.     <true/> 
  14.     <key>com.apple.security.files.user-selected.read-write</key> 
  15.       <true/> 
  16. </dict> 
  17. </plist> 

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

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

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

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

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

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

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

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

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

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

延伸 · 阅读

精彩推荐