Could not run appium and java unit tests on real device

1)I am trying to use appium with my iphone.

2)i have my enterprise signed build .ipa file and also i tried .zip file which has .app inside.

but appium gives error that installing the app failed and appium session failed to start

  1. i have ui automation enabled as true in my device.

  2. below is the error

node_modules/node-idevice/main.js:159:6
at ChildProcess.exithandler (child_process.js:742:7)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Process.ChildProcess._handle.onexit (child_process.js:1087:5)

  1. below is my test case:
    import java.net.MalformedURLException;
    import java.net.URL;

import io.appium.java_client.ios.IOSDriver;

import org.openqa.selenium.By;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

public class MyJavaTest {
IOSDriver driver;
@Before
public void setup() throws MalformedURLException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(“PlatformName”, “iOS”);
capabilities.setCapability(“deviceName”, “iPhone 5s”);
capabilities.setCapability(“deviceType”,“phone”);
//[caps setPlatformName:@“iOS”];
//[caps setPlatformVersion:@“8.3”];
//[caps setDeviceName:@“iPhone 6”];
driver = new IOSDriver(new URL(“http://127.0.0.1:4723/wd/hub”), capabilities);
}

@After 
public void teardown() {
	driver.quit();
}

@Test
public void selectLoginButton() throws InterruptedException {
	..
            ...
	
	
}

}
cAn someone provide solution to this issue ?

Can you please share the Appium logs?

Here are the logs:

info: [debug] Cleaning up appium session
info: [debug] Error: Bad app: /Users/jamehta/Downloads/yourApp-900.ipa. App paths need to be absolute, or relative to the appium server install dir, or a URL to compressed file, or a special app name. cause: Archive could not be unzipped, check appium logs.
at [object Object]. (/Users/jamehta/Downloads/Appium 3.app/Contents/Resources/node_modules/appium/lib/devices/ios/ios.js:188:13)
at [object Object]. (/Users/jamehta/Downloads/Appium 3.app/Contents/Resources/node_modules/appium/lib/devices/device.js:89:26)
at [object Object]. (/Users/jamehta/Downloads/Appium 3.app/Contents/Resources/node_modules/appium/lib/devices/device.js:169:7)
at /Users/jamehta/Downloads/Appium 3.app/Contents/Resources/node_modules/appium/lib/helpers.js:150:11
at /Users/jamehta/Downloads/Appium 3.app/Contents/Resources/node_modules/appium/lib/helpers.js:75:13
at ChildProcess.exithandler (child_process.js:758:5)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Process.ChildProcess._handle.onexit (child_process.js:1087:5)
info: [debug] Responding to client with error: {“status”:33,“value”:{"mess

Same app i am able to install on my phone using Xcode. only through appium and on real device it is a problem.