如何在 M1 上通过命令行启动 iOS 的 APP?

2023-05-07 01:31:36 +08:00
 3dward
请问如何在 M1 上通过命令行启动 iOS 的 APP ?

其实我是想查看某个 iOS APP 的网络请求。除了配置全局代理外,我只想给这个 APP 配置代理不影响其它 APP 的正常网络请求。
而这个 APP 会请求的域名也不确定,所以用 Pac 文件也不是很合适。
所以我就想能不能像 Mac 原生 APP 一样,我通过命令行设置代理来启动。
但是我在 M1 上用命令行启动的时候,会报应用已损坏的错误。
也尝试了用 `xattr` 来取消 Apple 对 APP 的限制,仍然无法启动。
因此,想请教一下有没有人有经验或者指点一下如何才能实现在 M1 上命令行启动 iOS APP 。
1853 次点击
所在节点    macOS
11 条回复
j20001112
2023-05-07 02:40:40 +08:00
用的哪些 APP?有很多 APP 下架了 mac app store,只能砸壳开发者证书重签名
3dward
2023-05-07 10:08:12 +08:00
@j20001112 App 是可以用过双击正常在 M1 启动的,操作也正常。我也看了进程,发现会放在 `/var/private` 里面,但是不清楚如何通过命令行启动
juggtt213
2023-05-07 11:19:37 +08:00
我试了一下商店下的 iosapp 和普通的 Mac 软件一样用 open -a “名字” 就可以打开
3dward
2023-05-07 11:49:56 +08:00
@juggtt213 我试了一下确实可以了,谢谢啦。之前我都是用 shell 的方式,试过 open ,没有加 a 参数,所以不行。我再试试能不能通过 open 带进去代理参数打开 app
xtinput
2023-05-07 18:18:26 +08:00
抓包工具会根据进程分组的呀,找到那个 app 的进程,在抓包工具里看就行
Leonard
2023-05-08 01:38:14 +08:00
抓包不就行了?
653513754
2023-05-08 10:05:52 +08:00
只要修改 iOS 的 macho 文件的 LC_BUILD_VERSION 为 PLATFORM_MACCATALYST 就可以在 Mac 上运行了,不过可能会有部分库不兼容的情况
3dward
2023-05-08 13:27:54 +08:00
@xtinput 是的,抓包工具可以根据 App/进程 /域名分组。因为本质上抓包工具就是设置代理,而我不想设置全局代理,最后通过 Proxifier 实现了。
3dward
2023-05-08 13:30:10 +08:00
@Leonard 是的,最后通过 Proxifier 实现了。
3dward
2023-05-08 13:34:41 +08:00
@653513754 请问,如果我不能拿到源代码。只是通过 App Store/TestFlight 下载的话,还可以修改这些文件吗?
我发现 MacOS 原生的应用可以通过命令行启动 `/Applications/TestFlight.app/Contents/MacOS/TestFlight`,而 iOS 的是有 Wrapper ,不能通过命令行直接启动,只能用 `open -a` 的形式启动。
653513754
2023-05-08 19:03:15 +08:00
@3dward 可以的 PlayCover 的原理就是修改 macho 的 LC_BUILD_VERSION

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/937970

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX