简体   繁体   中英

How to install iPhone application in iPhone Simulator

I have a mySample.app file - an iPhone application developed by xcode.

How do I run this (only mySample.app file) application using my xcode?

Please note: this answer is obsolete, the functionality was removed from iOS simulator.

I have just found that you don't need to copy the mobile application bundle to the iPhone Simulator's folder to start it on the simulator, as described in the forum. That way you need to click on the app to get it started, not confortable when you want to do testing and start the app numerous times.

There are undocumented command line parameters for the iOS Simulator, which can be used for such purposes. The one you are looking for is: -SimulateApplication

An example command line starting up YourFavouriteApp:

/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\ Simulator.app/Contents/MacOS/iPhone\ Simulator -SimulateApplication path_to_your_app/YourFavouriteApp.app/YourFavouriteApp

This will start up your application without any installation and works with iOS Simulator 4.2 at least. You cannot reach the home menu, though.

There are other unpublished command line parameters, like switching the SDK. Happy hunting for those...

This thread discusses how to install the binary on the simulator. I've done it and it works: http://forums.macrumors.com/showthread.php?t=547557

From the thread :

Look inside your ~/Library/Application Support/iPhone Simulator/User/Applications/ directory and see what happens inside this directory when you install and run apps using XCode, and also when you delete apps using the Simulator.

You can run the Simulator by itself (without starting XCode).

If you start the Simulator, delete an app, quit the Simulator, put back copies of the files that were deleted from the support directory, and restart the Simulator, the app will reappear in the Simulator. Email those files with instructions about how to copy them into the appropriate support directory.

You can install apps in simulator from Xcode 8.2

From Xcode 8.2 ,You can install an app (*.app) by dragging any previously built app bundle into the simulator window.

Note: You cannot install apps from the App Store in simulation environments.

If you're looking to do this XCode 5+, I found this is the easiest method:

Install ios-sim :

npm install -g ios-sim

Then simply execute:

ios-sim launch ./mySample.app --devicetypeid com.apple.CoreSimulator.SimDeviceType.iPhone-6

In which you can switch up your device type. Simple, fast, and it actually works.

From Xcode v4.3, it is being installed as application. The simulator is available at

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iOS\\ Simulator.app/

在终端中输入以下内容:

$/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone\ Simulator.app/Contents/MacOS/iPhone\ Simulator -SimulateApplication path/to/your/file/projectname.app/projectname

I see you have a problem. Try building your app as Release and then check out your source codes build folder. It may be called Release-iphonesimulator. Inside here will be the app. Then go to (home folder)/Library/Application Support/iPhone Simulator (if you can't find it, try pressing Command - J and choosing arrange by name). Go to an OS that has apps in it in the iPhone sim, like 4.1. In that folder there should be an Applications folder. Open that, and there should be folders with random lettering. Pick any one, and replace it with the app you have. Make sure to delete anything in the little folders!

If it doesn't work, then I'm dumbfounded.

Select the platform to be iPhone Simulator then click Build and Go. If it builds correctly then it will launch the simulator and run. If it does not build ok then it will indicate errors at the bottom of the window on the right hand side.

If you only have the app file then you would need to manually install that into the simulator. The simulator was not designed to be used this way, but I'm sure it would be possible, even if it was incredibly difficult.

If you have the source code (.proj .m .h etc) files then it should be a simple case of build and go.

This worked for me on iOS 5.0 simulator.

  1. Run the app on the simulator.

  2. Go to the path where you can see something like this:

     /Users/arshad/Library/Application\\ Support/iPhone\\ Simulator/5.0/Applications/34BC3FDC-7398-42D4-9114-D5FEFC737512/…
  3. Copy all the package contents including the app, lib, temp and Documents.

  4. Clear all the applications installed on the simulator so that it is easier to see what is happening.

  5. Run a pre-existing app you have on your simulator.

  6. Look for the same package content for that application as in step 3 and delete all.

  7. Paste the package contents that you have previously copied.

  8. Close the simulator and start it again. The new app icon of the intended app will replace the old one.

The Short Answer

For those who can't wait, the following command installs an iOS app bundle to the specified simulator.

xcrun simctl install 2A3F00EE-F412-4999-8109-ED3D4E70D266 ./YOURAPP.app

The Long Version

The full story is in this Quip doc .

xcrun

Apple has a command-line tool called xcrun that looks for the named command-line tool in the active developer directory and runs it. We will use xcrun simctl in this article.

Active Developer Directory

A user of macOS could install more than one version of Xcode and use the xcode-select command to choose which one to use. Each Xcode bundle that has been installed has a folder called Developer . The following command shows the developer directory that is currently being used.

$ xcode-select -p
/Applications/Xcode.app/Contents/Developer

List Simulator Types

The xcrun simctl list devicetypes command shows all of the simulator types that are installed on the macOS system. Think of simulators as virtual machines (VMs). Each type is like a VM specification.

$ xcrun simctl list devicetypes
== Device Types ==
iPhone 4s (com.apple.CoreSimulator.SimDeviceType.iPhone-4s)
...
iPhone 12 (com.apple.CoreSimulator.SimDeviceType.iPhone-12)
...

Create a Simulator

The following command creates a simulator named yi-iphone12-sim that is of the type com.apple.CoreSimulator.SimDeviceType.iPhone-12 , as shown above.

$ xcrun simctl create yi-phone12-sim com.apple.CoreSimulator.SimDeviceType.iPhone-12
No runtime specified, using 'iOS 16.2 (16.2 - 20C52) - com.apple.CoreSimulator.SimRuntime.iOS-16-2'
2A3F00EE-F412-4999-8109-ED3D4E70D266

It prints the ID of the new simulator.

List Created Simulators

The following commands lists simulators.

$ xcrun simctl list devices
== Devices ==
-- iOS 16.2 --
    yi-phone12-sim (2A3F00EE-F412-4999-8109-ED3D4E70D266) (Shutdown)

We can see that it lists the simulator yi-iphone12-sim , and its status is Shutdown .

Boot a Simulator

The following command boots the simulator yi-iphone12-sim .

$ xcrun simctl boot 2A3F00EE-F412-4999-8109-ED3D4E70D266

Please note that we can't use the name yi-iphone12-sim . Instead, we'll use the ID.

After the home screen is shown on the simulator window, the xcrun simctl list devices command shows that the simulator is Booted .

$ xcrun simctl list devices
== Devices ==
-- iOS 16.2 --
    yi-phone12-sim (2A3F00EE-F412-4999-8109-ED3D4E70D266) (Booted)

Install an App to the Simulator

I checked out this project at https://github.com/sheldonth/ios-cmake/tree/master and built it with CMake. The result is an iOS bundle called ./build.sim64/Release-iphonesimulator/YOURAPP.app .

This app will be installed on the simulator with the following command.

xcrun simctl install 2A3F00EE-F412-4999-8109-ED3D4E70D266 build.sim64/Release-iphonesimulator/YOURAPP.app

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM