0

I have managed to download the .ipa file for an iOS application Pythonista3. I like it so much, and find it so useful, that I am trying to run it on my MacBook; bigger screen, better keyboard, et cetera. I have figured that the way to go is the Xcode simulator.

Firstly, I have the Pythonista3.app sitting on my desktop. I run in the terminal:

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

Note that I am aiming to run this on the iPad Pro Gen. 3 (12.9 in.)

All is fine: The app installs, completes, with a little dot by the name. I click it however, and it just about enters full screen (animations) before it closes (no animations), and I am left with a home screen staring at me.

I have tried installing it programmatically, with the verbose option set:

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

With the following output (terminal)

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'

There was also some very interesting behaviour when I tried to run the Pythonista3 executable (child of Pythonista3.app) instead: Operation not permitted were roughly what the terminal told me. I actually went the whole way and (temporarily) disabled System Integrity Protection via csrutil, but even this didn't allow me to run the UNIX executable file. I tried removing the armv7 dependency/requirement from Info.plist without any benefit.

Might this be a code signing issue? I have heard of using a -SimulateApplication option on a Simulator but have not found out properly how to do this (Xcode updates confusing stuff).

I Also know there are a heck of a load of voices saying that running iOS apps on a MacBook is just not possible, but I believe there is a way, somehow...

Can somebody please help me load the app onto the Simulator, and make it run without crashing before it gets past the LaunchScreen.storyboard?

1 Answer 1

3

They're right. You can't*

If the .ipa was built only for a different processor architecture (i.e., the armv7 on mobile devices) it will not run on the simulator. When building an app yourself from source for the xcode simulator, it builds it for the Mac's architecture.

It's like asking how to put together some shelves using instructions to that tell you to use a hammer and nails, but when you only have chewing gum and sticky tape. The low-level instructions are totally different, even if the end result is similar.

You state yourself that where are a lot of voices saying running this is not possible. They're correct, unless you create your own simulator that accurately emulates the armv7 architecture.

As stated here if the app was built for a simulator, but on another computer, you can simply drag the app bundle into the simulator, so long as it built for the same iOS and device simulator.

* Unless you're desperate: Reverse Engineering

The above limitation is bypassed if you can rebuild the app for the OSX architecture. To do that, you need something resembling the source code.

This question covers how to go about getting the source from a .ipa. It isn't easy or guaranteed, but there are lots of possible answers to try and follow.

What you could do instead

Your goal is to access the app with a larger screen and better keyboard. You don't need to run the app on the macbook to achieve this. Instead, you can mirror the phone/iPad display to the macbook and use the macbook keyboard to type.

Screen mirroring:

You can use x-mirage, airserver or Reflector, which are paid applications with a free trial, for the mirroring, or use the free method in the linked answer:

  1. Quit QuickTime on your Mac if it is open.

  2. Connect your iPhone, iPad or iPod touch to your Mac via a Lightning Cable.

  3. Open QuickTime on your Mac, and select File > New Movie Recording.

  4. A recording window will appear. Click the arrow next to the Record button, and select your iPhone from the dropdown menu that appears.

  5. Click the Record button and go about your business on your iPhone.

Keyboard sharing:

Again you'll need 3rd party software. Airtype is free. 1keyboard and type2phone are paid.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .