4

I want to run an iOS app (eWeLink) using the Appetize service, which I believe is an emulator. My goal is to be able to control my light switches from my Mac using the eWeLink app. In order to do that, I have to get the app as a a .zip or .tar.gz file containing the compressed .app bundle. How do I get that .app bundle?

When I go to App Store, it just wants to download directly to my iPhone. The app is available, but I want the bundle.

2
  • 2
    I think Xcode (which has simulator) runs an iOS app if it belongs to you. Other apps are encrypted and only developers or open source sites can give you the source code.
    – anki
    Commented May 19, 2019 at 17:43
  • This is really a duplicate of apple.stackexchange.com/questions/113935/… from what I can see. You’re asking to get the IPA, but really, you want to run an IPA on macOS that isn’t compiled for marzipan
    – bmike
    Commented May 20, 2019 at 1:05

4 Answers 4

3

There's multiple points to address here:

1) The Appetize service is not an emulator. It allows you to run native mobile apps in the browser in order to provide apps demos, training, testing, etc. However it does so not by emulating the ARM CPU of an iOS device, but instead works by running the Intel version of said apps natively on an Intel CPU - while providing a "simulated" operating system that maps onto the browser.

2) The app bundle you need for the Appetize service is usually obtained by building the app for the Xcode Simulator. This requires you to have the source code for the app. If the app you want to run on the Appetize service is not open source, and you have not developed it yourself (or otherwise obtained the rights for the source code) - you cannot use this method.

3) The apps you download from the App Store are meant for execution on ARM CPUs. They cannot be directly used with the Appetize service, as that requires Intel executables. However, if you do want to obtain the files, it is possible (contrary to the other answers to your question). The easiest way of doing this is to use iTunes to access the App Store and download the apps, which are then accesssible on your local disk drive. This requires you to use either iTunes 12.6.3 (or older) or one of the other solutions described here:

How do I download an iOS App (IPA) file to my Mac after iTunes 12.7 update?

4) Very recent development has shown that it is indeed in some cases possible to translate an app built for the ARM CPU for the App Store into an app built for the Intel CPU meant for the Xcode Simulator (or the Appetize service). This is done by exploiting the fact that Apple these days requires app submissions to include bitcode. You can read more about that here:

https://www.highcaffeinecontent.com/blog/20190518-Translating-an-ARM-iOS-App-to-Intel-macOS-Using-Bitcode

5) The most practical way of achieving your goal of running the eWeLink app on your Mac in order to control light switches is to run the Android version of the app through an Android environment for the Mac, such as for example BlueStacks.

2
  • Yes, thank you. I should have said that I'm pretty sure I can run it on either a Mac or a PC with an Android emulator. Genymotion, BlueStacks, etc. I think the bottom line is that I can't run the iOS version on a Mac. –
    – user618
    Commented May 19, 2019 at 22:35
  • I'd recommend that you remove your suggestion about bitcode translation. The translation process described in that article is highly experimental, only works for trivial command-line applications, and requires access to bitcode files which are not distributed through the App Store. It's not a viable solution for end users.
    – user101978
    Commented May 20, 2019 at 0:18
2

I am software developer and develop apps for iOS.

I want to run an iOS app on an emulator on my Mac

There is no iOS emulator in existence. There's an iOS simulator, available only for macOS.

In order to do that, I have to get the app as a a .zip or .tar.gz file containing the compressed .app bundle. How do I get that .app bundle?

There is no way to get an iOS .app bundle. iOS apps can (generally) be installed only on your iPhone, available only from the App Store app pre-installed on your iPhone.

When I go to App Store, it just wants to download directly to my iPhone. The app is available, but I want the bundle.

The only way you can run an app available on the App Store is on an iOS device.

The iOS Simulator is available along-with Xcode (developer tool to develop apps for various Apple hardware devices). You can build and run an app in iOS simulator only if you have access to the source code for the app (generally personal or open-source projects).

It is not possible to obtain code/app bundle for an arbitrary app available on the App Store and run it on iOS simulator.

1
  • 1
    OK, I'm looking at Appetize, which is a MacOS program that behaves, I think, like an emulator. But maybe you call that a "simulator"? It comes preloaded with a few apps, but I am unable to log into the App Store with it to get more. In order to use it, you are supposed to upload the .app bundle, and you get a link. I amtrying to run it on a MacOS system. The app I'm trying to run isn't a Mac-built app. It's eWeLink, which is used to control switches. So I guess the question is how I can run eWeLink on a Mac. I'm pretty sure I can run it on a PC with an Android emulator.
    – user618
    Commented May 19, 2019 at 21:23
1

Note, I'm not a developer. That said I believe that the only way you are going to run anything in the Xcode Simulator is if it belongs to you.

The way I understand it the Simulator is not a VM (like Virtualbox, Parallels or VMWare) to run any iOS app on your Mac. Rather it is a troubleshooting/development tool to allow you to work on software that you wrote yourself before you install it on your iOS device of choice.

1

Not possible.

Appetize.io is not an emulator. It is a service which provides an interactive video stream of iOS Simulator running on a macOS system. iOS Simulator is a part of the Xcode development tools, and can be downloaded for free to run on any macOS system.

The iOS Simulator is also not an emulator. It is an application which runs on macOS and runs iOS application bundles which have been compiled by a developer to run under the Simulator environment. These application bundles contain x86 code, instead of the ARM code that is typical for an iOS application. iOS applications downloaded from the App Store do not contain x86 code, so they cannot be run under the Simulator.

3
  • Just wanted to add that it appears that at least for Android apps, one can easily download an .apk file that I guess is the Android equivalent of .app. So Mac won't let you have it, but I guess Google will.
    – user618
    Commented May 20, 2019 at 2:19
  • @user618 It's not a matter of being able to download the bundle or not. There's ways to download an iOS app bundle on macOS; there's just no way to run it.
    – user101978
    Commented May 20, 2019 at 4:07
  • As I said, Appetize asks you to upload a bundle so you can run it. You can argue with Appetize.
    – user618
    Commented May 20, 2019 at 12:28

You must log in to answer this question.

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