V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wseani
V2EX  ›  程序员

上架 App Store 流程中遇到一个奇怪的 Bug

  •  1
     
  •   wseani ·
    mazzzystar · 2023-01-20 08:32:06 +08:00 · 3239 次点击
    这是一个创建于 659 天前的主题,其中的信息可能已经有所发展或是发生改变。

    应该很少 iOS 开发会遇到的一个 bug ,供大家参考。

    事情是这样,我在两周前上架了一个 iOS App ,用到很大的深度学习模型,当时只支持英语输入,上架地区选了全球,当时还给 v2er 们送了些促销代码。

    这周训练了一个中文模型,想上架中文版,地区也选了全球,但被苹果审核拒绝了,还标记为spam,甚至最下面还警告我如果判定为 spam 会把我的开发者账号禁封了(当时忘截图了)。

    我解释说 App 里模型不支持多语言,不像那种可以做多语言本地化的 UI 文字,客服很快回复说理解了,但「两个同一功能的 App 不能上架在同一片领土」,我试图挣扎说:两个 App 支持的输入语言不同,貌似也不算“功能相同”?应该有在美国的中国人,或生活在中国的美国人希望使用母语输入。估计苹果有一套自己的标准,审核把之前的回复又发了一遍。

    最终我把英语版 App 从中国大陆下架了,中文版只上架了中国大陆。但这其实损害了之前付费购买了英文版的国内用户,我能做的是让他们联系我,免费赠送中文版促销代码。

    后来,我在产品推荐 App 里看到英语区用户问这俩不是同一个 App 吗,而昨晚在电报看到有国内用户问为啥英文版没了,就贴了个我回复的截图:

    总结一下造成现在这么奇怪局面的几点原因:

    • 模型是语言敏感的,不同语言的模型不一样。
    • 模型文件巨大,集成两个模型会导致 App 大小翻倍。
    • App 不能联网,无法使用翻译 API 将所有语言先翻译成英语。
    • 苹果政策导致英语版在国内被下架。

    估计审核也没见过这种情况吧。

    第 1 条附言  ·  2023-01-20 13:28:25 +08:00
    我意思是,我好像遇到了一种情形,这种情形通常只会出现在恶意 spam 和马甲包身上,但因为特殊情况和因素,在我出于正常、合法目的下发生了,神奇。
    28 条回复    2023-01-22 12:29:10 +08:00
    polo3584
        1
    polo3584  
       2023-01-20 09:05:44 +08:00 via Android
    我司以前遇到过这种问题,当时是把两个外国地区分别发包,分为两个工程,方便维护,两个工程也有不少地方代码不一样。结果某次更新就被下架了,被指两个工程代码重复性过高,最后没办法,加班把两个包合成一个包才让过。
    unnamedhao
        2
    unnamedhao  
       2023-01-20 09:05:45 +08:00 via iPhone   ❤️ 1
    可以和审核人员刚,并不是他说什么就是什么
    jstony
        3
    jstony  
       2023-01-20 09:14:19 +08:00   ❤️ 1
    有没有可能将训练好的不同语言的模型放在服务器端,类似语言包一样,当需要切换模型语言的时候,如果本地没有就从远端下载?
    lianyue
        4
    lianyue  
       2023-01-20 09:18:28 +08:00
    我觉得最好的方案就是 联网权限要到。 手动点击下载语言包模型 就好了 当模块用
    fds
        5
    fds  
       2023-01-20 09:18:56 +08:00
    1GB 其实不大呀,很多游戏都是几个 GB ,反正流量都是苹果出,放几个模型让用户自己选着用应该是最简单的办法。
    wseani
        6
    wseani  
    OP
       2023-01-20 09:20:16 +08:00
    @polo3584 还能这样,我有点害怕哪次更新就给我下架了。
    wseani
        7
    wseani  
    OP
       2023-01-20 09:22:50 +08:00
    @jstony @lianyue 隐私考虑,App 不太能联网
    Chihaya0824
        8
    Chihaya0824  
       2023-01-20 09:24:17 +08:00
    @lianyue +1 我也觉得模块化靠谱
    dd991
        9
    dd991  
       2023-01-20 09:51:38 +08:00
    +1 模块化
    okakuyang
        10
    okakuyang  
       2023-01-20 09:57:14 +08:00
    这就是典型的马甲包。
    apple 审核只在你上架的时候比较严格。
    当你同一个账户内的两个 App 高度相似的时候就可以判断为马甲包了。
    wseani
        11
    wseani  
    OP
       2023-01-20 10:22:32 +08:00
    @fds 游戏当然另当别论,但一个工具 App 1G 有点说不过去吧
    kongkx
        12
    kongkx  
       2023-01-20 13:12:08 +08:00 via iPhone
    不知道 “应用不能联网”是 产品的自我约束,还是用户的要求。
    realpg
        13
    realpg  
       2023-01-20 13:15:48 +08:00
    自己的版本规划失误喷苹果
    wseani
        14
    wseani  
    OP
       2023-01-20 13:22:11 +08:00
    @kongkx 需要访问相册,我有隐私洁癖,算是自我约束吧。
    wseani
        15
    wseani  
    OP
       2023-01-20 13:22:50 +08:00
    @realpg 大师有什么解法吗
    hguandl
        16
    hguandl  
       2023-01-20 13:33:23 +08:00   ❤️ 1
    第一次使用的时候联网下载,后续使用的时候让在意隐私的用户关闭联网权限我觉得就够了。
    wseani
        17
    wseani  
    OP
       2023-01-20 13:36:34 +08:00
    @hguandl 是不错的办法,如果不是很在意弹窗索要网络权限的话
    strengthen
        18
    strengthen  
       2023-01-20 13:39:37 +08:00   ❤️ 1
    这个好办。云端部署不同的训练的模型,可以设置规则自动分区域下载。不懂可以问我。
    also24
        19
    also24  
       2023-01-20 13:42:54 +08:00   ❤️ 1
    wseani
        20
    wseani  
    OP
       2023-01-20 13:46:02 +08:00
    @also24 学到了 lol
    lslqtz
        21
    lslqtz  
       2023-01-21 07:11:46 +08:00 via iPhone
    其实你给原来那个多加个模型和中文是最好的, 审核没问题, 用户权益也轻松继承.
    wseani
        22
    wseani  
    OP
       2023-01-21 10:09:06 +08:00
    @lslqtz 但是那样 App 尺寸就接近 600M 了,大部分人其实只用一种语言,有些臃肿。
    lianyue
        23
    lianyue  
       2023-01-21 10:10:26 +08:00
    @wseani 还有一招 给连接语言模块地址 https://xxx.xxx.xx/zh.zip 用户在浏览器下载后 使用分享功能把文件 分享到你 app 里面 就能调用储存该模块了了
    wseani
        24
    wseani  
    OP
       2023-01-21 10:13:55 +08:00
    @lianyue 原来还能这样!还没见过下载外部文件然后在 App 使用的场景,我看看👀
    lslqtz
        25
    lslqtz  
       2023-01-21 10:25:40 +08:00
    @wseani 那还是做成可选项吧, 不一定需要用浏览器, 可以内置下载功能的.
    icatme
        26
    icatme  
       2023-01-21 13:48:09 +08:00 via Android
    你可不可以预置英语模型,中文的后续下载?安卓里的游戏也好或者某些软件也好,比较大的可选数据包分开下还是挺常见的,苹果按理也支持的
    B1ankCat
        27
    B1ankCat  
       2023-01-21 14:52:52 +08:00
    @wseani #15 大师只管喷不管解决的
    wseani
        28
    wseani  
    OP
       2023-01-22 12:29:10 +08:00
    @icatme 如我在#21 所回复的那样,绝大部分人只使用某一种语言,所以增加一种永远不会用到的语言也挺奇怪的,而且需求还是不联网。

    我在想要,要是苹果支持同一个 App build 多个 target 就好了,而不是逼迫开发者必须做成两个 App 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2828 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 02:10 · PVG 10:10 · LAX 18:10 · JFK 21:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.