skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
阅读:7271回复:37

是否已经无法再为传统扩展 (非webextension) 签名? 有何方法绕过?

楼主#
更多 发布于:2017-05-12 01:09
是否已经无法再为传统扩展签名? 看了些相关文档, 为传统扩展写个manifest.json就可以在AMO过签, 但涉及到 "options_ui" ("options_page") 或 "default_popup"部分, 而传统扩展根本没有这部分内容, 该如如何写, 绕过AMO检测过签, 是否俨然已经误解?
Your add-on failed validation with 3 errors.
  • Could not parse the manifest file.
  • An unexpected error has occurred.
  • Could not parse `manifest.json`.
知道了, 才发现, 需要过签扩展中的install.rdf -> unpack居然是true, 这也就是不过签的根本原因, 改为false立刻过签, 根本不需要补全manifest.json, 就说嘛这东西补进去也没什么意义, 对于非webextension扩展来说.
若单纯将unpack由true设置到false, 可以过签, 但百分之百无法在Fx上运行, 那unpack设置禁用后, 还需改对文件结构做哪些改动呢? 提供一些相关文档也行, 我也找了, 但没能直接命中关键点.

例如: Hugo Search All Tabs, Redirect Bypasser, xthunder, fastest search v3.31.1, unpack均默认为true, 在AMO过签, 就必须将unpack设置为false, 但设置禁用就无法在Fx上运行...

唉... 论坛脚本载入延迟很坑, 编辑了下, 发现内容全部被清空...
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
1楼#
发布于:2018-10-24 01:14
skytalk:倒是完全不影响使用, 现在最主要是想签名, 我试着在传统扩展内添加manifest.json, 结果可以过检签名, 但带有manifest.json的签名后的扩展, 安装后会出现一些小的问题, amo也够决绝的, 签名自用也不允许...回到原帖
我记得 firefox 加载扩展时会根据 xpi 包含了什么文件来选择如何加载扩展
包含 manifest.json 就当成 WE 扩展来加载
那肯定会出问题啊
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
2楼#
发布于:2018-10-22 04:02
aaaa007cn:52ESR or 第三方编译 or 自行编译回到原帖
倒是完全不影响使用, 现在最主要是想签名, 我试着在传统扩展内添加manifest.json, 结果可以过检签名, 但带有manifest.json的签名后的扩展, 安装后会出现一些小的问题, amo也够决绝的, 签名自用也不允许...
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
3楼#
发布于:2018-10-19 20:19
skytalk:AMO已经禁止上传传统扩展
换句话说, 线下给传统扩展签名后, 第三方分发或自用已经是不可能了吗? 是否已经无解? 给咱指条明路吧...
回到原帖
52ESR or 第三方编译 or 自行编译
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
4楼#
发布于:2018-10-19 03:24
AMO已经禁止上传传统扩展
换句话说, 线下给传统扩展签名后, 第三方分发或自用已经是不可能了吗? 是否已经无解? 给咱指条明路吧...
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
5楼#
发布于:2017-05-28 13:17
fang5566:用官方nightly,unbranded official 或第三方 palemoon回到原帖
勿忘 ESR
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-04-29
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
6楼#
发布于:2017-05-28 12:39
病毒:对于我等小白只想好好用火狐的人,什么办法可以解决非官方扩展的安装问题?回到原帖
用官方nightly,unbranded official 或第三方 palemoon
Firefox More than meets your experience
病毒
火狐狸
火狐狸
  • UID24919
  • 注册日期2008-06-20
  • 最后登录2017-11-19
  • 发帖数111
  • 经验16枚
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 社区居民
7楼#
发布于:2017-05-28 12:34
对于我等小白只想好好用火狐的人,什么办法可以解决非官方扩展的安装问题?
DOSforever
千年狐狸
千年狐狸
  • UID25201
  • 注册日期2008-07-03
  • 最后登录2024-05-04
  • 发帖数1093
  • 经验836枚
  • 威望0点
  • 贡献值734点
  • 好评度22点
  • 社区居民
  • 忠实会员
8楼#
发布于:2017-05-19 20:17
白左:应该不可能开发者版本完全不让装测试扩展,只能临时加载吧……大概
比方说还有测试插件的需求?……啊不对,插件已经全部移除了

希望beta能沾FDE的光用上未签名扩展;或者既然FDE基于beta,直接用FDE也是好的,相当于名字没变,更...
回到原帖
哈哈!你可真会做广告!真及时!你是否伤心?是否难过?,这时候你需要,哈哈哈哈哈哈……这词太妙了!哈哈哈哈哈哈…………
pcxfirefox
千年狐狸
千年狐狸
  • UID39042
  • 注册日期2012-06-22
  • 最后登录2018-01-15
  • 发帖数2539
  • 经验1263枚
  • 威望2点
  • 贡献值242点
  • 好评度133点
  • 最爱沙发
  • 忠实会员
  • 社区居民
9楼#
发布于:2017-05-15 08:08
高级玩家表示 不需要签名就能用
http://pcxfirefox.wordpress.com/
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
10楼#
发布于:2017-05-15 07:52
skytalk:或许回复有些凌乱, 但基本上都已经解释清楚了. AMO系统会优先检测的是扩展本身文件及结构等等是否存在问题. 而当传统扩展本身文件内容及结构符合AMO要求, 却出现"Starting with Firefox 53, new extensi...回到原帖
fang的意思是, 整理完, 列出操作/复现步骤, 放到顶楼, 作为备查贴给后来人参考
没错爬完每栋楼也能达到一样的效果, 你有想过每个人爬楼要花多少时间吗, 几千个人爬下来, 总数量相当可观.

而你只需要一次小小的整理, 就能为未来的数千人节省可观的时间

当然, 显然对你没什么好处, 所以只是建议, 而非强迫
-いたんですか? -ええ、ずっと
skytalk
热心会员
热心会员
  • UID32994
  • 注册日期2010-06-06
  • 最后登录2023-07-07
  • 发帖数652
  • 经验1061枚
  • 威望3点
  • 贡献值1292点
  • 好评度154点
  • 社区居民
  • 忠实会员
11楼#
发布于:2017-05-15 00:53
fang5566:那麻烦整理一下未上架传统扩展能过签的方法。大家看了也直观回到原帖
或许回复有些凌乱, 但基本上都已经解释清楚了. AMO系统会优先检测的是扩展本身文件及结构等等是否存在问题. 而当传统扩展本身文件内容及结构符合AMO要求, 却出现"Starting with Firefox 53, new extensions on this site can only be WebExtensions."错误提示时, 则只需要在install.rdf中添加除firefox以外的targetApplication, 基本可以过检签名(留点余地, 没什么是绝对的事情).  再有可以通过添加manifest.json在AMO检测过签(条件是扩展本身符合AMO系统要求). 若有些传统扩展本身存在问题, 也能导致不过签, 诸如文件内容含有的字段, 文件编码, 文件名过长, 空文件等等(有些感觉属于玄学, 不一一赘述, AMO系统经常升级变化), 当有这些问题存在时, 基本上都是一些与manifest.json有关的错误提示, 就需要花时间去找了, 这种情况有些费精力, 推荐二分法查找会省些时间与精力.

至于原因, 007都已经解释的很清楚了, 就不再多费唇舌, 传统扩展想签名的话, 仔细看看这个帖子吧, 基本上可以解决大多无法过签的传统扩展.

哦, 还有一个小的问题有待解决, 就是关于Description. 基本扩展都会在install.rdf中的Description填写指定内容, 并在local中相对应, 当general.useragent.locale的string与语言包相吻合时, Fx会自动转译语言包中的Description, 并显示在about:addons的相应扩展说明中. 但在AMO签名过程中, 由于必须更换id, 而引发Fx(部分扩展)无法通过chrome.manifest或相关文件, 找到对应语言包中Description所指定的内容, 此时Fx会自动调用install.rdf中Description做补充. 原因就是由于更换install.rdf或manifest.json中的id所致. 理论上不应出现这种现象, 这两天折腾签名, 已经耗费了很多, 最累的就是这两扇窗户, 等休整休整再继续查找解决之道.
目前还看, 只能通过在install.rdf中添加localized指定扩展的详细说明了, 还没有更好的解决方法
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
12楼#
发布于:2017-05-14 20:01
57 预计 11 月 14 日发布
正好 6 个月之后
legacy extensions on suicide watch
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
13楼#
发布于:2017-05-14 19:43
targetApplication 当然至少要有一个
不然扩展根本没有用/没法用

重点是要有至少一个非 firefox、firefox for android 的 targetApplication 来绕过 53 开始的 amo 限制新传统扩展
代码是这样的
is_targeting_firefoxes_only = (
        set(target_apps.keys()).intersection(('firefox', 'android')) ==
        set(target_apps.keys())
    )

只要 target_apps 和 ('firefox', 'android') 的交集不等于 target_apps
is_targeting_firefoxes_only 就是 false

原版 FoxyProxy Standard 的 targetApplication 为 Firefox + SeaMonkey + Thunderbird + Palemoon
target_apps 为 ('firefox', 'seamonkey', 'thunderbird')
和 ('firefox', 'android') 相交后为 ('firefox')
与原来的 target_apps 不等
如果只改了扩展 id 然后提交
amo 不会因为这是个传统扩展而拒绝的

强调一下
不管 amo 判定怎么改
目前拒绝新的非传统扩展给的错误提示只有 "Starting with Firefox 53, new extensions on this site can only be WebExtensions." 这一个
除此以外的被拒都是扩展本身有问题

所以 amo 到底给了哪些错误(非警告)?
当时上传的 xpi 又是怎样的?
amo 的代码都在 github 上
有什么疑惑可以直接翻代码
比黑盒测试要省时省力多了
fang5566
管理员
管理员
  • UID3719
  • 注册日期2005-03-07
  • 最后登录2024-04-29
  • 发帖数18483
  • 经验4837枚
  • 威望5点
  • 贡献值4316点
  • 好评度1116点
  • 社区居民
  • 最爱沙发
  • 忠实会员
  • 终身成就
14楼#
发布于:2017-05-14 18:42
那麻烦整理一下未上架传统扩展能过签的方法。大家看了也直观
Firefox More than meets your experience
上一页
游客

返回顶部