Reputation: 3455
I got an .ipa file from a customer (without source code access). This app doesn't exist anymore in the app store. My customer now wants me to write this app again. To get an idea what this app was about I was trying to install the .ipa file on my developer device by going to Organzer > Devices
and then selecting my device. With the Add to portal
I added the file to the device.
However when starting the app on my device it rise up to open but disappears before reaching full screen size. There is no message posted.
QUESTION: I am trying to figure out if this is a bug of the app (there are no bug logs) or if it's not possible to do that? And if it is possible, how should I get the app to work?
EDIT: the console is saying:
SpringBoard[15] <Warning>: Unable to obtain a task name port right for pid 2582: (os/kern) failure
Nov 25 13:25:16 unknown com.apple.launchd[1] <Notice>: (UIKitApplication:com.dcomplex.NVRViewerMilestone[0xdb31]) Exited: Killed: 9
Nov 25 13:25:16 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:com.dcomplex.NVRViewerMilestone[0xdb31]) Throttling respawn: Will start in 2147483647 seconds
Nov 25 13:25:16 unknown SpringBoard[15] <Warning>: Application 'hawk-i' exited abnormally with signal 9: Killed: 9
Nov 25 13:25:17 unknown kernel[0] <Debug>: AppleFairplayTextCrypterSession::fairplayOpen() failed, error -42004
UPDATE:
After using the script mentioned in Denis
Answer I was able to replace the existing signature with mine. Unfortunately I couldn't start the app and was getting the exact console message as described above except the last line differs with a different error number:
unknown kernel[0] <Debug>: AppleFairplayTextCrypterSession::fairplayOpen() failed, error -42022
UPDATE 2:
Denis
was so kind and tried to solve my case also with the iResign tool from google, unfortunately again without success. In my case I start to believe there is no solution to run the app but for others the accepted answer (by Denis) might be the way to go.
PEACE.
Upvotes: 1
Views: 7433
Reputation: 6413
You can try to extract .app from the .ipa and resign it with the following bash shell file:
#! /bin/bash
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform\
/Developer/usr/bin/codesign_allocate
codesign -f -s "iPhone Developer: John Doe (XXXXXXXXXX)" $1.app
This requires you to have a developer certificate installed and provision profile installed, that will work with wildcard id;
Usage will be something like this
$>myresign.sh <your-app-filename>
Or this nice tool can be used directly for .ipa files. It will work for the cases, if you have development build, not the one sent to the iTunes Connect.
Upvotes: 4
Reputation: 89569
If you never provided the UDID of your device to the customer, you won't have permission (or a proper provisioning file) to actually launch the app on your device.
You'll need to get the source code from the customer and build and install it onto your device. If the customer doesn't have the source code from the original developer and your customer can not get it, both of you are S.O.L.
Upvotes: 2
Reputation: 22959
It is somewhat surprising that you can even install the .ipa on your device. Which means that you are in the provisioning profile of that application.
So it looks like the app crashes when you launch it. You might find some hints in the device's logs which you can find in Organizer -> Your Device -> Device Logs
.
It could be that the application is not compatible with your device and fails to start up. You might find a device which can still run the application but generally it's best to have the source code to run the application.
Upvotes: 1