问一个 Mac 下一个程序的代理及相关问题。折腾了很久,一直没有搞定。
目前用的一个叫 Journey 的记日记的软件,在新版本和老版本的区别。两个版本的程序名和进程名完全一致,为了区别,我用 Journey_new 和 Journey_old 来标识。
老版本是可以从官网下载安装文件来安装的,安装后其路径为/System/Volumes/Data/Applications/
Journey.app ;新版本是只能从 Mac App Store 下载安装,安装后其路径为/System/Volumes/Data/Applications/Journey-2.localized/
Journey.app ,且 Journey-2.localized 这个文件夹下,只有
Journey_new.app 这么一个文件。
两个版本,如果是采用 Surge 翻墙,都能够正常使用。但如果是采用 Clash 系(包括 ClashX Pro 、ClashX Meta 、Clash Verge 、Clash Nyanpasu 都试过),则新版本可以正常翻墙( Proxy Mode 即可,无需开通增强模式),旧版本则不行(即便是 Global + Tun Mode )。
之所以我想搞定 Clash 对旧版本的支持,原因主要是两个方面:新版本不好用;而目前使用的机场是 Reality 协议,不支持 Surge 。
以上是背景,以下是折腾经历。
1 、我尝试过把 Journey_new 直接复制到/Applications 下(包括替换 Journey_old ),可以正常运行,且可以通过 Clash 翻墙。我也尝试过把 Journey_old 直接复制到/Applications/Journey-2.localized 下(包括替换 Journey_new ),它也可以正常运行,但仍然不能通过 Clash 翻墙。
我知道 Mac 系统的程序,很多都是一个单独的文件,放到别的路径也能够正常运行。但我的疑惑是:
1.1 )明明都是一个单独的文件,为什么新、旧版本的安装路径却不一样?尤其是新版本的安装路径 Journey-2.localized 这个文件夹下,也只有
Journey_new.app 这么一个文件,为什么还要这么复杂单独建一个文件夹?(使用过程中,也并未在同一个文件夹中生成其他文件)
这个是由 dev 来定的,还是由 Mac App Store 来决定的?
1.2 )两个版本的文件名和进程名都一致,为什么把 Journey_old 放到 Journey_new 同一个路径,但仍然不能使旧版本像新版本一样通过 Clash 翻墙?
2 、我自己也尝试过修改 Clash 下的.yaml 配置文件,想要让 Clash 支持 Journey_old 。修改的部分,主要是建立两处配置:
2.1 )- PROCESS-NAME,/System/Volumes/Data/Applications/
Journey.app,Journey
这里的进程名,除了上面的补全路径的方式 a)外,我还尝试过另外两种写法:
b )- PROCESS-NAME,
Journey.app,Journey
c) - PROCESS-NAME,Journey,Journey
2.2 )
- name: Journey
type: select
proxies:
- DIRECT
- 🚀 节点选择
- 🇺🇲 美国节点
- 🇭🇰 香港节点
- 🇨🇳 台湾节点
- 🇸🇬 狮城节点
- 🇯🇵 日本节点
- 🇰🇷 韩国节点
- 🚀 手动切换
但以上的配置都完全行不通,不知道正确的写法应该是什么样的?
谢谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
https://www.v2ex.com/t/1037891
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.