肇鑫的日常博客

日常

iMac 27 5K 2014 Late升级到macOS 13 Ventura的简单步骤

由于2041Late的iMac 5K,苹果官方最多只支持到macOS 11 Big Sur。所以,我的macOS 12 Monterey和macOS 13 Ventura都是通过OPLP进行安装的。

OCLP是一款第三方的引导程序,它包含引导启动系统和提供部分驱动的功能。

OCLP的5.0正式提供了对于macOS 13 Ventura的支持,所以在升级到新系统之前,我们先升级OCLP到5.0。

重启系统,选择系统的自动更新安装macOS 13 Ventura。

安装完毕重启后,我们发现,原本的屏幕分辨率设置没有了,显示器变成了5K原生的分辨率,字体特别小,而且系统十分卡顿。

这是因为macOS 13 Ventura中移除了对与iMac 5K显卡的驱动支持,此时是没有驱动硬件加速的。

再次打开OCLP,选择"Post Install Root Patch",然后选择“Install Root Patches”。这会自动下载安装显卡驱动。

按照提示安装完成并重启后,就一切恢复正常了。

记录一次苹果审核上诉的全程

当一款应用编码完成、测试通过之后,我们需要将它上架到苹果商店。这时就需要和苹果的审核人员打交道。苹果的审核人员,会从用户和苹果公司等多个角度,对于应用进行审查。他们审查的依据,就是苹果公布的App Store Review Guidelines。但是由于审核人员存在自由裁量权,你经常会遇到不同的审核人员,对于同一件事,出现要求不同的情况。

当审核人员将你的应用拒绝,并且提出拒绝理由之后,你一般有这么几个选项:

  1. 和审核人员沟通你的设计理念,尝试说服对方。
  2. 按照审核人员提供的思路,对于应用进行修改,然后再次上传应用,重新审核。
  3. 如果你觉得你的理念是对的,审核人员对于规则的理解有误,而你又无法成功说服对方,你可以选择上诉。即将你们二者的矛盾进行升级。有上一级的部门来进行仲裁。

上诉曾是一个有力的工具。当你选择上诉后,苹果会打越洋电话过来,听取你的说法。虽然最终结果不见得有利与你。但是在程序上,开发者是感觉受到重视的。
可现如今,上诉往往无法得到电话沟通。甚至很难得到一个确定的结果。苹果将上诉权限交由审核团队自身负责。即负责处理上诉的,就是和你发生理念冲突的审核人员的同事,如果不是他本人的话。我不知道苹果为何这么做,但是这么做本身就是会滋生腐败的。

缘起

2002年9月25日,我向往常一样上传了一个macOS版咕唧的新版进行审核。这个新版是为了配合iOS新版发布而进行修改的,改动极小。可以说表面上看不到任何变化。但是就是这个版本,在9月25日上午7点20分被拒绝了。拒绝的理由也是一个全新的理由,说是当用户点击窗口的关闭按钮时,应用没有退出,而是隐藏在了系统菜单图标。并且建议我将这个行为该为非默认,同时提供一个选项给用户,让用户对这个行为自行选择如何做。

审核人员的这个建议在我看来明显就是一个过渡设计。因为对于存在系统菜单图标的应用来说,点击窗口的关闭按钮之后,应用隐藏到系统菜单图标这件事本身,就是通用做法。因为如果点击窗口的关闭按钮之后,应用就完全退出了。那我制作系统菜单图标还有什么意义呢?而且我的应用也不是无法退出。在应用显示的情况下,使用系统默认cmd+q或者菜单中的“退出 咕唧”,应用都是可以正常退出的。

我将我的想法回复给了审核人员。审核人员还是坚持己见。我见到他如此坚持,就回复他说,如果这个我们没发达成一致,那我就只能上诉了。结果审核人员毫无惧色,甚至直接回复了我上诉的链接。

我开始意识到有些不对。这上诉是不是有什么猫腻啊。怎么这审核的这么积极呢?不过既然说了,那就得做。于是我就这个应用审核被拒进行了上诉。在上诉中我提到,我这个应用被拒的特性,几年前就通过了,这么多年来其他审核的人员从来没有就这个特性提出任何异议。直到这次。

9与25日半夜10点08分,我获得了苹果审核团队的自动邮件,告知我上诉已经收到,将尽快调查并将结果告知我。

十日后

说是尽快,但是十天了都还音讯全无。苹果没给我电话,也没有发邮件给我。这是被冷处理了?

2022年10月5日上午7点19分,我回复了苹果的那封所谓尽快的邮件。询问苹果10天过去了,有结果了吗?结果这封邮件石沉大海,没有得到任何回复。

自救

我一看这样不行啊。上诉没结果。之前的应用被拒没解决。我的新版已经被挡住10天了。于是我决定自救。修改版本号之后,重新上传了一个新版要求再次审核。

有趣的事情来了,我这新版上传之后,10月6日半夜9点30分,苹果的审核团队主动给我发了一封邮件。说注意了我又上传了一个版本的应用,并说会审核这个应用,然后说如果再次被拒了,直接和审核人员沟通即可。

说得挺好,结果这个版本在进入“审核”状态之后,48小时都没有通过。也没有任何反馈。这在我看来,就是出问题了。于是我在10月8日上午7点33分,回复了审核团队的邮件,我说已经审核超过48小时了,能不能加速一下?这封邮件没有收到任何回复。

没办法,我只能手动撤销审核,然后又重新上传了一个不版本进行审核。这个版本审核人员找个小理由拒绝了。我修改了应用之后,又上传了一个版本。这个版本没有被找理由拒绝,但是又开始了多天“审核”的状态。就是进入“审核”之后就出不来。

10月18日上午7点48分,我给苹果的审核团队再次回复邮件。用的还是他发给我的那个说注意到我新上传了新版的那个邮件。我问,上诉的结果是什么?我非常关注这个上诉的结果,是因为它现在阻挡了我应用进行审核。对于我的新版应用,应用处在“审核”状态好几天了。我想不出任何原因为什么会出现这个问题,除了这个上诉。所以必须给我一个上诉的结果,什么结果都可以。不然我只能再次上诉了。因为这个无穷无尽的审核是不可接受的。

10月18日半夜10点32分,我收到了苹果的回复。说是已经将我这个问题提升了权重给苹果内部团队。说我这边无需采取任何操作。

于此同时,我发现我的应用已经审核通过,就等我手动发布了。

后记

所以这次上诉应该就算告一段落了。苹果虽然没有给我一个明确的上诉结果。但是我的应用特性在未修改的情况下,新版得到了审核通过。这也算是支持了我的理念了。不过整体花费的时间将近一个月,还是挺浪费时间的。

Admob无法注册问题的解决

起因

为了写这篇文章,我花掉了136元。

最近考虑给iOS应用添加广告。首选当然是Google的Admob,可是申请的时候我才发现。我的常用Gmail曾经申请过Admob,但是由于后来没使用,账号被停用了。需要激活。重新激活的最后一步,总是提示错误。

好在我还有另外一个Google账户,结果这个账户在注册的最后一步,也总是遇到错误。

实在没办法了。去淘宝吧。淘宝找到一个商家说是可以帮忙验证地址,价格100块。他倒是把我的账户给注册成功了。但是网页我还是打不开,一直转圈。我问他,他说需要代理开全局,我说我已经开全局了啊。问他还有别的办法没有?他让我下载一个微软的远程桌面。我以为他要协助我处理。结果安装完了之后,他说可以去云厂商那里申请一个远程主机,然后用远程桌面登陆。还说他用的是腾讯云的。碰巧,这时,我的网页突然能上去了。我确认了一下,就给他付了款。

到了昨天下午,我又想上的时候,发现还是转圈,网页上不了。于是我开始研究这个远程桌面。

在Ubuntu 20.04下安装xfce4和vnc

安装

apt install xfce4 xfce4-goodies
apt install tightvncserver

配置密码

vncserver

按照提示输入密码,vnc不需要用户名,只有一个密码需要设置。

设置默认启动xfce4

先杀掉之前的vnc实例。

vncserver -kill :1

备份并新建文件

mv ~/.vnc/xstartup ~/.vnc/xstartup.bak
nano ~/.vnc/xstartup

内容如下:

#!/bin/bash
xrdb $HOME/.Xresources
startxfce4 &

给新文件加上运行属性

chmod +x ~/.vnc/xstartup

创建启动和停止脚本

start.sh

#!/bin/sh
vncserver -geometry 1920x1080 -depth 24

stop.sh

#!/bin/sh
vncserver -kill :1

给两个脚本分别加上运行属性

chmod +x start.sh
chmod +x stop.sh

每次运行vncserver都会新建一个实例,顺序按照1、2、3、4类推。所以需要kill掉旧实例。

开启防火墙的5901端口

ufw allow 5901

运行

我使用的是VNC Viewer,只需要输入ip地址后面跟上:5901,然后在弹出的界面输入密码就可以了。

由于我的VNC只是偶尔需要用一下,我没有设置成系统自启,而是需要时通过start启动,用完了用stop杀掉,这样比较安全。

最后说说admob的问题

admob应该是为了防止有人骗点击,所以对于用户的ip审核比较严格。当我们翻墙时,即使使用了全局代理,但是原本的上网的ip还是能够检测到的。因此,admob认为这样的环境不合格。但是这其实是扩大化了。

另外,如果你使用的Firefox或者Safari等非Chrome的浏览器,admob甚至直接会显示网页错误。只有Chrome才不会显示错误,一直转圈圈。

当使用VNC之后,我用Firefox就能正常上admob了。因为VNC相当于是直接从云主机登陆。虽然IP地址和翻墙的一样,我使用同一台云主机。但是此时admob就能过了。

我使用的是腾讯云的36元一个月的主机。结果安装成功之后,我又在我原本翻墙的主机上试了一下,通过vnc一样能上admob。可见,能不能上的关键,不是主机所在的位置,而是你上网时浏览器的环境。如果是翻墙上,就会被拒。如果vnc直连,就没问题。