V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
3dward
V2EX  ›  macOS

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

  •  
  •   3dward · 2023-05-07 01:31:36 +08:00 · 1824 次点击
    这是一个创建于 568 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请问如何在 M1 上通过命令行启动 iOS 的 APP ?

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