The app must be signed with a development identity and such an app can't be installed [resolved]

Hello everybody,
I’m trying to adapt some Android testings with the Java-client librarie to the iOS Plateform.

Here is the setUp() for Appium:
@Before
public void setUp() throws Exception {
capabilities.setCapability(“platformName”,“iOS”);
capabilities.setCapability(“deviceName”,“iPhone de Quentin Vanmeerbeck”);
capabilities.setCapability(“platformVersion”, “8.0”);
capabilities.setCapability(“bundleId”,“com.thegoodbundleid”);
capabilities.setCapability(“udid”, “3f8b12dd48fcdd9308095208ce013ec01e6ff”);
capabilities.setCapability(“appPackage”, “com.thegoodappPackage”);
driver = new IOSDriver(new URL(“http://127.0.0.1:4723/wd/hub”), capabilities);
}

When I try to run this, here is the info in the Appium Server Console:

The main problem is: “The app must be signed with a development identity” so i re-signed the ‘in-house’ application from ou developer with my developper Account and the right provisioning profile. But now, I don’t know how to install my app.

When I upload this new resigned app on a storage and download the app on the device. This app can’t be installed no more. (the same with Dropbox).

I tried to install the application with Appium with this desired capability:
capabilities.setCapability(“app”, app.getAbsolutePath());

But the error is now this one (that i can’t understand):

Do someone have any solution for this issue ?

Appium resigns your app unless you tell it to do otherwise. You can set the no_sign capability to true.

I tried your idea but It seems that it doesn’t improve anything :confused:

Do you download the .app file from the storage?
If so i feel that when the file is downloaded it must be getting corrupted hence the error.

I tried to install the .app file from our own storage, frow dropbox or with Itunes.

If the app is signed with a development identity, it’s impossible for me to install in on the device.
If the app is signed with a production identity, I can install it but can’t run any appium test on it.

You cant directly install a .app file, it can be done through appium(which uses fruitstrap internally).
But for this the app needs to be signed with a development identity.

Best way for you is get the source code and build the app on your own machine with Xcode rather than downloading from storage(which can corrupt the file)

I could get the source code and build the app but I work in a Quality Assurance department and we need to test more than 5 apps every day. I want to build an automation framework to save some time so I prefer to test the .app that developers give us and to make black box test instead of having their code.

Anyway, thanks for your answer.

@Pierre

Were you able to resolve this issue? i’m experiencing the same series of issues/events ?? I was provided a web driver location where I had to download a ZIP file containing the RESIGNED APP, i had to extract the ZIP content and provided APP path, BUT continue getting the “Command failed” error.
I’m suspecting the signing wasn’t properly done???

No, not yet.

But if it is a signing issue, the error est literally "The app must be signed with a development identity… " You don’t seems to have this type of error.

i’ve search around for this “Command Failed…ideviceinstaller” error and found is could also be related to the signature of the App being tested. I’ve asked the developers to provide me with the IPA version of it, haven’t tried that yet. But ideviceinstaller should work for both .ipa and .app

I’ve also tried to use the “ideviceinstaller” in command line to install the .app file and got an error indicating it failed validating app

i was able to successfully install .ipa (not signed with developer identity) without any issues using ideviceinstaller

I will reply myself to help some people that could face the same problem:

HERE IS THE ANSWER:
The provisioning profile of an iOS application has a boolean variable called “get-task-allow”.
This variable must be set as True.

For production builds, this variable must be set as False. Resigning an app with a entitlements.plist having get-task-allow as true is not sufficient, the resigning process must also copy a new embedded.provisioning.

We’re still facing the issue - The app must be signed with a development identity even we’re done with provisioning profiles and mapping of UDID multiple times, but no luck.

We’ve followed he reference links for build process:

  1. http://dentedghost.blogspot.com/2015/06/appium-testers-perspective-for-ios_14.html
  2. https://youtu.be/Y52Z3kp6yQ8
  3. http://testdroid.com/tech/tips-and-tricks-how-to-build-ipa-for-testdroid-cloud-ios-devices.

Could you please help uson this if any other possible ways are there to pointing us to the right direction !!!

Thank you in advance,
Bhaskar V.