[{"data":1,"prerenderedAt":227},["ShallowReactive",2],{"blog-6-app-code-interactive-sharing-tools-zh-CN":3},{"id":4,"title":5,"excerpt":6,"content":7,"coverImage":180,"meta":186,"site":187,"status":200,"slug":201,"author":202,"category":213,"publishDate":221,"featured":161,"updatedAt":222,"createdAt":223,"contentHtml":224,"previewUrl":225,"localeSlugs":226},339,"出海合规必备！6个App代码混淆工具分享","在App出海历程中，账号关联问题始终困扰着广大出海开发者，而账号资料和 App代码 又是其中最容易关联的两点。 App代码混淆在上架合规中扮演着举足轻重的角色，本文将对代码混淆的工具进行总结，并分析每个工具的利弊以及找到每个工具的出处。 一、Android自带混淆工具是ProGuard 通过ProGuard混淆，代码中的类名、方法和变量名会被替换成无意义的短…",{"root":8},{"children":9,"direction":23,"format":15,"indent":13,"type":179,"version":18},[10,25,29,45,51,55,59,63,67,71,75,79,83,87,91,95,99,103,107,111,115,119,123,134,138,142,146,150,164,168],{"children":11,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[12,19,21],{"detail":13,"format":13,"mode":14,"style":15,"text":16,"type":17,"version":18},0,"normal","","在App出海历程中，账号关联问题始终困扰着广大出海开发者，而账号资料和","text",1,{"detail":13,"format":18,"mode":14,"style":15,"text":20,"type":17,"version":18},"App代码",{"detail":13,"format":13,"mode":14,"style":15,"text":22,"type":17,"version":18},"又是其中最容易关联的两点。",null,"paragraph",{"children":26,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[27],{"detail":13,"format":13,"mode":14,"style":15,"text":28,"type":17,"version":18},"App代码混淆在上架合规中扮演着举足轻重的角色，本文将对代码混淆的工具进行总结，并分析每个工具的利弊以及找到每个工具的出处。",{"type":30,"version":31,"format":15,"fields":32,"relationTo":33,"value":34,"id":44},"upload",3,{},"media",{"id":35,"alt":36,"updatedAt":37,"createdAt":37,"url":38,"thumbnailURL":23,"filename":39,"mimeType":40,"filesize":41,"width":42,"height":43},773,"Google Play 强制两步验证，5步开启及常见问题分析","2026-07-21T07:47:46.773Z","https://cms-r2.deepclick.com/wordpress-image-e310e707-c5dfadb450e5.png","wordpress-image-e310e707-c5dfadb450e5.png","image/png",912275,1200,750,"6a5f25492a416600c8ef73f4",{"children":46,"direction":23,"format":15,"indent":13,"type":49,"version":18,"tag":50},[47],{"detail":13,"format":13,"mode":14,"style":15,"text":48,"type":17,"version":18},"一、Android自带混淆工具是ProGuard","heading","h2",{"children":52,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[53],{"detail":13,"format":13,"mode":14,"style":15,"text":54,"type":17,"version":18},"通过ProGuard混淆，代码中的类名、方法和变量名会被替换成无意义的短名称，从而降低代码的可读性，可维护性及代码重复率。",{"children":56,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[57],{"detail":13,"format":13,"mode":14,"style":15,"text":58,"type":17,"version":18},"我们也可以自定义混淆（字典）规则，以为来实现同一份代码混淆后的路径不一致。建议大家也不要传Mapping文件到Google后台。",{"children":60,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[61],{"detail":13,"format":13,"mode":14,"style":15,"text":62,"type":17,"version":18},"官网介绍：https://developer.android.com/build/shrink-code?hl=zh-cn",{"children":64,"direction":23,"format":15,"indent":13,"type":49,"version":18,"tag":50},[65],{"detail":13,"format":13,"mode":14,"style":15,"text":66,"type":17,"version":18},"二、AndResGuard",{"children":68,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[69],{"detail":13,"format":13,"mode":14,"style":15,"text":70,"type":17,"version":18},"ProGuard是针对代码的混淆，AndResGuard只针对资源。他会将原本冗长的资源路径变短，例如将res/drawable/logo变为a/b/c 。",{"children":72,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[73],{"detail":13,"format":13,"mode":14,"style":15,"text":74,"type":17,"version":18},"开源项目地址：https://github.com/shwenzhang/AndResGuard，对于海外App来说比较鸡肋。https://ndResGuard/",{"children":76,"direction":23,"format":15,"indent":13,"type":49,"version":18,"tag":50},[77],{"detail":13,"format":13,"mode":14,"style":15,"text":78,"type":17,"version":18},"三、AabResGuard",{"children":80,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[81],{"detail":13,"format":13,"mode":14,"style":15,"text":82,"type":17,"version":18},"从功能上讲，它和上面的AndResGuard是类似的。因为海外发包必须是aab格式了，所以AabResGuard对我们的作用更大一些，它以aab开头，代表它可以直接对已经打包好的aab文件进行资源混淆操作。但小编曾经测试过，一个图片改名前和改名后，sha1值是一样的，所以如果真要防关联，只改名是不行的。 ",{"children":84,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[85],{"detail":13,"format":13,"mode":14,"style":15,"text":86,"type":17,"version":18},"开源项目地址：https://github.com/bytedance/AabResGuard",{"children":88,"direction":23,"format":15,"indent":13,"type":49,"version":18,"tag":50},[89],{"detail":13,"format":13,"mode":14,"style":15,"text":90,"type":17,"version":18},"四、XmlClassGuard",{"children":92,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[93],{"detail":13,"format":13,"mode":14,"style":15,"text":94,"type":17,"version":18},"我们把它可以看成是Proguard的辅助助手，它可以混淆所有的java代码，包括4大组件。它的主要功能是是混淆xml文件用到的类，因为我们知道各种xml文件（如layout，AndroidManifest.xml会用到各种java类 ），它就辅助混淆这些类的包名。它极大降低aab包查重率，能在一定程度上避免上架Google Play因查重率过高，导致下架或封号的问题。对于封过的包，我可以可以拿用XmlClassGuard混淆后的代码进行二次开发，还是有一定作用的。",{"children":96,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[97],{"detail":13,"format":13,"mode":14,"style":15,"text":98,"type":17,"version":18},"开源项目地址：https://github.com/liujingxing/XmlClassGuard",{"children":100,"direction":23,"format":15,"indent":13,"type":49,"version":18,"tag":50},[101],{"detail":13,"format":13,"mode":14,"style":15,"text":102,"type":17,"version":18},"五、StringFog",{"children":104,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[105],{"detail":13,"format":13,"mode":14,"style":15,"text":106,"type":17,"version":18},"自动对dex/aar/jar文件中的字符串进行加密的Android插件工具，辅助开发者加密敏感字符串信息，避免因为Google的关键字过滤审查导致出现违规问题。",{"children":108,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[109],{"detail":13,"format":13,"mode":14,"style":15,"text":110,"type":17,"version":18},"开源项目地址：https://github.com/MegatronKing/StringFog",{"children":112,"direction":23,"format":15,"indent":13,"type":49,"version":18,"tag":50},[113],{"detail":13,"format":13,"mode":14,"style":15,"text":114,"type":17,"version":18},"六、App加固工具",{"children":116,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[117],{"detail":13,"format":13,"mode":14,"style":15,"text":118,"type":17,"version":18},"对于App加固在代码合规方向的使用，行业从业人员争议很大，质疑有以下几大观点：",{"children":120,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[121],{"detail":13,"format":13,"mode":14,"style":15,"text":122,"type":17,"version":18},"1\\. App加固有对抗审核的意图，会让Google觉得你在隐藏什么，增加审核风险。",{"children":124,"direction":23,"format":15,"indent":13,"type":131,"version":18,"listType":132,"start":130,"tag":133},[125],{"children":126,"direction":23,"format":15,"indent":13,"type":129,"version":18,"value":130},[127],{"detail":13,"format":13,"mode":14,"style":15,"text":128,"type":17,"version":18},"Google要求上架的应用不能与其它已上架应用有相同的体验（包括代码），马甲包等重复应用上架会被拒绝，也有可能会因\"账户关联\"直接导致封号。Google为判定马甲包，对应用的内容(代码、图标、资源等)都做了一系列审核，由于App加固只暴露出壳代码，这个壳代码所有App的保护后代码几乎一致，一旦上架多个被保护的App，很容易被Google判定为重复应用。","listitem",2,"list","number","ol",{"children":135,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[136],{"detail":13,"format":13,"mode":14,"style":15,"text":137,"type":17,"version":18},"3.大多App加固意味着动态加载Dex，而动态加载意味着有一定的审核风险。",{"children":139,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[140],{"detail":13,"format":13,"mode":14,"style":15,"text":141,"type":17,"version":18},"本着技术无罪的原则，小编持保留态度，大家自行考虑。但小编在做竞品分析的过程中，发现很多App依然在使用国内的爱加密，顶像等App加固并常年在架。",{"children":143,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[144],{"detail":13,"format":13,"mode":14,"style":15,"text":145,"type":17,"version":18},"如果要使用App加固，可自研或者寻找支持自定义加固代码的合作商。",{"children":147,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[148],{"detail":13,"format":13,"mode":14,"style":15,"text":149,"type":17,"version":18},"虽然说了这么多，小编还是建议有能力有财力的企业还是得自行开发全新的App，这才是最保险的方式！！！ ",{"children":151,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[152,154],{"detail":13,"format":13,"mode":14,"style":15,"text":153,"type":17,"version":18},"PWA教程→",{"children":155,"direction":23,"format":15,"indent":13,"type":158,"version":31,"fields":159,"id":163},[156],{"detail":13,"format":31,"mode":14,"style":15,"text":157,"type":17,"version":18},"请移步","link",{"linkType":160,"newTab":161,"url":162},"custom",false,"https://blog.roibest.com/product-tutorial/","6a5f25492a416600c8ef73f5",{"children":165,"direction":23,"format":15,"indent":13,"type":24,"version":18,"textFormat":13,"textStyle":15},[166],{"detail":13,"format":13,"mode":14,"style":15,"text":167,"type":17,"version":18},"文章转自：趣浪出海",{"type":30,"version":31,"format":15,"fields":169,"relationTo":33,"value":170,"id":178},{},{"id":171,"alt":172,"updatedAt":173,"createdAt":173,"url":174,"thumbnailURL":23,"filename":175,"mimeType":40,"filesize":176,"width":42,"height":177},357,"PWA在短剧行业的落地实践：加速加载与转化率提升 — inline image","2026-07-21T06:52:09.531Z","https://cms-r2.deepclick.com/img_v3_02hg_80864f88-e3ea-4a98-8853-4ef5d3f71f2g-1d5b07ad-typed-6305367667f9.png","img_v3_02hg_80864f88-e3ea-4a98-8853-4ef5d3f71f2g-1d5b07ad-typed-6305367667f9.png",81169,80,"6a5f25492a416600c8ef73f6","root",{"id":181,"alt":5,"updatedAt":182,"createdAt":182,"url":183,"thumbnailURL":23,"filename":184,"mimeType":40,"filesize":185,"width":42,"height":43},793,"2026-07-21T07:52:39.532Z","https://cms-r2.deepclick.com/wordpress-image-1fbb0314-2e79c86682a5.png","wordpress-image-1fbb0314-2e79c86682a5.png",1084450,{"title":23,"description":23,"image":23},{"id":130,"key":188,"name":189,"prodHost":190,"testHost":191,"blogPath":192,"docPath":193,"zhPrefix":194,"deployHookTest":195,"deployHookProd":196,"enabled":197,"updatedAt":198,"createdAt":199},"roibest","RoiBest","https://www.roibest.com","https://www-stg-roibest.qiliangjia.one","/resources/blog/{slug}","/docs/{slug}","/zh-CN","https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/28cd5297-3c9e-4c80-8431-ddc8b2556e6e","https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/78763ef2-3db8-43d9-a2a5-0ae6ffe24c3f",true,"2026-07-21T11:31:15.739Z","2026-07-14T09:56:11.826Z","published","6-app-code-interactive-sharing-tools",{"id":31,"name":203,"avatar":204,"updatedAt":211,"createdAt":212},"ROIBest",{"id":205,"alt":203,"updatedAt":206,"createdAt":206,"url":207,"thumbnailURL":23,"filename":208,"mimeType":40,"filesize":209,"width":210,"height":210},908,"2026-07-22T02:47:15.086Z","https://cms-r2.deepclick.com/favicon-ae68c4bc4d9d.png","favicon-ae68c4bc4d9d.png",2320,48,"2026-07-22T02:47:22.252Z","2026-07-22T02:30:48.651Z",{"id":214,"site":215,"titleZh":216,"titleEn":217,"slug":218,"order":219,"updatedAt":220,"createdAt":220},10,{"id":130,"key":188,"name":189,"prodHost":190,"testHost":191,"blogPath":192,"docPath":193,"zhPrefix":194,"deployHookTest":195,"deployHookProd":196,"enabled":197,"updatedAt":198,"createdAt":199},"技术指南","Guides","guides",20,"2026-07-21T06:40:11.224Z","2024-12-30T17:00:57.000Z","2026-07-22T03:02:40.868Z","2026-07-21T07:36:41.457Z","\u003Cdiv class=\"payload-richtext\">\u003Cp>在App出海历程中，账号关联问题始终困扰着广大出海开发者，而账号资料和\u003Cstrong>App代码\u003C/strong>又是其中最容易关联的两点。\u003C/p>\u003Cp>App代码混淆在上架合规中扮演着举足轻重的角色，本文将对代码混淆的工具进行总结，并分析每个工具的利弊以及找到每个工具的出处。\u003C/p>\n        \u003Cimg\n          alt=\"Google Play 强制两步验证，5步开启及常见问题分析\"\n          height=\"750\"\n          src=\"https://cms-r2.deepclick.com/wordpress-image-e310e707-c5dfadb450e5.png?w=1200&q=85\"\n          width=\"1200\"\n        />\n      \u003Ch2>一、Android自带混淆工具是ProGuard\u003C/h2>\u003Cp>通过ProGuard混淆，代码中的类名、方法和变量名会被替换成无意义的短名称，从而降低代码的可读性，可维护性及代码重复率。\u003C/p>\u003Cp>我们也可以自定义混淆（字典）规则，以为来实现同一份代码混淆后的路径不一致。建议大家也不要传Mapping文件到Google后台。\u003C/p>\u003Cp>官网介绍：https://developer.android.com/build/shrink-code?hl=zh-cn\u003C/p>\u003Ch2>二、AndResGuard\u003C/h2>\u003Cp>ProGuard是针对代码的混淆，AndResGuard只针对资源。他会将原本冗长的资源路径变短，例如将res/drawable/logo变为a/b/c 。\u003C/p>\u003Cp>开源项目地址：https://github.com/shwenzhang/AndResGuard，对于海外App来说比较鸡肋。https://ndResGuard/\u003C/p>\u003Ch2>三、AabResGuard\u003C/h2>\u003Cp>从功能上讲，它和上面的AndResGuard是类似的。因为海外发包必须是aab格式了，所以AabResGuard对我们的作用更大一些，它以aab开头，代表它可以直接对已经打包好的aab文件进行资源混淆操作。但小编曾经测试过，一个图片改名前和改名后，sha1值是一样的，所以如果真要防关联，只改名是不行的。 \u003C/p>\u003Cp>开源项目地址：https://github.com/bytedance/AabResGuard\u003C/p>\u003Ch2>四、XmlClassGuard\u003C/h2>\u003Cp>我们把它可以看成是Proguard的辅助助手，它可以混淆所有的java代码，包括4大组件。它的主要功能是是混淆xml文件用到的类，因为我们知道各种xml文件（如layout，AndroidManifest.xml会用到各种java类 ），它就辅助混淆这些类的包名。它极大降低aab包查重率，能在一定程度上避免上架Google Play因查重率过高，导致下架或封号的问题。对于封过的包，我可以可以拿用XmlClassGuard混淆后的代码进行二次开发，还是有一定作用的。\u003C/p>\u003Cp>开源项目地址：https://github.com/liujingxing/XmlClassGuard\u003C/p>\u003Ch2>五、StringFog\u003C/h2>\u003Cp>自动对dex/aar/jar文件中的字符串进行加密的Android插件工具，辅助开发者加密敏感字符串信息，避免因为Google的关键字过滤审查导致出现违规问题。\u003C/p>\u003Cp>开源项目地址：https://github.com/MegatronKing/StringFog\u003C/p>\u003Ch2>六、App加固工具\u003C/h2>\u003Cp>对于App加固在代码合规方向的使用，行业从业人员争议很大，质疑有以下几大观点：\u003C/p>\u003Cp>1\\. App加固有对抗审核的意图，会让Google觉得你在隐藏什么，增加审核风险。\u003C/p>\u003Col class=\"list-number\">\u003Cli\n          class=\"\"\n          style=\"\"\n          value=\"2\"\n        >Google要求上架的应用不能与其它已上架应用有相同的体验（包括代码），马甲包等重复应用上架会被拒绝，也有可能会因&quot;账户关联&quot;直接导致封号。Google为判定马甲包，对应用的内容(代码、图标、资源等)都做了一系列审核，由于App加固只暴露出壳代码，这个壳代码所有App的保护后代码几乎一致，一旦上架多个被保护的App，很容易被Google判定为重复应用。\u003C/li>\u003C/ol>\u003Cp>3.大多App加固意味着动态加载Dex，而动态加载意味着有一定的审核风险。\u003C/p>\u003Cp>本着技术无罪的原则，小编持保留态度，大家自行考虑。但小编在做竞品分析的过程中，发现很多App依然在使用国内的爱加密，顶像等App加固并常年在架。\u003C/p>\u003Cp>如果要使用App加固，可自研或者寻找支持自定义加固代码的合作商。\u003C/p>\u003Cp>虽然说了这么多，小编还是建议有能力有财力的企业还是得自行开发全新的App，这才是最保险的方式！！！ \u003C/p>\u003Cp>PWA教程→\u003Ca href=\"https://blog.roibest.com/product-tutorial/\">\u003Cem>\u003Cstrong>请移步\u003C/strong>\u003C/em>\u003C/a>\u003C/p>\u003Cp>文章转自：趣浪出海\u003C/p>\n        \u003Cimg\n          alt=\"PWA在短剧行业的落地实践：加速加载与转化率提升 — inline image\"\n          height=\"80\"\n          src=\"https://cms-r2.deepclick.com/img_v3_02hg_80864f88-e3ea-4a98-8853-4ef5d3f71f2g-1d5b07ad-typed-6305367667f9.png?w=1200&q=85\"\n          width=\"1200\"\n        />\n      \u003C/div>","https://www.roibest.com/zh-CN/resources/blog/6-app-code-interactive-sharing-tools",{"zh-CN":201},1784706021102]