V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
ransixi
V2EX  ›  分享创造

🚨 插件差点被下架:我踩了 Chrome Web Store 的一条“红线”

  •  2
     
  •   ransixi · 1 天前 · 1171 次点击

    VidPilot 最近一直没有发布新的版本,因为在憋个大招,做积分系统和接入 Strip 平台。满怀欢喜 Coding 完之后,提交 Chrome Web Store 审核,早上打开邮件,发现被拒绝了

    踩了 Chrome Web Store 红线

    拒绝的理由:Manifest V3 产品包含远程托管代码。

    包含远程托管代码,这是在各大应用平台( Chrome Web Store\App Store )都是明令禁止,相当于红线,昨天还和一个独立开发者朋友聊到,他的第一个产品就是因为包含远程代码,产品被下架,开发者账号也被封了

    于是我赶紧排查问题,不敢有一丝懈怠

    代码段:App.71f446dd.js: "https://" + this.region + "-assets." + r;

    我在 bundle 文件中搜索上面关键词 this.region 。后来发现这是 posthog 引入导致的,有查阅了 posthog 相关文档 Using PostHog for browser extensions 。发现在浏览器插件中引入 posthog 不能照搬 web 端,需要一些特殊处理,最重要的是设置 disable_external_dependency_loading 为 true 。

    最初方案:Using PostHog for browser extensions

    找到问题原因后,开始 Vibe Coding ,让 GitHub Copilot 完全按照 Using PostHog for browser extensions 文档来接入 posthog ,完成后也不忘提醒 Copilot 校验下是否还有 this.regin 等⚠危险代码️

    结果发现依然存在,思考下,应该不再包含动态加载代码了,但是 Chrome Web Store 审核很有可能是做静态文件匹配,依然后被拒风险,担心产品被下架,于是尝试更加稳妥的方案

    最终方案:服务端上报事件

    服务端提供 track 接口,然后浏览器插件通过 track 接口,在服务端进行 posthog 上报,虽然麻烦一点,因为还要防止重复 identify 和 align ( align 不是幂等)。所以有搞了一个 Cloudflare KV 来防止重复 identify

    最终完成后,又提审了,希望这次能过~ 🙏

    BTW ,如果大家对 Stripe 账号注册、接入感兴趣,欢迎留言,下次分享 Stripe 个人账号注册和接入流程

    4 条回复    2026-01-09 17:22:56 +08:00
    56way
        1
    56way  
       1 天前
    个人怎么申请 Stripe 账号 啊,我有香港卡。
    ransixi
        2
    ransixi  
    OP
       1 天前
    @56way 直接申请香港个人账号,身份证信息传护照照片,下一篇我分享详细的踩坑经历
    penzi
        3
    penzi  
       1 天前
    除非已上架的插件明确有恶意行为,不会因为远程代码下架。
    ransixi
        4
    ransixi  
    OP
       1 天前
    @penzi 为了保险起见,把 posthog sdk 从插件端移除了,统一走服务端上报
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   2665 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:06 · PVG 18:06 · LAX 02:06 · JFK 05:06
    ♥ Do have faith in what you're doing.