Error installing Safari Launcher on real device Appium v1.3.7

I’ve been unable to get Appium to launch on a real iOS device. I’m not sure if this is an issue with Fruitstrap or SafariLauncher and have been unable to remedy the issue.

I am able to launch simulators
ios-webkit-debug-proxy is running on port 27753
Web Inspector is enabled

My Desired Capabilities are as follows:

caps.setCapability(“appium-version”, “1.3.7”);
caps.setCapability(“platformName”, “iOS”);
caps.setCapability(“platformVersion”, “7.1.2”);
caps.setBrowserName(“safari”);
caps.setCapability(“deviceName”, “Philip’s iPad”);
caps.setCapability(“udid”,“8c2ebdbebc8c7e701c9ce5518d935939b170b7a0”);

The error I’m receiving from Appium is:

error: Failed to start an Appium session, err was: Error: Unable to install [/var/folders/dt/k326j1j574xbwhg14x76q8b00000gn/T/11538-15288-1w6jf7q/submodules/SafariLauncher/build/Release-iphoneos/SafariLauncher.app] to device with id [8c2ebdbebc8c7e701c9ce5518d935939b170b7a0]. Error [Error: Command failed: /bin/sh -c /Applications/Appium.app/Contents/Resources/node_modules/appium/build/fruitstrap/fruitstrap install --id 8c2ebdbebc8c7e701c9ce5518d935939b170b7a0 --bundle “/var/folders/dt/k326j1j574xbwhg14x76q8b00000gn/T/11538-15288-1w6jf7q/submodules/SafariLauncher/build/Release-iphoneos/SafariLauncher.app”
]

Any advice or insight would be greatly appreciated

Alright… After scouring the internet and garnering help from fellow employees, I’ve finally cracked the nut.

The issue was with my provisioning profile and the safarilauncher.zip file bundle ID. In order to remedy this issue I had to do the following:

  1. Create a new provisioning profile with a wildcard app ID and that contains the device that you want to test on.
  2. Download the provisioning profile and double click on it to add it to Xcode.
  3. Download safarilauncher from git at https://github.com/budhash/SafariLauncher
  4. Open the SafariLauncher.xcodeproj downloaded from git in xcode and make sure you set your Build Settings correctly. This means setting the Code Signing Identity and Provisioning Profile to the one you just uploaded to xcode.
  5. Run the build script found on the safari launcher git repo from the terminal https://github.com/budhash/SafariLauncher/blob/master/build.sh
  6. This will generate a safarilauncher.zip
  7. Find the following folder in the location where Appium is installed node_modules/appium/build/SafariLauncher and replace the safarilauncher.zip file with the one you created
  8. now make sure you have the ios_webkit_debug_proxy installed and launched from the terminal with the following command ios_webkit_debug_proxy -d -c Your Device’s UDID:27753
  9. Now you should be able to run your tests assuming you’ve set your capabilities and appium settings correctly.
1 Like

Thanks etillson,
This worked for me.

Regards,
Amit

i have successfully done all the steps but its failing,safari launcher launches safari browser and only apple.com site is opening all time instead of my specified URL.

Kindly help.

If required i can share some logs or screenshots.

It sounds like the launcher is working, but the driver is not taking you to where you want to go. Can you share your configuration? The driver capabilities etc…

Yeah !

private IOSDriver driver;
@BeforeMethod
public void setUp() throws Exception
{
System.out.println(“Started”);
DesiredCapabilities caps = new DesiredCapabilities();
caps.setCapability(“platformName”, “iOS”);
caps.setCapability(“platformVersion”, “8.1”); //Replace this with your iOS version
caps.setCapability(“deviceName”, “iPad Air-V8.1”);
caps.setCapability(“browserName”, “safari”);

	driver = new IOSDriver(new URL("http://127.0.0.1:4726/wd/hub"), caps);
	System.out.println("Done");
} 

@Test
public void testiOS() throws InterruptedException
{
System.out.println(“TestCase”);
String baseUrl = “http://www.google.com”;
driver.get(baseUrl);
}

@AfterMethod
public void tearDown()
{
driver.quit();
}

I recently upgraded to Yosemite 10.10.4 and am now receiving a Fruitstrap error. This is probably going to take a bit of work to get running again. What os and version of appium are you using?

Appium version : 1.4.8
Mac Version : Yosemite 10.10.2

Since you’re running a newer version of iOS you may be able to go into the developer settings on the iPad and set UI Automation to enabled. settings > developer > UI Automation
I unfortunately don’t have that luxury on the device I’m using. If that doesn’t work, the error could be related to the version of safariLauncher that you’re using. I would check your appium run log.

Hi Etillson,

Can you help me with 5th step. I am not able to perform this action…

Please guide.

Thanks
Mukesh

Hi Etillson

I tried steps shared by you. Everything worked fine.
But in 8th step, when i run “ios_webkit_debug_proxy -d -c Your Device’s UDID:27753”. this command doesn’t accept device UDID as a parameter.

Is my command outdated.
Or is there any specific location from where this command has to be run. Please help.

I am using OS 10.10, appium 1.4.8 on iphone 6 with OS 8.1.3.

Thanks
Suman