iPhone - is a unlocked iPhone indistinguishable by Xcode - iphone

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.

Related

Is there a performance hit on development-enabled iOS devices?

Here's my situation:
I've got a personal iPhone 4 that I use day-to-day, and I was thinking of using it for development.
If I do enable my iPhone for development, will there be any noticeable difference with regards to the performance of the device?
Thanks
Not significantly. If there's any diagnostic information that needs to be collected, it's crash logs, which are already generated on a regular basis by all devices from day 1. When you enable your device for development, Xcode just collects information about it once, presumably to know how to decide how to work with it as you build and test your apps.
You may have debug versions of your apps on your iPhone, but I seriously doubt they will affect OS performance. Even if they do stuff that causes them to slow down it should only happen while their debuggers are running.
Anyway, when it comes to using your personal device for development, I am sure there are other, more important concerns than performance.
Anecdotally, my white iPhone 4 disagrees that it was "violated" in any way by Xcode. In fact it seems pleased to work with it. But that could be just because it knows a developer owns it, so it gets itself in the testing mood.
I think the performance difference is minimal. All iOS devices in our house are enabled for debugging (because I like to try out my apps on all sorts of devices) and I haven't been able to tell the difference.
But it might be something personal, something you would have to try for yourself. Just make sure you make a backup of your device, before enabling. If you think it slows down your device to much, just restore to the backup.

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.

What are the potential issues of jail-breaking to test the new background APIs on a 3G?

I've registered/paid for the iPhone developer program, which allows me to test apps on a device. I have an old 3G that I would like to use. However, I'm interested in using the significant change notifications as well as it working in the background.
If I were to jailbreak to enable background processing and things like that, what issues could I have, and how likely are they to arise?
EDIT:
I actually do have an iPhone4, but I'm using it for my personal phone. I've heard that it's not to great of an idea to use your everyday phone as a development device. I've done a little more reading, looks like I could use Ad-Hoc distribution to test while avoiding the problems of using your primary phone as a development device. Seems like the only downside of this would be no debug info, other than logs.
iOS 4 has been hacked to allow home screen wallpapers and multitasking on iPhone 3G. (http://pixelatedgeek.com/2010/06/ios4-jailbreak-and-multitasking-now-available-for-iphone-3g/)
It seems to be running fine without any issues, probably not as fast as an iPhone 3GS or iPhone 4.
Just be careful if you use this as your main testing device and make sure you test on supported hardware before releasing. Personally, I'd use something that was 100% supported to be sure everything worked as expected. However, if you don't own a supported device this may not be possible.
Again, make sure you test on friends 3GS or 4 before releasing. I don't foresee any major issues, but testing features on hardware that isn't officially supported could cause problems.
Update: I've used my phone for development purposes before and haven't run into any earth shattering problems. If an issue comes up you can always restores your device.
If you are planning to target iOS4 you really, really really should spring for an iPhone4. You can understand how things will run on it, and also be able to see how the higher resolution display interacts with your app. I'm not sure running iOS4 on a hacked 3G will tell you much more than running in the simulator, and in fact because of the reduced memory may show some issues that just do not occur on real devices.
One other great option is a recent generation Touch. Although it doesn't give you the display to check against it is a good test platform for multitasking.

Will you publish your app without device testing?

me and my friend develop iPad application (a lot of CoreGraphics stuff). But we can't find an agreement. I tell him that testing on device is essential, he tells me that testing on iPhone 3G/3GS will be enough (I have both devices). Can you tell me, probably we really can test our app on 3GS? The main thing is that interface will be iPad designed, so I even not sure how we'll do that...
UPDATED: It is iPad only software, UI is designed for 1024x768
For a high quality product, you have to test on the device. The performance of the iPad is different, and if you have any interaction which involves threading, that can lead to race conditions that you might not find on the iPhone (slower) or the simulator (too fast). I've also seen a number of students run into memory issues that they didn't find on simulator, but that they discover on device.
This doesn't mean you have to buy a device - you can either solicit a friend with an iPad to be a beta tester, or you can lurk in a Starbucks or Peet's. You'd be surprised how many people will bring in iPads, and how many of them are willing to try out a new application.
You can use the simulator, but that's not enough. It is essential that you test your app on an actual device, because the performance on the simulator is vastly different than the device.
If you don't have the money or the iPad isn't available where you are, then ask someone who has one to be a beta tester.
IMHO testing on the device is one of the first rules of developing for a mobile platform.
Apple strongly recommends you test on device before releasing. The iPad and the iPhone are running two different versions of the OS on two different hardwares. Some functions are not really emulated on the simulator. You're asking for trouble.
On the other hand, if you don't have an iPad and you need to ship, you can always roll the dice.
We've ended up having it fail on different devices. Being a small company (about 30 people), we have quite a few different iPhones floating around. Even though we have pretty much every version covered, we still don't cover all releases of the OS. We've caught several bugs internally but there still seem to be some that happen out in the wild that just require different hardware/software configurations. In short, test on as many as possible, but it is very unlikely that you will ever be able to test on all software/hardware combinations.
I'd recommend having the latest iPhone, one that is one or two generations old, and probably the same for the iPad (when it ends up having older hardware versions), but DEFINITELY have both one iPhone and one iPad (and maybe even an iPod touch).
Use the iPad simulator in the iPhone SDK 3.2.
While the performance level can vary, so it certainly would be best to test on the actual device, don't let it be a barrier. You can use the performance analysis tools in the SDK to find problems.
You might try a beta release anyway.
Not a must but highly recommended. I cannot imagine what is worse than someone reports a bug but you have no way to confirm it's true or false. The iPad is faster than 3Gs generally speaking. Of course, your partner may have a "time to market" concern. So, there is no fix answer to this question.
It can be done but is not recommended. I had a iPad app in the store on April 1 before the iPad was released on April 3. It had been tested on real iPhones and the iPad simulator in the SDK. I don't recommend it but there was no choice at the time.
If the performance is acceptable on an actual iPhone 3G, it should be fine on the iPad which has a faster CPU.
You can test your application on simulator. but it is not enough to upload your application on app store because some memory issues generated on device which cannot be produced on simulator. So, better to test your application at least once before uploading on app store. You have to also check your application under performance tools like "leaks".

iPhone Development and Testing on Jalibroken 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 :-)