我正在使用一次性Chrome钱包付款为chrome商店开发打包应用。对于我的应用程序,我需要在运行时检查用户是否购买了应用程序,以决定它是演示功能还是完整功能。
根据chrome identity API documentation:
保持应用程序ID不变,您需要复制密钥 将manifest.json安装到源清单。
我对此程序有2个问题:
1)在什么条件下我的申请的ID可能会改变?我试图重新安装应用程序并进行更新,但应用程序ID保持不变..如果无法更改应用程序ID,为什么我需要此程序?
2)如何将包含manifest.json(其中包含“key”字段)的zip存档上传到chrome仪表板?问题是上传者向我抛出错误:
发生错误:无法处理您的商品。
清单中不允许使用关键字段。
答案 0 :(得分:99)
上传到Chrome网上应用店后,您的扩展程序ID已修复,无法再更改。
该ID源自您第一次(或Chrome网上应用店)在.pem
文件中打包扩展程序时创建的.crx
文件。在“解压缩模式”下加载扩展时,会以不可预测的方式自动生成ID。 在开发过程中控制扩展程序ID的唯一方法是在清单文件中设置"key"
字段,作为documentation suggests。
当您已在Chrome网上应用店中发布扩展程序时,您可以使用Chrome Extension Source Viewer轻松获取此"key"
字段的值。安装扩展程序后,转到Chrome网上应用店详细信息页面,然后单击CRX按钮查看来源。当Chrome Extension Source查看器加载了扩展程序时,它将在控制台中显示该键,可以直接将其复制粘贴到manifest.json:
如果您的未发布您的扩展程序,或者您不想使用Chrome网上应用店,则需要先生成私钥。
chrome://extensions/
并启用开发者模式。.pem
文件)!当您准备好将应用/扩展程序提交到Chrome网上应用店时,请按照以下步骤操作:
manifest.json
必须位于根目录,即“directory / manifest.json”不好,“manifest.json”很好)。
key.pem
! 对于后续更新,不应将“key.pem”添加到zip文件中,因为Chrome网上应用店不再需要它。
答案 1 :(得分:9)
希望有人能给出比我更好的答案。当您首次将其上传到网上商店时,Google会生成应用的ID。但是,它与您在本地开发时的ID不同。您的Chrome浏览器使用其他一些机制生成了一些其他ID。
当您从源代码目录本地开发作为解压缩的扩展程序,并且您想要使用chrome web store分配给您的应用程序的ID时,您可以使用"键"在您的清单中并重新加载您的应用程序。这对您有所帮助,因为许多API都希望chrome.runtime.id(您应用的ID)与商店中的应用值相同。你可以留下"键"在你的清单中,它将被忽略。
答案 2 :(得分:0)
对于在使用union = b_elements & d_elements
文件中的键字段加载解压缩的扩展名时遇到问题的任何人。
如果已发布的扩展名在扩展名列表中但已禁用,则将其删除。因为否则您的本地开发扩展将无法加载,并且不会显示任何错误。原因是chrome检测到扩展名中的重复键,而忽略了它。