歡迎您光臨本站 註冊首頁

Mac App Store 拒絕使用 Electron 6 (or 7) 開發的應用

←手機掃碼閱讀     admin @ 2019-11-07 , reply:0

近日一名開發者在博客分享了自己提交應用(基於 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,最後導致開發者的應用無法通過審核。

蘋果的這次舉動不禁讓人回想起當年對一些使用熱更新框架的應用的「警告」。

09072821_bMAG.jpg

當時蘋果向所有開發者推送警告郵件,宣布未來將禁用 APP 內部的「動態分發」功能,並要求開發者在自家 APP 中刪除 JSPatch 相關框架,否則 APP 將面臨下架或禁止上架。

結合此次的事件來看,其實這一切都十分符合蘋果的一貫作風 —— 讓所有事情可控、保證安全。開發者能用什麼不能用什麼都盡量在自己的控制範圍內。大多數開發者使用熱更新框架修復 bug,或者弄一些臨時的小功能配置,這些沒有問題,但總會有少數開發者藉此去調用私有 API 以實現某些不當企圖,這正是蘋果不可控的。

因此在此次事件中,我們也就不難理解蘋果為何會嚴厲禁止調用私有 API 的應用。


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/111141/cannot-submit-an-electron-app-to-the-mac-app-store
Mac App Store 拒絕使用 Electron 6 (or 7) 開發的應用已經有317次圍觀

http://coctec.com/news/all/show-post-218856.html