Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6013403
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T02:32:36+00:00 2026-05-23T02:32:36+00:00

I just looked at JetBrains’s App Code IDE and it seems to be able

  • 0

I just looked at JetBrains’s App Code IDE and it seems to be able to launch the iOS Simulator and run applications in it.

When I had to automate the deployment of my projects I had to resort to Applescript and GUI automation.

They seem to be using a closed tool called ‘simlauncher’. I wonder what the magic behind it could be.

Update:

  1. On looking at Activity Monitor, I see that osascript gets launched from simlauncher before the simulator is launched. Could it be Applescript again? I thought iOS Simulator.app was not scriptable.
  2. iOS Simulator seems to be launched by launchd, so simlauncher is definitely not launching it by itself. Also, simlauncher stays only until the actual application is running in the simulator. They’re polling for it perhaps?
  3. For device builds, they’re using AMDeviceService, which is probably a version of Apple Mobile Device Service. Is this a technique from the jail broken SDK?

A little more info on the simulator from the output of ‘ps’:

plumenator 26404  12.9  1.3   290172  52772   ??  SX    8:56PM   0:03.62 /Users/plumenator/Library/Application Support/iPhone Simulator/4.3.2/Applications/817A280D-1F74-4755-B848-B04EC8A24ADA/xxx.app/xxx
plumenator 26395   2.3  0.3   444208  13560   ??  S     8:56PM   0:00.72 /Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app/Contents/MacOS/iPhone Simulator -SessionOnLaunch NO
plumenator 26402   1.4  0.8   318320  33052   ??  Us    8:56PM   0:00.86 /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/System/Library/CoreServices/SpringBoard.app/SpringBoard -SBDisableAutoDim YES -SBAutoLockTime -1 -SBAutoDimTime -1 -SBDontLockAfterCrash YES -SBDidShowReorderText YES -SBFakeBars YES -SBDontAnimateAppleDown YES -SBEnableDoubleHeightToggling YES
plumenator 26406   0.0  0.4  2466496  15792   ??  Ss    8:56PM   0:00.16 /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/libexec/gdb/gdb-i386-apple-darwin --arch i386 --interp=mi1 -q
plumenator 26401   0.0  0.1   106584   5688   ??  S     8:56PM   0:00.30 /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/libexec/lsd
plumenator 26400   0.0  0.1   105228   4204   ??  S     8:56PM   0:00.13 /Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator4.3.sdk/usr/libexec/installd -t 30
plumenator 26399   0.0  0.3   223488  11464   ??  Ss    8:56PM   0:00.15 /Developer/Platforms/iPhoneSimulator.platform/Developer/Applications/iPhone Simulator.app/Contents/MacOS/SimulatorBridge 26395

Now I suppose it’s just a matter of sorting the commands according to the pid and executing them. 🙂

There’s a problem, though. All these binaries refer to dylibs present in the simulator platform’s root. When I run them directly, they look for those in ‘/’.

Is there a way to set the path for dylibs before running a command? This looks promising: http://sacredsoftware.net/svn/misc/StemLibProjects/eaglshell/tags/2.1.0/Makefile

https://github.com/BlueFrogGaming/icuke has good info too.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T02:32:36+00:00Added an answer on May 23, 2026 at 2:32 am

    AppCode use a special wrapper to do this, that you noticed in its console :

    /Applications/AppCode-108.379.app/bin/simlauncher 4.3 debug iphone <PATH_TO_APP> <STDOUT> <STDERR>
    

    simlauncher is a non documented / not friendly mach-o binary… But here is a quick analysis of it:

    • To launch simulator it uses a private Apple framework (otool -L simlauncher) :

      /Applications/AppCode-108.379.app/bin/simlauncher:
      @rpath/iPhoneSimulatorRemoteClient.framework/Versions/A/iPhoneSimulatorRemoteClient (compatibility version 1.0.0, current version 12.0.0)
      
    • This framework is bundled with Xcode:

      <XCODE_PATH>/Platforms/iPhoneSimulator.platform/Developer/Library/PrivateFrameworks/iPhoneSimulatorRemoteClient.framework
      
    • And is used like that (class-dump simlauncher) (DTiPhoneSimulator* are from Apple Framework):

      @protocol DTiPhoneSimulatorSessionDelegate
      - (void)session:(id)arg1 didEndWithError:(id)arg2;
      - (void)session:(id)arg1 didStart:(BOOL)arg2 withError:(id)arg3;
      @end
      
      @interface Launcher : NSObject <DTiPhoneSimulatorSessionDelegate> {
          DTiPhoneSimulatorSession *mySession;
      }
      
      - (int)launch:(id)arg1 sdkVersion:(id)arg2 wait:(BOOL)arg3 device:(int)arg4 sout:(id)arg5 eout:(id)arg6 argument:(id)arg7 env:(id)arg8;
      - (void)session:(id)arg1 didEndWithError:(id)arg2;
      - (void)session:(id)arg1 didStart:(BOOL)arg2 withError:(id)arg3;
      
      @end
      

    About the other binary AMDeviceService I just can say it uses ProtocolBuffers in order I guess to communicate with MobileDevice service… Once again, undocumented stuff…

    Quick conclusion, sorry, there is no easy way to launch iPhoneSimulator using the JetBrains way, unless reversing Apple privates/not documented APIs… like Jetbrains folks did, I love their tools, they are top guns, can’t wait appcode to be gold, already working on it everyday 🙂

    EDIT: See answer below from a JetBrains employee… @JetBrains, would be great to have some sort of AMDeviceService documented to automate some stuff… 😉

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I just had a pretty painful troubleshooting experience in troubleshooting some code that looked
I just discovered a bug where the code looked something like this: char *foo
I just looked at the code in NSCalendar.h like this: enum { NSEraCalendarUnit =
Just looked at function str_pad($input, $pad_length, $pad_str, [STR_PAD_RIGHT, STR_PAD_LEFT, or STR_PAD_BOTH]) which helps to
I just looked back through the project that nearly finished recently and found a
I just looked at this posting: What is the best or most interesting use
I've looked, but it doesn't look like you can apply specific formatting to just
this is just weird and is giving me a headache. I looked over my
Ok.. I have looked through this site and just can't seem to find the
Ok. I have looked EVERYWHERE and my little brain just can't understand a better

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.