Building An IPA Using Apple's Tools & Certificate For Jailbroken Devices - iphone

How do I crack my own IPA file for jailbroken distribution?
Or alternatively how do I build an IPA that will work on a jailbroken phone?
I purchased an apple certificate and am able to build an Xcode 4 ipa file that works on my device as well as devices of official beta testers. However, I would like to have an "open beta" for everyone since the application is essentially free.
So I would like to build a version of the IPA that works on jailbroken devices, essentially crack my own application... I found this which seems ridiculously hard and there is this answer which answers a slightly different question. I want this process to be automated by my build server so I hope its relatively reasonable.
I've tried manually building zips, building for the app store etc. and it all failed on the jailbroken device that I have. It might be a fluke with this particular device but I find it hard to find information for this particular use case, so maybe one of the things I did is "the right thing" and its just by bad lack that it didn't work (hopefully someone can confirm what "needs doing").

I was able to install a build of the application using debug credentials on the jailbroken device. I'm guessing the beta tester who used the device just did something wrong with a previous install attempt.

Im pretty sure this would break Apple's EULA.
The point of the IPA is to ensure that it will only run on selected devices, i would recommend against this, and stick with closed beta until release time.

Related

Is it possible to test an app in an iOS device without having a Mac?

I believe this is a duplicate question, but examining the others I could not find my problem exactly.
I have developed a flutter app and I intend to publish it. So I rented a virtual Mac, loaded the project in XCode and tested it on a simulator. Everything worked fine.
I have an Apple Developer Account, Certificates, registered an iPhone, etc., but it seems that I have to physically connect the device to the computer to be able to run it on the iPhone. No way to do that remotely (I'm in Brazil and the virtual Machine in NY).
XCode tells me to plug in the device so it can register it (but I have registered it already in the developer's site).
I thought it would be possible to generate some kind of executable to download to my iPhone, but it appears that is note the case.
Is there any other way I can do that?
Maybe I can skip this step and try to publish the app, because it is the same project as an Android app already tested and published in Play Store.
The answer is yes, the modern answer is probably TestFlight. But this has always been possible using OTA downloads. To do this, archive your app, create an OTA manifest and put this on a web server somewhere. Then you can download the app straight to your phone (assuming it's signed with the correct provisioning profile and all that). We used to do this a lot before TestFlight came along.
This question and
this article are somewhat related to what you want to do
I was having trouble to test without an iphone what I did is register this device on my account https://messapps.com/wp-content/uploads/2016/08/udid.png and so far I could build the app for iOS.

Test Phonegap Build app on a friend's iPhone

I have created a mobile app using Phonegap Build (not just Phonegap...but Build). I have a Windows PC and do not use eclipse or xcode. I just write the Javascript and let Build do all the complex stuff for me.
I can easily test my app on an Android device by scanning the QR code that is displayed on the Build page after my app compiles....but how can I test on an iPhone or iPad? I can convince a family member to loan me one for a day, but I don't have a Mac (I could probably visit another friend to use one, briefly).
It would not be appropriate at this point to spend $99 on a developer certificate, even though this app may be submitted to the store eventually. If $99 is the only option, I would be grateful to anyone who makes this clear!
Or perhaps I just need to learn about TestFlight or Lesspainful? The descriptions are confusing me at present, but I will try harder if I hear some experts tell me that this is the right way to go!
It would be good to test on a real Apple device, as I haven't had much luck getting an emulator going...but perhaps the only answer to my dilemma is to tell me to stick with emulators. (In which case: is there a nice step-by-step tutorial for a complete beginner to install an iPhone emulator in Windows?).
Thank you.
If you want to test on a device, your app needs to be signed using your certificate. You'll also need a development provision profile that includes the device ID's of any devices you want to test on. In order to get those things, you need to join Apple's iOS developer program. This is true even if you're using the PhoneGap Build service; in order to build for a device, you need to upload your certificate and provision profile to PhoneGap Build. Look at PhoneGap Build's Building for iOS page for complete information. All this means that you'll need to pay the $99 fee to join the iOS Developer Program.
An alternative is to jailbreak your device (or, in this case, your friend's device). You can find instructions for that on the web if you're so inclined. However, I don't think you'll be able to build through PhoneGap Build in that case -- you'll need to build your app yourself with Xcode or possibly some other set of tools.
Just as an update for anyone else that ends up here. You can now use Adobe PhoneGap Developer App which allows you to run the Apps on devices without ID's, licenses etc. Here is a guide to getting started.
You would need to join the Apple Developer Program to be able to sign the build and create the .IPA to use TestFlight or other methods to get the build onto the device.
There are options for you to test on a device without that though - see App.io for an in-browser emulator.
Whether you go with that or TestFlight I've blogged about Getting mobile app builds to your customers which includes the pros and cons of the options and the steps you'd need to go through.
install iTune on your windows PC. Copy IPA file to application directory of iTune. When connecting device (iPhone,iPad or iPod), sync apps. Then you can test on real device.

Viewing application in simulator

I need to show my app to customer but without sending sources codes to him.
He does not own any iDevice at the moment, but only a Xcode installed on his host with iPhone simulator.
So my question is there a "normal/official" way I can pass him the application binary so he can test it on his simulator ? Probably using xcode archiving ?
PLEASE NOTE : I know what is ad-hoc distribution, please do not suggest this, he does not own a device.
NO. You cannot give him the ipa to launch it in simulator. Only the source code. (If he is smart enough to launch it, I think you guess how confused will the client be when you try to explain him stuff around the provisioning profiles and certificates and keys to pair them) ....
I see your problem - however, if this is just about a small tour through the app and not a long time testing, might I suggest another way around this:
Why not using a screensharing app like TeamViewer, which has a version that works without installation and is quite hassle free. And then let him play with the App running on your computer?
Sorry for not having an answer on the question, but that would be an alternative route to take.
Very simple solution:
Set up a contract with penalty fee if he copy's the code or distributes the code that'll settle you for life.
If he doens't own a device, you could also loan him one with the app installed. Just do an iphone without a sim card or an ipod
Creating an ipa file and run on the simulator is not possible. We can run the simulator using Xcode only. (means by sharing the code). If you are not interested, ask him to buy device.

How to deploy test app on iPhone?

I want to know how to deploy test app on iPhone 4.3.2. with XCode 4.3 but without buying a licence.
I have jailbreak on it and installed AppSync4.0+
The reason why I ask this is because I am porting an app from Qt and I want to see it how it behaves under iOS.
I have been using Qt4iOS and got everything build when using simulator.
Now I want to see it on my device.
When I try it I got some key chain error.
Provide me with some links or ideas.
... everything is possible. It's about the effort needed. And the effort for this can be very low. Especially because your device is are already jailbroken.
You'll need to change Xcode's code signing for building for an device. Instructions can be found here: http://iphonedevwiki.net/index.php/Xcode#Developing_without_Provisioning_Profile
(better save copies of the original files). Since Xcode 4.3 doesn't use the /Developer folder any more you'll have to edit the files inside the Xcode.app (./Xcode.app/Contents/Developer/...)
Build your app for the device. Make sure the target isn't a fat binary (instead just build an ARMv6 executable) or it won't work on your device if pseudo-signed with ldid.
Find the .app bundle for your app
Copy the .app bundle to /Applications/ (not /var/mobile/Applications!!!) (for example via ssh). Make sure the permissions of your executable are set to 755. Reboot or respring and if you did everything correctly you'll be able to launch and test your app.
Have fun!
I have had the same issue.
No matter how hard we try to apply any trick in order to test the app on real device without license, the bottom line is that you can't do it.
You must register with apple by paying $99 and thereafter you can set the device to your real device within XCode before running the app.
Note that it's quite a task to create *.api file even after you are registered with Apple.
Simple: Spend $99 for the iOS developer program.
I'm sure it is much more expensive to waste your time trying to find another way around.

iPhone Provisioning: What's it all about?

Grepping around, I see that I'm not AT ALL alone in being... challenged... by the process of setting up an iPhone app, getting it to run, giving it my testers, and so on.
I've gotten it to work. Somehow I emailed a copy or two to testers, and eventually got my li'l app into the store, and that was fine.
But I can't say a really, deeply understand it! (And I don't do iOS dev every day. Even now my recollection of what I did is kind-of hazy.)
I'm moderately capable of understanding things, if presented, well, you know, in a way I can understand.
Can anyone point me to a crystal clear explanation of what provisioning actually is?
I feel that if I understood it, the recipes to do it would be obvious.
Thanks!
Development provisioning profiles sign your application, and allow the phone to know it's OK to run. These days, XCode automatically makes a Development Profile for you (the "Team Profile").
The other kind of profile, when you are talking about other people running you app, is a Distribution Profile. You need a Distribution profile for either giving your app to the store, or for giving to beta-testers.
The profile is what allows other people's phones to know it's OK to run your app, basically it includes a list of device ID's approved to run that application on the phone in question, along with being signed so that the phone knows the whole thing is valid.
If you read advice around the web concerning distribution, it's easy to get confused because things used to be a lot harder. You used to have to send Distribution certificates separately from your app to beta testers. These days the certificates are included in your app bundle so you don't have to worry about that.
Furthermore, sending an AdHoc build can be all kinds of unpleasant - for testers using Windows. These days, the absolute best way to do beta testing is have a link on the web that uses the Enterprise ad-hoc deployment feature, to let a user with iOS4 or higher automatically download and install your application with no iTunes or copying work at all. In fact I would at this point refuse to use beta testers running windows who were not on iOS4 or higher.
The guide link posted should have a section about the enterprise ad-hoc, but basically the way it works is there's a small plist file the phone downloads, that has a link to the IPA file containing your app. You point the phone to a specially formatted link to the plist file and the phone fetches the application directly.
All of this is predicated on using the "Build and Archive" option for building any ad-hoc distribution build. You should do that anyway because it also saves out a symbol file for you to use in debugging crash reports.
EDIT:
Here's a little more detail on enterprise deployment (which works for any registered developer, not just Enterprise registered developers):
http://jeffreysambells.com/posts/2010/06/22/ios-wireless-app-distribution/
The Developer Program User Guide should be helpful.