I’m using a MacBook Pro with an M2 chip and want to run iPhone-only apps directly on it. I’ve tried using the iOS Simulator through Xcode, but it doesn’t provide access to the App Store, so I can’t install those apps easily.
Are there any reliable options or workarounds for using a MacBook iPhone emulator to run and test iPhone apps—especially those not available outside the App Store? Would sideloading or any third-party tools help in this case?
Hey @klyni_gg I ran into the same roadblock when I wanted to test a couple of App Store-only apps on my Mac. The Xcode simulator is great for development, but yeah, it won’t let you access the App Store or install regular iOS apps.
What helped me was using Apple’s “sideloading” feature on M1/M2 Macs. If the app you want was ever downloaded on your iPhone using the same Apple ID, you can try installing it via the Mac App Store under your purchased items.
It doesn’t work for every app (developers can opt out), but I was able to run a few iPhone-only apps this way, no third-party tools needed.
Hope this was helpful 
In my case, I needed to run an internal company app that’s not available on the App Store, and the only way I got it working was via sideloading using Apple Configurator 2.
You’ll need the .ipa file and a trusted signing certificate. I connected my iPhone to the Mac, installed the app there first, then used a trick with iMazing to extract the IPA and try it on the Mac.
It’s a bit of a stretch, but for testing non-App-Store apps, it did the trick. Just be cautious about signing issues and provisioning profiles, it gets technical fast.
Honestly, I gave up on the emulator route when I couldn’t get App Store apps to run.
What I ended up doing was screen mirroring from my iPhone to my Mac using QuickTime Player or tools like Reflector. It’s not “running” the app on the Mac per se, but it gave me a way to interact with the app from my MacBook during presentations or testing sessions.
If you’re not modifying the app itself and just need to interact with it or record it, this is a simple workaround that requires zero complex setup.