2021.9.1
开学第一周过半,事情没到忙不过来的程度但也不少,潜意识总觉得应该周五了才对,其实还只是周三的晚上,想起来丁丁历险记的那个 "what a week huh" 的 meme。
这周对我影响最大的就是,我的 Google Play 账号又被封了。要解释为什么被封很困难,因为似乎我的确有 violation 的地方,但整个封号流程又充满逻辑上自相矛盾的地方,更不用提 Google Play 一点也不透明的工单系统和充满疑问的永久封禁举措。
简单来说,我在今年之前一直使用的是 FinGameWorks 这个账户发布我的 Android 软件,这个账号在 15 年我刚注册的时候上架了一些很基本的软件,譬如 Stillness 这个小游戏和用 Processing 写的 METER clone。彼时 Google Play 的上架很简单,需要的 metadata 也极少,因此这几个软件毫无问题地上了架。18 年的时候 Google Play 开始要求更多的 metadata 信息譬如是否适合儿童使用,以及要求 privacy policy,而我当时正因为学校毕业和创业公司的问题处于 AFK 的状态,也就没再管 Google Play 的邮件,之后 Google Play 就因此把我的一些没有足够 metadata 的软件下架了,措辞也十分客气,读起来一点也都没有 violation 的感觉:
Hi developers at Justin Fincher,
Your app, Cyan, com.JustZht.Cyan, has been removed from Google Play because you have not made a child-directed declaration. Google Play developers are required to declare in the Play Console whether their app is primarily directed to children under the age of 13 as defined by the Children’s Online Privacy Protection Act (COPPA).
This app won’t be available to users until you submit a compliant update. If approved, your app will again be available with all installs, ratings, and reviews intact.
Action required: Declare whether your app is primarily child-directed
...
If you’ve reviewed the policy and feel this removal may have been in error, please reach out to our policy support team.
...
Thanks for helping us provide a transparent experience for Google Play users.
下架就下架呗,我的账号也并未因此受到任何限制,19 年至 20 年,我给我的一个软件推了大版本更新(Skyline),甚至在准备留学生申请期间连着发了五个新软件(UniLWP.Droid Tech Demo,Diffuse Free,Diffuse Paid,Metropolis,以及 Diorama),新增了大约 130k 的下载量,FinGameWorks 这个开发账户一直毫无问题。
接着在 20 年底,我的 UniLWP.Droid 框架成型,作为 Unity based LWP 计划的一部分,我注册了一个新的开发者账号准备专门分发相对简单,廉价,制作周期短的三维动态壁纸(相较于开发周期动辄 2-3 个月,全面采用 Material Components 原生界面的已有动态壁纸来说)来证明 UniLWP 的能力。这个新的账号,Interseasonal Software,在开始走第一个软件的上架流程后就突然被封了,原文如下:
尊敬的Interseasonal Software开发者:
您好!我们发送此电子邮件是为了通知您,您的 Google Play 开发者帐号已被终止。
终止原因:此帐号或相关帐号之前多次违反开发者计划政策和开发者分发协议(我们之前已向您在注册 Google Play 开发者帐号时所用的电子邮件地址发送电子邮件,其中做出了相关说明)。
根据我们违规处置流程的规定,如果您屡次或严重违反我们的政策,我们可能会终止您的 Google Play 开发者帐号及相关的 Google Play 开发者帐号。
您可以访问开发者政策中心,更详细地了解我们如何贯彻实施开发者计划政策。如果您已阅读相关政策,并认为此终止决定可能有误,请与我们的政策支持团队联系。
请勿尝试注册新的开发者帐号。我们目前不会恢复您的帐号。
我就很摸不着头脑,申诉后获得的回复也很套话:
After review of your appeal, we're unable to reinstate your developer account.
Your Google Play Developer account has been terminated due to multiple violations of the Developer Program Policies by an associated Google Play developer account. We’ve reviewed and confirmed this association.
行吧,此时我也准备动身去读书了,因此也就只当是 Google Play 算法的一个失误,没再去管。但考虑到学生身份的一系列问题,和我有关联的财务问题最好还是有一事少一事,还是需要一个新的开发者账号,托管在他人名下。于是我就注册了 Contrail Software 并将 FinGameWorks 的大部分软件转移至了这个账户下,并没再动过。这个账号也的确相安无事,在我读书的这半年维持着软件的上架状态。
接着就到了这学期开学前夕,看到 Diffuse 有 8 个月毫无更新的用户开始写信问我是不是放弃了这个项目,我也考虑给 Diffuse 修下 Android 12 上的一些问题,所以在结束苹果实习的那两周抽了点时间升级了下 LibGDX,Sentry,和 Material Componments 推了一个新的 beta 版本,然后就要开学了,索性我就把 beta 推到了 public release channel,开始了占总用户 10% 的渐进分发。
然后 Contrail Software 就被封了。这周二早上收到了一封和 Interseasonal Software 收到的措辞一样的信:
This is a notification that your Google Play Publisher account has been terminated.
REASON FOR TERMINATION: Prior violations of the Developer Program Policies and Developer Distribution Agreement by this or associated accounts as outlined in previous emails sent to the registered email address(es) of the Publisher account(s).
Google Play Publisher suspensions are associated with developers, and may span multiple account registrations and related Google services.
You can visit the Developer Policy Center to better understand how we enforce Developer Program Policies. If you’ve reviewed the policy and feel this termination may have been in error, please reach out to our policy support team.
Do not attempt to register a new developer account. We will not be restoring your account at this time.
都在说一个 “associated Google Play developer account” 的 “multiple violations”,但是不说哪一个账号的什么 violation,完全是让人猜的状态。我于是猜想是不是之前 FinGameWorks 那几个被 Google 下架的软件,于是去把那几个软件缺失的 metadata 全补上了,修改审核通过(也就是变为正常状态)后再选择了我自己下架,觉得这样应该就算是解决可能的 violation。值得注意的是,作为 Contrail Software 仅有的关联账户,FinGameWorks 此时直到今天仍然是活跃的,毫无被封号的迹象,这也是我不理解的一点,按理说如果按照邮件里说关联账号也就是 FinGameWorks 这么劣迹斑斑,不应该早就没了?但 Appeal 后结果还是一样:
After review of your appeal, we're unable to reinstate your developer account.
Your Google Play Developer account has been terminated due to multiple violations of the Developer Program Policies by an associated Google Play developer account. We’ve reviewed and confirmed this association.
Google Play Developer account terminations are associated with developers and may span multiple account registrations and related Google services. Do not attempt to register a new developer account. Any new accounts will be closed and your developer registration fee will not be refunded. We recommend that you use an alternative method for distributing your apps in the future.
仍然是毫无透明度的套话回复,和 Google Play Developer 的 Twitter DM 里也直说这个决定是 final,意味着似乎他们也不打算再多看一眼。
那么这意味着什么呢,首先包括 Skyline,Diffuse,Metropolis 在内的 Android 软件在 Google Play 上全部没了,也没有转移的选项,因为一旦封号,整个开发者后台就只有政策页面,而且一段时间内只能申诉一次,申诉被回复后就没有申诉按钮了。对用户来说比较麻烦,毕竟之前买的软件突然没了,像是跑路了一样。对我来说可能近期找工作也比较麻烦,Diffuse 算是我用 LibGDX 写 Kawase Blur 和 Domain Wrapping 的一个例子,原本还想用这个例子去面一些可能对图形学有要求的团队来着,结果现在用来示范的软件没了。此外简历上我还写着 Skyline 曾经是 Google Play 当日付费总排行第二名的软件来试图说明 Indie Business 上的成就,现在用来证明的软件也没了。
至于我准备怎么做,可能把这些软件改成完全免费甚至开源的版本,改包名后用 FinGameWorks 重新上架,至少保证我的独立开发 Portfolio 还在,找工作也好,保留作为独立开发者最后的骄傲也好,或者只是觉得“有人用我的软件我很开心” - 这倒不是被封之后突然开始求可怜起来,我在给很多用户的邮件里都是这么写的,如果不是这个心态,我也不会在 Reddit 上给用我盗版的人发正版的激活码了。至于 Google Play 的后续软件开发,比如 Diorama 或者几个还在 WIP 的项目,可能就完全不干了,因为我也不确定会不会因此又封我账号。
最后,至于我怎么想,我其实也没啥想法,我现在只是毫无波动地在这里记录整个过程,我也很累,觉得独立开发者这个爱好不太想做了。以前做独立开发者是觉得在创造而不是在消费,觉得自己能想用什么软件就自己做出来,这些都是好的 - 我也仍然相信这些,只是近期独立开发者的体验,很多时间并不是那么开心,受制于各种限制,或者是身份的原因,或者是实习条款的原因,我很长一段时间没办法更新或者发布软件,更多的时间是在和工单系统扯皮,获得类似于在政府机关能获得的套话回复,自己无能为力。当然也不是不可以再去发个 Medium 发个推,买个推广,给科技媒体发邮件求报道,采取一些媒体上的举措引起开发者关系的注意 - 去 Google 一搜,排名前几个的被封的账号都是这么要回来的 - 但我也没有这个时间和金钱去投入了,说到底,我也只是一个在 workload 据说很重的学校里里读研究生同时又在找毕业后的工作的普通学生罢了,与其继续在独立开发这个事情上挣扎浪费时间寻求账号解封,不如重新捡起来 hackathon 打打,又好玩又能 network,说不定还能拿点奖金。
最后,近期的很多事情,都更让我相信村上春树关于“站在鸡蛋一遍”的立场,这个怕是也不例外,不管 Google Play 造福了多少独立开发,里面的自动化系统一旦出了差错,接待我的工单人员也都像是傻子一样连个具体的原因都说不出来,对于他们来说只是上个班 another day another dollar,对我来说是这两年很多熬夜做出来的,我引以为豪的数字工艺品,突然就没了最官方的分发渠道,而没了官方渠道,基本上也就是没了。