如何更改chrome封装的应用程序ID或者为什么我们需要manifest.json中的关键字段?
我正在使用一次性钱包支付为Chrome商店开发打包的应用程序。 对于我的应用程序,我需要在运行时检查用户是否购买了应用程序,或者不要决定它是演示function还是全function。
根据Chrome 身份validationAPI文档 :
要保持应用程序ID不变,您需要将已安装的manifest.json中的密钥复制到源代码清单。
我有两个关于这个程序的问题:
1)在什么条件下我的应用程序的ID可能会改变? 我试图重新安装应用程序,并作出更新,但应用程序ID保持不变。如果没有办法改变应用程序ID比为什么我需要这个程序?
2)我怎样才能上传我的zip存档与manifest.json(其中包含“键”字段)铬仪表板? 问题是,上传者向我抛出一个错误:
发生错误:无法处理您的项目。
清单中不允许键字段。
上传到Chrome网上应用店之后,您的扩展程序ID已修复,无法再进行更改。
该ID源自首次(或Chrome网上应用店)在.crx
文件中打包扩展名时创build的.pem
文件。 当您以“解包模式”加载扩展程序时,将以不可预知的方式自动生成一个ID。 在开发过程中控制扩展ID的唯一方法是通过在清单文件中设置"key"
字段,如文档所示 。
当您在Chrome网上应用店中发布了扩展程序后,您就可以使用Chrome扩展程序源代码查看器轻松获取此"key"
字段的值。 安装扩展程序后,请转至您的Chrome网上应用店详细信息页面,然后单击CRXbutton查看源代码。 Chrome扩展程序源代码查看器加载了扩展程序后,它将在控制台中显示该密钥,该密钥可以直接复制粘贴到您的manifest.json中:
如果您尚未发布扩展程序,或者您不想使用Chrome网上应用店,则需要先生成私钥。
- 转到
chrome://extensions/
并启用开发人员模式。 - 点击“打包扩展…”,select你的应用/扩展的目录并确认。
现在你已经有一个.crx文件和一个.pem文件。 备份私钥(.pem
文件)! - 所提到的扩展可以用来获得相同的信息。 也可以通过https://robwu.nl/crxviewer/访问在线演示,然后select刚创build的crx文件(再次打开控制台查看“密钥”和扩展名)。;
准备好将您的应用/扩展程序提交到Chrome网上应用店后,请按以下步骤操作:
- 创build一个包含你的扩展名的zip文件(重要的是:
manifest.json
必须在根目录下,即“directory / manifest.json”不好,“manifest.json”是好的)。- 将.pem文件添加为
key.pem
!
(这是保留扩展ID所必需的)
- 将.pem文件添加为
- 将扩展程序上传到Chrome网上应用店( 没有manifest.json中的“密钥”字段 ,CWS将拒绝包含“密钥”字段的任何上传)。
对于后续更新,不应将“key.pem”添加到zip文件,因为Chrome网上应用店不再需要它。
希望有人能给我一个比我更好的答案。 当您第一次将其上传到网上商店时,应用的ID由Google生成。 但是,这与当地开发人员的ID不同。 你的Chrome浏览器使用其他机制生成了一些其他的ID。
当您从源代码目录作为解压缩扩展名在本地进行开发时,如果要使用Chrome网上应用店为您的应用分配的ID,请将“密钥”放在清单中,然后重新加载应用。 这可以帮助你,因为许多API期望chrome.runtime.id(你的应用程序的ID)与商店中的应用程序的值相同。 您可以将“钥匙”留在您的清单中,它将被忽略。