iPhone Development and Testing on Jalibroken iPhone? - iphone

Other than the obvious ongoing legal issues surrounding jalibreaking the iPhone, does using an jailbroken phone for "official legal SDK development" cause any issues?
Bascially can a jailbroken iPhone work fine for a production development environment, allowing the same provisioning, testing, etc as a stock iPhone in terms of the SDK and related processes?

As far as i know. there is no problem to use a jailbroken iPhone as your development iPhone.
I test all my applications on a jailbroken and a non-jailbroken phone and didn't found any differences yet.

If you have jailbroken your device and broken authenticity (to run unsigned code) it is possible you have a code signing issue that would not be aware to you unless you check the app on a non-broken device. However if you are caught up in the acceptance process a jailbroken device can be useful because you get to test on device earlier :P
That said this is very unlikely seeing as the amount of trouble you have to go through to get to that point almost guarantees you have some clue as to what you are doing.

The Apple Developer agreement has been updated to forbid developers from jailbreaking (but you did say aside from legal issues)...
To answer your question directly, no I have not had any problems :-)

Related

iPhone Jailbreak development profiles

Im developing apps with a iPhone4 and my old 3G is my 2nd device for testing.
So, is it possible to jailbreak the Phone and run apps with xcode?
Does anyone have expirience with that, a jay or a ney ?
cheers endo.
Edit: According to the answers it is possible!
Yes, you can jailbrake an 3G and use it to test.
But if you already have a developer certificate you simply add the 3G to the list of development devices. For that no Jailbreak is needed.
Only benefit I see is to run code on the device without having Xcode attached and read in /var/syslog the output of NSLog statements.
But then MobileTerminal (from Cydia) is broken in iOS 4 and I haven't bothered with installing the latest Beta. I find in more comfortable to ssh across from a full sized computer and read /var/syslog or other files in that way. So again, I am not using much the features offered by jailbreaking.
Main benefit for using a 3G is to have a device on 3.1.3 and to test if the App performs well in terms of speed and backward compatibility.
Yes you can use it for development as Olaf said. I have been doing the same, no issues what so ever. Except that beware, you might have issues with Push Notifications.
Push notifications, especially productions certs, wont work with jail broken phones. I learnt that the hardway.
other than that, i did'nt find any issues.

iPhone - is a unlocked iPhone indistinguishable by Xcode

My question is: is a unlocked iPhone treated the same way by Xcode? or in other words, can one develop using a unlocked iphone without any problem? When I say unlocked I mean not the official way.
I ask this because I have the possibility of beta testing my apps with some friends and some of them use jailbroken iphones and some just unlocked their phones on an unofficial way. I would like to know if it will be trustable to have these devices testing my app.
I think Xcode does not realize that, it treats all devices as not jail-broken.
The only difference you might see is (depending on the stuff you have installed in your jail-broken device) you will get many messages in the console.
I remember once I installed winterBoard and I was getting many many debugging messages about it. Messages not regarding my code!.
Regarding permissions: many things are different. So, you should test at least once you app on a not jailbroken device.
I think it all depends on how you went about jailbreaking and how much you've changed the system. Obviously, there's a difference between unlocking and leaving everything else untouched compared to replacing large parts of the OS.
However, I'm sure there are folks who can go into far more detail.

Do I need to buy Iphone for Iphone development?

Do I need to buy Iphone to develop Iphone applications on MacBook Pro? Or is Iphone SDK for the job?
Thanks.
Technically no, but obviously it would be handy.
Xcode provides an iPhone simulator that can handle most testing (but without support for accelerometer or microphone).
All in all, if you plan on doing iPhone development seriously - get an iPhone.
Technically you could use the emulator with the SDK but you really want some raw devices to test on due to subtle differences.
The iPod touch does a great job for testing apps on a real device. Its performances are very closed to the iPhone and it is much cheaper.
Technically no, unless you building apps related to accelerometer, microphone, sms or auto calling applications. The SDK comes with the iPhone simulator which is more than handy
You can use the Xcode iPhone simulator as well as the iPad simulator to test your code, all of which is free. The only issue will be accessing certain filemanagement which cannot be debugged on a simulator. However, you must have a computer running on Mac OS X and a valid Apple ID to download Xcode. Finally, in order to submit Apps into the App Store, you must buy a $100 developer's license with Apple.
Hope that help! And iPhone development is a ton of fun :)
Thommy
I highly recommend to get the device you're developing for. Since some issues will only will only come up by really using your app as intended.
The touchscreen and it's behavior for example can't really be testet in the simulator. If you want to do more than the next "Fart App" you should invest the money in at least one actuel iOS device.
I will speak from personal experience with a financial prespective
Can you afford it or is the short term compensation from the work going to cover the cost? The latest models are pretty expensive, so I would suggest looking for good deals on models that are a couple of years old. When I say short term, I mean 3 years or less. Because after that, there is a good chance that you are going to need to buy a newer model to take advantage of the SDK features available at that time.
Even if you can afford it do you need it immediately? Are you soon going to be developing features that are completely dependent on hardware and impossible with a simulator ? If no please push the purchase further down the line, by which time you would have made some money (or not) and you can buy a newer model.
Having a latest device gives you the freedom to try out and build apps using the latest SDK features that Apple rolls out, so you can stay ahead in the game. On the flip side, it would be good for development only as long as at least one of the apps that you are developing for runs the highest version of iOS supported by the device at any particular time. For example I bought an iPhone 5S some years ago and now none of the apps I am working on run on iOS 12. So I have very little use for it. Ah I guess the vicious upgrade cycle gets developers too :(

How do I compile for the device without a certificate?

I may just be looking in all the wrong places, but is there no way to compile a Cocoa Touch application for ARM without paying for a developer account and certificate?
EDIT: To clarify: I am trying to build for a jailbroken device. I simply want to test code on-device without paying for anything.
You're not going to like this answer, but I and everyone else on SO will tell you that developing for a jailbroken device is 10 times worse than developing legitimately with a developer account. It's not really that expensive, and if you don't have a mac, a low end Mac Mini isn't all that costly either. If you would just want to get some mobile handset practice in, might I suggest developing with Google's Android. The SDK is free and you can get a nifty plugin for Eclipse that has a device emulator as well as a GUI builder. The only downside is that the device support is minimal at the moment. But hey, you can be on the bleeding edge of a technological revolution.
Unless you have jailbroken your iPhone/iPod Touch an Apple iPhone Developer account is required.

can Jailbroken iphone used for development

We have paid developer account for iphone development and we have 2 iphones one jail broken and other one non jail broken. We have registered both phones for development and got provisioning profile. We can use non jailbroken phone for development. But we try to use jail broken phone for development we get message Error starting executable no Provisioned iphone device is connected.
But We can test application on it using ad hoc profile.
Does this means jailbroken devices can not be used for development?
Regards,
Manish
I personally do development/testing on jailbroken devices (I find that it is nice for profiling/debugging with all the UNIX tools available, as well as testing out code for checking for tampered plist files ;-) ) as well as non jailbroken devices.
I have not had any problems specifically with jailbroken devices, as they behave exactly like stock standard firmwares..
Have you:
Added the UDID to the provisioning profile
Tried removing and adding the provisioning profile in XCode organizer
Rebooting the phone then trying to build an app targeting the device
I personally am paying the $99 per year and use my iPod Touch 2G (jailbroken) for development purposes. I have seen no disadvantages to using jailbroken devices for development. I have actually seen some advantages to using jailbroken devices.
I have no any problems with development for jailbroken iPhone. Moreover I like to use several advantages... for example full-featured UNIX console environment into device.
In additional using jailbroken iPhone may help developer better understand how iPhone/OS/Environment works at low level.
You may add new Target to your project and use it if you connect jailbroken device.
You just need to add two keys for new target in User-Defined Settings (Target->Get Info->"Build" Tab->Show "User-Defined Settings")
PROVISIONING_PROFILE_ALLOWED NO
PROVISIONING_PROFILE_REQUIRED NO
So you will have two very similar targets... one for jailbroken and second for povisioned iPhone.
Be warned - the iPhone Developer agreement now bans you from jailbreaking your phones:
http://news.softpedia.com/news/iPhone-Developer-Agreement-Bans-iPhone-OS-Jailbreak-108599.shtml
I'm not sure what you should do if, say, you want your application to disable itself on jailbroken phones - how would you test it?
Jailbroken devices won't work with push notification. I lost almost one day with one such device. So better stay away from jail broken device for development .