V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
BurnThem
V2EX  ›  程序员

拿 uniapp 开发的 app 被 google play 下架封停了

  •  5
     
  •   BurnThem · 2023-06-25 16:02:00 +08:00 · 13331 次点击
    这是一个创建于 542 天前的主题,其中的信息可能已经有所发展或是发生改变。

    血压上来了,封停申诉解封以后评分和历史下载都没了。。。这个 uniapp 框架自带的 SDK 在不打开广告等选项的前提下,还带了一些广告的代码,下载第三方 App 的代码。。被 google play 直接干掉了。。。

    当初为了省钱,独立开发选择了 uniapp ,今天第一次发现是真的天坑级别!!!

    官方的解释: https://ask.dcloud.net.cn/question/172533

    82 条回复    2023-08-14 20:21:02 +08:00
    jasonchen168
        1
    jasonchen168  
       2023-06-25 16:05:42 +08:00
    可怕。。。
    weiqk
        2
    weiqk  
       2023-06-25 16:27:58 +08:00
    除了 uniapp 还有什么类似的框架?
    estk
        3
    estk  
       2023-06-25 16:29:24 +08:00
    https://expo.dev 重构吧,别 uniapp 了
    sunxiaping521
        4
    sunxiaping521  
       2023-06-25 16:29:30 +08:00
    @weiqk Taro
    haha512
        5
    haha512  
       2023-06-25 16:31:13 +08:00   ❤️ 2
    官方解释没毛病啊,国内确实多数 android 版 app ,自身都带有更新检测功能,有版本时,点击就自动下载,然后弹出安装了。
    FreshOldMan
        6
    FreshOldMan  
       2023-06-25 16:49:04 +08:00
    用 rn 或者 flutter 不好吗,都自己做的 App 的了,还用这种国产 webview 框架,,
    IvanLi127
        7
    IvanLi127  
       2023-06-25 17:42:15 +08:00 via Android   ❤️ 13
    看了官方解释,有种谷歌干的漂亮的舒畅感 QAQ ,最烦 APP 自己天天告诉我下好新版本让我安装了
    DiePro
        8
    DiePro  
       2023-06-25 18:02:22 +08:00
    改呗,我上架的时也整改了这些问题的,头疼的很,主要是勾选权限有些需要取掉,手机权限提示需要清晰
    patrickyoung
        9
    patrickyoung  
       2023-06-25 18:05:23 +08:00 via iPhone   ❤️ 1
    Google 干的漂亮

    本来你应用自己热更新 /自更新鬼知道你塞了什么到客户的机器里,又没人给你把关,做得好

    另外,出于国内各类 SDK 的历史问题,如果不纯面向国内,不建议使用国内的任何此类框架或 SDK
    musi
        10
    musi  
       2023-06-25 18:09:12 +08:00 via iPhone   ❤️ 2
    用 flutter 吧
    谷歌总不能把自己的框架给封了吧
    maypu
        11
    maypu  
       2023-06-25 18:11:05 +08:00   ❤️ 1
    我觉得谷歌做的没毛病,DCloud 也不能提前预知这种情况,只能认栽,重新打包上架
    BurnThem
        12
    BurnThem  
    OP
       2023-06-25 18:11:54 +08:00
    google play 当然干的好了,主要还是吐槽国产框架为什么不最小化权限的问题。

    关于为什么选择 uniapp ,主要是自己前端水平一般,就用了 vue 最熟悉,思来想去还是 uniapp 最快能出活。

    只是没想到就算我们关了所有广告选项,权限也要了最小,不自动更新,更新全靠发包发版本,但是这个 uniapp 的云打包还是给整了这出幺蛾子。
    ifbluethen
        13
    ifbluethen  
       2023-06-25 18:23:28 +08:00
    哈哈哈,赶紧提桶跑路吧,TMD 放假第一天来个这彩蛋。我真不知道为什么出海的 APP 要选国内这种恶心的东西。真的太恶心了,以后完全不想碰了,这次经历也能当成恐怖故事来吓一吓选型的人。
    Jirajine
        14
    Jirajine  
       2023-06-25 18:32:27 +08:00   ❤️ 14
    不知道某些个人开发者接入国产流氓 sdk/加固等方案时有没有仔细阅读这句话?
    Please note that you are responsible for all aspects of your app; by using an SDK in your app, you are responsible for how that SDK behaves within your app.
    iamqiwei
        15
    iamqiwei  
       2023-06-25 18:37:26 +08:00
    能跑就行(手动狗头)
    iamqiwei
        16
    iamqiwei  
       2023-06-25 18:37:47 +08:00
    @iamqiwei emmmm ,发错了= =
    ByZHkc3
        17
    ByZHkc3  
       2023-06-25 19:39:32 +08:00
    所以我从来不考虑用 uniapp 做出海 app ,夹杂私货的逼玩意儿
    x77
        18
    x77  
       2023-06-25 20:56:16 +08:00
    没看解释我都觉得 Google 做的没毛病,不管用什么框架,首先它得是个可信的框架
    totoro52
        19
    totoro52  
       2023-06-25 22:17:06 +08:00   ❤️ 4
    @ifbluethen 彩蛋? 你那个文章你是一眼不看啊,他如果不开放这个权限你怎么做 APP 内升级,你告诉我, 跳转应用市场更新吗 你能保证你的应用一定上架市场了吗? 你一看就不是做安卓开发的, 谷歌近几年随意更改 API , 每次升级跟低版本都不兼容,怎么不见你喷? 上来就诋毁国产真有你的
    totoro52
        20
    totoro52  
       2023-06-25 22:22:08 +08:00
    @IvanLi127 没有这个 APP 内升级,那么下载就让你要么跳应用商城要么挑浏览器了,不是所有 APP 都会上架浏览器,没有上架肯定就给你跳浏览器了,还是一样更麻烦。
    Jirajine
        21
    Jirajine  
       2023-06-25 22:30:40 +08:00   ❤️ 8
    @totoro52 作为用户立场和你们这些国产 Android 开发者恰恰相反,Google 近几年 API 一直不改、一直保留兼容,什么隐私收紧的新特性只要开发者不升 target sdk 那全都不生效。新增收紧的权限也都不是运行时权限,仅仅只需清单里声明,方便商店的审核但不给用户控制权。
    国产 sdk 这一套什么热更新应用内升级相互拉起保活存储目录拉屎纯纯都是流氓行为,确实该诋毁。
    IvanLi127
        22
    IvanLi127  
       2023-06-25 22:39:46 +08:00 via Android
    @totoro52 应用商店没有的话,我选择不更新。。。现在又没有谷歌税😐,上个商店不困难吧。。。那种上不去商店的好东西,我是很乐意手动去官方渠道找新版安装的
    天天强迫用户更新的软件,我宁愿不用。。。
    totoro52
        23
    totoro52  
       2023-06-25 22:54:34 +08:00
    @IvanLi127 #22 你这话前后矛盾得不行你没发现吗,《上个商店不困难吧》 确实,很难,对于个人开发者而言
    totoro52
        24
    totoro52  
       2023-06-25 22:58:18 +08:00   ❤️ 1
    @Jirajine #21
    《 Google 近几年 API 一直不改、一直保留兼容》
    那代码里一大堆的 if 去判断每个版本调用不同的版本 API 是干嘛的?
    你见过 API 上个版本刚有下个版本就直接砍的吗
    你如果是一个开发者,对接了一个第三方 API ,人家天天改动字段和数据结构并且是直接改的你会怎么想?
    totoro52
        25
    totoro52  
       2023-06-25 23:04:08 +08:00
    @Jirajine #21 好好了解一下谷歌是如何对待开发者的吧,人家丝毫不会给任何所谓的过渡方案,想怎么改就怎么改,也不至于那么多东西死在他手上。
    XiLingHost
        26
    XiLingHost  
       2023-06-25 23:17:07 +08:00
    @totoro52 商店又不止有 Google Play ,F-droid 也是商店,这个是真的没有门槛
    slzhouzsl
        27
    slzhouzsl  
       2023-06-25 23:23:29 +08:00
    @totoro52 iOS App Store 一直这样啊,不能应用内升级。其实不上 app store 的话 iOS 也可以应用内升级。
    国内的生态垃圾的狠,根本赚不了啥钱,只能上 App Store
    jack4536251
        28
    jack4536251  
       2023-06-25 23:45:04 +08:00 via Android
    换 flutter
    Jirajine
        29
    Jirajine  
       2023-06-25 23:49:41 +08:00   ❤️ 1
    @totoro52 所以叫立场不同,作为用户,我看到的是这样:
    Android xx 收紧了某某权限,现在 app 不能访问了 -- 但出于兼容性 target sdk 低于 xx 仍然可以正常使用以前的 API 。
    那 target sdk 高于 xx 的呢?只需要在清单里声明 xx 权限就可以了,声明了权限 play 商店的审核会有额外要求,但用户仍然不能控制,不上架 play 商店的也管不到。
    Google 对待开发者还是太仁慈了,每个 Android 大版本都兼容过去的 API ,完全没法逼迫开发者迁移。再怎么收紧都是从商店审核角度,而不是从系统 API 角度,根本管不到不上架 play 商店的应用。

    像你说的这个应用内更新权限不给上架还是太温和,要是把这个权限直接删掉,只有系统应用和特权应用才能发起安装包,岂不是更彻底。
    dnL
        30
    dnL  
       2023-06-26 00:09:21 +08:00 via Android
    uniapp 真是有够垃圾的,打包收费不说,竟然夹杂私货,你一个周内打包次数超出,就给你默认打开广告浮窗,并且取消不了
    flyqie
        31
    flyqie  
       2023-06-26 00:18:54 +08:00 via Android
    @Jirajine #29

    说得好,哪天从系统层面不兼容了,骂的人里面希望没有你。

    不是所有 app 都有持续维护更新,直接从系统 api 砍你是想让 android 自己把自己玩死吗。
    flyqie
        32
    flyqie  
       2023-06-26 00:20:23 +08:00 via Android
    @flyqie #31

    系统 api 砍 -> 系统层面砍 api
    tanranran
        33
    tanranran  
       2023-06-26 00:36:02 +08:00
    看了官方的解释,和楼主说的不一样,原因是:android.permission.INSTALL_PACKAGES 、android.permission.REQUEST_INSTALL_PACKAGES 权限,最近 google play 升级了审核规则,应用中只要包含安装 apk 代码也会认为不合规
    tanranran
        34
    tanranran  
       2023-06-26 00:37:25 +08:00
    @dnL #30 用爱没法发电的,想要无限次打包,可以自己集成 SDK ,用离线打包
    tanranran
        35
    tanranran  
       2023-06-26 00:39:15 +08:00
    @jasonchen168 #1 先搞清楚原因,在说可怕。原因是:android.permission.INSTALL_PACKAGES 、android.permission.REQUEST_INSTALL_PACKAGES 权限,最近 google play 升级了审核规则,应用中只要包含安装 apk 代码也会认为不合规
    Jirajine
        36
    Jirajine  
       2023-06-26 00:42:19 +08:00
    @flyqie 因为砍的都是 anti-feature 。以以前的读取硬件 IMEI 的功能为例,Android 不知道花了多少年才终于把这个权限砍掉,而在这之前是个正经应用都要这个权限,不给就闪退。
    yhvictor
        37
    yhvictor  
       2023-06-26 01:55:52 +08:00
    @Jirajine google play 上架有 target sdk 最低要求,低了上不了
    maokabc
        38
    maokabc  
       2023-06-26 05:22:37 +08:00 via Android
    INSTALL_PACKAGES 、REQUEST_INSTALL_PACKAGES
    以及 MANAGE_EXTERNAL_STORAGE 权限只要正当理由使用谷歌都给过吧,我给这些权限录了两视频给过了。
    谷歌各种政策比较恶心,以及那些垃圾实现造成性能下降非常恶心。比如文件系统各种瞎改,fuse 改 wrapfs ,后面又改回 fuse ,然后性能严重下降,还它妈逼的一堆很多 bug 。最好笑的就是那个乱码 bug ,一个乱码文件会导致你怎么都删除不了文件,唯一可行的是绕过 fuse 直接去 /data 下删实际文件。还有经典的 Android/data 访问限制,自己 app 目录连 exec 这些系统调用都限制死。
    ifbluethen
        39
    ifbluethen  
       2023-06-26 07:10:39 +08:00 via iPhone
    @totoro52 哈哈哈,这一看就是水军之类的,我一个开发者只管自己的开发体验,管它什么国产不国产的。升级这东西,本来就应该只做提醒,给跳转,而不自动下载啊!开发者的错误,公司的商业需求强制用户下载本来就是流氓行为,流氓惯了就理所当然了是吧?我只是前端,选型不是我,框架既然说它自己那么好,自然应该把事情做好,还声称帮多少亿出海呢?谷歌的系统 API 更新,政策更新是会提前说明的,有一定的过渡期,都需要开发者跟进,做安卓开发的都不知道?
    mandymak
        40
    mandymak  
       2023-06-26 07:47:08 +08:00
    作为一个 ios 的用户来告诉大家(我是手动更新的),思科的某款 app 最近几天的一个版本一堆用户用不了,直到今天才修复,要是像那些强制自动更新的安卓 app 那样那真是全呵呵了!
    40EaE5uJO3Xt1VVa
        41
    40EaE5uJO3Xt1VVa  
       2023-06-26 07:57:27 +08:00 via Android
    @mandymak 我猜到哪款了
    paranoiagu
        42
    paranoiagu  
       2023-06-26 08:24:50 +08:00 via Android
    集成 umeng 框架上架 Play 也有问题,然后 umeng 说有适合上架的 sdk ,但是要付费😅
    milukun
        43
    milukun  
       2023-06-26 08:25:05 +08:00
    独立开发还是选择 Flutter ,谷歌亲儿子,这种非商业性质的框架不会按你头给你强加一些东西
    dnL
        44
    dnL  
       2023-06-26 09:29:32 +08:00
    @tanranran 没让他们爱发电啊,该付费了付费,打包次数超出,强行插上广告是怎么回事?这不是强行给人喂屎? uniapp 离线打包更是一坨,如果选择离线打包还不如直接原生
    Lbyn
        45
    Lbyn  
       2023-06-26 09:48:15 +08:00
    @weiqk #2 quasar
    totoro52
        46
    totoro52  
       2023-06-26 10:10:46 +08:00
    @ifbluethen #39 《谷歌的系统 API 更新,政策更新是会提前说明的,有一定的过渡期,都需要开发者跟进,做安卓开发的都不知道?》 你说这话就证明你不是安卓开发者了,省省吧
    acctv2
        47
    acctv2  
       2023-06-26 10:54:56 +08:00
    @totoro52 #21 连应用商店都没能力上的独立软件为什么要玩 App 内弹窗要求升级那一套?据我所知规模小到这种程度的独立软件大多都是买断制的工具,有任何必要搞强制升级吗?用户有需求自己去覆盖升级就行了
    acctv2
        48
    acctv2  
       2023-06-26 10:59:51 +08:00
    热更新这种糟粕早该死一死了。

    绝大多数 App 的热更新都不是必需品,纯粹是为了偷渡不走审核流程。
    mandymak
        49
    mandymak  
       2023-06-26 11:18:40 +08:00
    @acctv2 有些电视 app (连官网都没有)可能换个域名就要升一次,我的建议是可以弹提示让用户自行选择而非强制。
    lbfjkaou
        50
    lbfjkaou  
       2023-06-26 11:22:44 +08:00
    @ByZHkc3 #17 为什么都在吐槽 uniapp 啊
    bhbhxy
        51
    bhbhxy  
       2023-06-26 12:00:55 +08:00
    可以理解为什么都在骂 uniapp ,因为确实做得烂,用过这个框架开发的没有不被坑的吧,就跟微信小程序一样,文档烂,开发体验差,甚至还鼓吹 hbuilder 超越了 vscode
    tanranran
        52
    tanranran  
       2023-06-26 12:46:43 +08:00
    @lbfjkaou #50 国产是原罪
    hhacker
        53
    hhacker  
       2023-06-26 12:57:33 +08:00 via Android
    uniapp 能干出这种事我一点也不意外
    debuggerx
        54
    debuggerx  
       2023-06-26 13:05:12 +08:00
    @tanranran 国产也有很多好东西,但很显然 uniapp 不是
    debuggerx
        55
    debuggerx  
       2023-06-26 13:17:28 +08:00   ❤️ 4
    @bhbhxy hbuilder 这点非常认同。
    几年前曾经面试了一个小伙子,简历和自我介绍是全栈开发,对技术有追求,对代码有洁癖,我是很喜欢这种类型的开发的,所以面试后半段我直接让他开自己电脑给我 show 一下自己最满意的代码。
    然后,只见小伙子打开 hbuilder ,整个项目代码凌乱不堪不说,简单翻了翻就看到一个语法问题,switch 代码块 case 里直接 return 以后,下面又写了个 break ,但是 hbuilder 里没有任何提示和警告啥的。我指着这里问他,不觉得这里有问题吗,他说没有。然后我问他为啥要用 hbuilder 写,他说方便啊,出活儿嘎嘎快,vscode 也装了但是不好用。于是我就让他把这个文件用 vscode 打开看一下,然后果然我的记忆没错,这样的代码在正经 IDE 应该会有不可及代码的警告提示的。
    面对界面上波浪线以及明确的语法问题提示语,这个小伙子盯着我的眼睛说:
    “这只是 warning 可以不用管的”
    psklf
        56
    psklf  
       2023-06-26 13:45:41 +08:00
    Google 干的漂亮
    justBugCoder
        57
    justBugCoder  
       2023-06-26 13:46:03 +08:00
    @debuggerx hhh 这段太搞笑了
    > 这个小伙子盯着我的眼睛说:“这只是 warning 可以不用管的”
    justBugCoder
        58
    justBugCoder  
       2023-06-26 13:47:00 +08:00
    @bhbhxy 属于垃圾中的战斗机
    totoro52
        59
    totoro52  
       2023-06-26 13:56:42 +08:00
    @debuggerx #55 "这只是 warning 可以不用管的" 笑死我了 画面感上来了
    dnL
        60
    dnL  
       2023-06-26 13:59:12 +08:00   ❤️ 1
    @tanranran 可别为 uniapp 洗了,内置 SDK 携带广告,看你打包次数多了(并没有超出 uniapp 官方定的大小限制,超出会 10 元一次打包),就给你开放广告,并且你关闭不了。iOS 上会出现一个小弹窗,骗人打开抽奖的。Android 会偷偷唤醒斗鱼以及知乎。这也能扯上国产原罪?
    raptor
        61
    raptor  
       2023-06-26 14:44:09 +08:00
    用这种流氓 SDK 一点都不能怪 GOOGLE……
    lizhenda
        62
    lizhenda  
       2023-06-26 14:55:25 +08:00
    @debuggerx “这只是 warning 可以不用管的” 承包了今天的笑点,哈哈哈~~~
    eden1
        63
    eden1  
       2023-06-26 15:19:17 +08:00
    不喜欢用那就原生开发咯,有啥好喷的
    BwNVlwSq
        64
    BwNVlwSq  
       2023-06-26 15:27:33 +08:00
    uni-app 为什么会有这么大的市场?
    wangmou
        65
    wangmou  
       2023-06-26 15:41:55 +08:00
    @BwNVlwSq 简单方便能出活。
    gadore
        66
    gadore  
       2023-06-26 16:00:04 +08:00
    @justBugCoder 抓住,在这讨论至少大家一致对外了吧哈哈哈哈,我最近也被团队的 PM 逼着用 UniApp 其实,我看着 HBuilder 那个混乱的布局跟文档,还有线上线下打包的恶心绑定,我直接怼回去:谁爱用谁用,我宁愿 Flutter 重写,你们不接受就自己写 UniApp 去。然后大家迫于交付时间和工作量就各退了一步,开始研究纯 H5 和 PWA 了哈哈哈哈。
    ae86
        67
    ae86  
       2023-06-26 16:09:56 +08:00
    不管 uni 有多少粉丝,我是坚决不用 uni 的,只会骂一句 辣鸡,也不推荐别人用,感觉跟 csdn 差不多,看见就烦😡
    winterbells
        68
    winterbells  
       2023-06-26 16:10:12 +08:00 via Android
    希望谷歌来一刀大的
    真的不想维护旧 API 代码了…
    Niight
        69
    Niight  
       2023-06-26 16:21:33 +08:00
    uniapp 的封装有点过于狠了,而且只能用 HBuilder X 。我们在用 ReactNative + Taro + Laf 的解决方案,目前还不错!

    https://taro-docs.jd.com/docs/

    https://laf.run/
    boatrain1111
        70
    boatrain1111  
       2023-06-26 16:28:50 +08:00
    @debuggerx #55 想起一个趣图,内容是不要在悬崖边立警示牌(Warning),因为程序员会忽略 Warning
    licodeaoTop
        71
    licodeaoTop  
       2023-06-26 17:01:55 +08:00
    早期使用 uniapp 开发小程序的时候,因为其官方组件库的问题,我就弃坑了,果然跨端里就属它最捞哈哈哈
    justBugCoder
        72
    justBugCoder  
       2023-06-26 17:21:14 +08:00
    @gadore 被骂成狗的社区除了微信社区就是 Dcloud 社区
    oIMOo
        73
    oIMOo  
       2023-06-26 19:59:19 +08:00
    @totoro52 #19 你也是不看文章啊…… 官方说了,不管你用不用 应用内更新,SDK 里都有这段代码。
    totoro52
        74
    totoro52  
       2023-06-26 20:40:17 +08:00
    @oIMOo SDK 本身就会携带大量你本身用不到的东西, 这是很正常的, 除非它出可定制化的 SDK ,但很明显 ub 不会这么做,毕竟他确实拉。
    Cu635
        75
    Cu635  
       2023-06-26 21:28:11 +08:00
    用国内开发的 SDK ,活该。
    而且官方解释是和 SDK 里面安装 apk 的相关代码有关,为啥 lz 到了 V2 上面就说是广告了?就算是 lz 理解的“带了一些广告的代码,下载第三方 App 的代码”,核心问题也是安装 apk 的相关代码啊。
    zx900930
        76
    zx900930  
       2023-06-27 08:28:38 +08:00
    @XiLingHost 要求开源还不是门槛?而且即使开源单 app 限制大小只有 20M...要么你就自己建源去解决下载流量问题。
    marcong95
        77
    marcong95  
       2023-06-27 11:38:57 +08:00
    @Jirajine #14 那么问题来了,I am responsible for all aspects of my app and how the SDK behaves within my app. I promise there will never be any kind of intended or unintended hot update or in-app installation. 然后呢,我是把这句话贴在 app 首页然后 Google Play 就放我上架了么?虽然也不是想洗 uniapp 这种史前巨坑,我只是想杠 responsibility 显然是毛用没有的,即便是我 take my responsibility 去读了一波 uniapp 源码,乃至逆向了 uniapp 的二进制文件。

    你可能会说 as a responsible developer 就应该直接摘掉 uniapp sdk ,我也同意。
    ebushicao
        78
    ebushicao  
       2023-06-27 14:40:11 +08:00
    uniapp 是真的低质量,文档和代码都对不上,各种问题
    Belmode
        79
    Belmode  
       2023-06-27 15:22:58 +08:00
    26 号还好好的,到了 27 号咋开撕了呀
    bunny189
        80
    bunny189  
       2023-06-27 16:37:02 +08:00
    正经人谁还用 uniapp 啊(
    Jirajine
        81
    Jirajine  
       2023-06-27 17:37:47 +08:00
    @marcong95 只是吐槽一下国产流氓因为 sdk 等缘故太 pervasive 了,导致很多“小而美”的个人开发者作品同样有相互唤醒、拉屎等流氓行为。
    印象比较深的一个是 360 加固,还有以前用的一个应用开发者很良心,它的广告是 opt in 的,但是因为接入了广告 sdk ,这个应用不给读取手机 IMEI 的权限就会闪退。
    whoareme
        82
    whoareme  
       2023-08-14 20:21:02 +08:00
    至今为止我敲的代码还没我遇到的坑多
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1694 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:35 · PVG 00:35 · LAX 08:35 · JFK 11:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.