在 macOS 上运行 iOS 应用程序

在 macOS 上运行 iOS 应用程序

我已成功下载.ipaiOS 应用程序 Pythonista3 的文件。我非常喜欢它,觉得它非常有用,所以我尝试在我的 MacBook 上运行它;更大的屏幕、更好的键盘等等。我认为最好的方法是使用 Xcode 模拟器。

首先,我把它Pythonista3.app放在我的桌面上。我在终端中运行:

xcrun simctl install C7F3CA5B-3F59-49F3-986C-4C7C43D8BFE6 "~/Desktop/Pythonista3.app"

请注意,我打算在 iPad Pro Gen. 3(12.9 英寸)上运行它。

一切正常:应用程序安装完成,名称旁边有一个小点。但我点击它,它几乎进入全屏(动画),然后关闭(无动画),只剩下主屏幕盯着我。

我尝试以编程方式安装它,并设置了详细选项:

xcrun -v simctl install C7F3CA5B-3F59-49F3-986C-4C7C43D8BFE6 "~/Desktop/Pythonista3.app"

输出如下(终端)

xcrun: note: PATH = '/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.5/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin'
xcrun: note: SDKROOT = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk'
xcrun: note: TOOLCHAINS = ''
xcrun: note: DEVELOPER_DIR = '/Applications/Xcode.app/Contents/Developer'
xcrun: note: XCODE_DEVELOPER_USR_PATH = ''
xcrun: note: xcrun_db = '/var/folders/22/vc4mhyq143nc34kzl_n6v3j80000gn/T/xcrun_db'
xcrun: note: xcrun via simctl (xcrun)
xcrun: note: database key is: simctl|/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk||/Applications/Xcode.app/Contents/Developer|
xcrun: note: lookup resolved in '/var/folders/22/vc4mhyq143nc34kzl_n6v3j80000gn/T/xcrun_db' : '/Applications/Xcode.app/Contents/Developer/usr/bin/simctl'

当我尝试运行Pythonista3可执行文件(的子程序Pythonista3.app)时,也出现了一些非常有趣的行为:Operation not permitted大致与终端告诉我的一样。我实际上完成了整个过程,并(暂时)通过禁用了系统完整性保护csrutil,但即使不允许我运行 UNIX 可执行文件。我尝试删除armv7依赖项/要求,但Info.plist没有任何好处。

这可能是代码签名问题吗?我听说过-SimulateApplication在模拟器上使用选项,但还没有找到正确的方法(Xcode 更新令人困惑的东西)。

我也知道有很多人说在 MacBook 上运行 iOS 应用程序根本不可能,但我相信无论如何都有办法……

有人可以帮我将应用程序加载到模拟器上,并使其在通过 LaunchScreen.storyboard 之前运行而不会崩溃吗?

答案1

他们说得对。你不能*

如果 .ipa 仅针对不同的处理器架构(即移动设备上的 armv7)构建,它将无法在模拟器上运行。当您从源代码为 xcode 模拟器构建应用程序时,它会针对 Mac 的架构进行构建。

这就像问如何组装一些架子,说明书上说要用锤子和钉子,但你只有口香糖和胶带。即使最终结果相似,底层指令也完全不同。

您自己说,有很多声音说运行这个是不可能的。他们是正确的,除非您创建自己的模拟器来准确模拟 armv7 架构。

正如这里所述如果应用程序曾是为模拟器构建,但在另一台计算机上,您只需将应用程序包拖到模拟器中,只要它是为相同的 iOS 和设备模拟器构建的。

* 除非你绝望:逆向工程

如果您可以为 OSX 架构重建应用程序,则可以绕过上述限制。为此,您需要一些类似于源代码的东西。

这个问题介绍如何从 .ipa 获取源代码。这并非易事,也不一定能保证成功,但有很多可能的答案可以尝试和遵循。

你可以做什么

您的目标是使用更大的屏幕和更好的键盘访问该应用程序。您无需在 MacBook 上运行该应用程序即可实现此目标。相反,您可以将手机/iPad 显示镜像到 MacBook并使用macbook 键盘打字

屏幕镜像:

您可以使用x-mirage空气服务器或 Reflector(它们是带有免费试用版的付费应用程序)用于镜像,或者使用链接答案中的免费方法:

  1. 如果 Mac 上的 QuickTime 已打开,请退出。

  2. 通过 Lightning 线缆将您的 iPhone、iPad 或 iPod touch 连接到 Mac。

  3. 在 Mac 上打开 QuickTime,然后选择文件>新电影录制

  4. 录制窗口将会出现。点击录制按钮旁边的箭头,然后从出现的下拉菜单中选择您的 iPhone。

  5. 单击“录制”按钮,然后在 iPhone 上处理您的业务。

键盘共享:

您再次需要第三方软件。空气型免费。1键盘类型2电话已付款。

相关内容