应该很少 iOS 开发会遇到的一个 bug ,供大家参考。
事情是这样,我在两周前上架了一个 iOS App ,用到很大的深度学习模型,当时只支持英语输入,上架地区选了全球,当时还给 v2er 们送了些促销代码。
这周训练了一个中文模型,想上架中文版,地区也选了全球,但被苹果审核拒绝了,还标记为spam,甚至最下面还警告我如果判定为 spam 会把我的开发者账号禁封了(当时忘截图了)。
我解释说 App 里模型不支持多语言,不像那种可以做多语言本地化的 UI 文字,客服很快回复说理解了,但「两个同一功能的 App 不能上架在同一片领土」,我试图挣扎说:两个 App 支持的输入语言不同,貌似也不算“功能相同”?应该有在美国的中国人,或生活在中国的美国人希望使用母语输入。估计苹果有一套自己的标准,审核把之前的回复又发了一遍。
最终我把英语版 App 从中国大陆下架了,中文版只上架了中国大陆。但这其实损害了之前付费购买了英文版的国内用户,我能做的是让他们联系我,免费赠送中文版促销代码。
后来,我在产品推荐 App 里看到英语区用户问这俩不是同一个 App 吗,而昨晚在电报看到有国内用户问为啥英文版没了,就贴了个我回复的截图:
总结一下造成现在这么奇怪局面的几点原因:
估计审核也没见过这种情况吧。
1
polo3584 2023-01-20 09:05:44 +08:00 via Android
我司以前遇到过这种问题,当时是把两个外国地区分别发包,分为两个工程,方便维护,两个工程也有不少地方代码不一样。结果某次更新就被下架了,被指两个工程代码重复性过高,最后没办法,加班把两个包合成一个包才让过。
|
2
unnamedhao 2023-01-20 09:05:45 +08:00 via iPhone 1
可以和审核人员刚,并不是他说什么就是什么
|
3
jstony 2023-01-20 09:14:19 +08:00 1
有没有可能将训练好的不同语言的模型放在服务器端,类似语言包一样,当需要切换模型语言的时候,如果本地没有就从远端下载?
|
4
lianyue 2023-01-20 09:18:28 +08:00
我觉得最好的方案就是 联网权限要到。 手动点击下载语言包模型 就好了 当模块用
|
5
fds 2023-01-20 09:18:56 +08:00
1GB 其实不大呀,很多游戏都是几个 GB ,反正流量都是苹果出,放几个模型让用户自己选着用应该是最简单的办法。
|
8
Chihaya0824 2023-01-20 09:24:17 +08:00
@lianyue +1 我也觉得模块化靠谱
|
9
dd991 2023-01-20 09:51:38 +08:00
+1 模块化
|
10
okakuyang 2023-01-20 09:57:14 +08:00
这就是典型的马甲包。
apple 审核只在你上架的时候比较严格。 当你同一个账户内的两个 App 高度相似的时候就可以判断为马甲包了。 |
12
kongkx 2023-01-20 13:12:08 +08:00 via iPhone
不知道 “应用不能联网”是 产品的自我约束,还是用户的要求。
|
13
realpg 2023-01-20 13:15:48 +08:00
自己的版本规划失误喷苹果
|
16
hguandl 2023-01-20 13:33:23 +08:00 1
第一次使用的时候联网下载,后续使用的时候让在意隐私的用户关闭联网权限我觉得就够了。
|
18
strengthen 2023-01-20 13:39:37 +08:00 1
这个好办。云端部署不同的训练的模型,可以设置规则自动分区域下载。不懂可以问我。
|
19
also24 2023-01-20 13:42:54 +08:00 1
|
21
lslqtz 2023-01-21 07:11:46 +08:00 via iPhone
其实你给原来那个多加个模型和中文是最好的, 审核没问题, 用户权益也轻松继承.
|
23
lianyue 2023-01-21 10:10:26 +08:00
@wseani 还有一招 给连接语言模块地址 https://xxx.xxx.xx/zh.zip 用户在浏览器下载后 使用分享功能把文件 分享到你 app 里面 就能调用储存该模块了了
|
26
icatme 2023-01-21 13:48:09 +08:00 via Android
你可不可以预置英语模型,中文的后续下载?安卓里的游戏也好或者某些软件也好,比较大的可选数据包分开下还是挺常见的,苹果按理也支持的
|