How to deploy/debug iPhone App directly to iPhone device without IDP membership? - iphone

Can you show me how to deploy/debug and iphone application using xcode but without having to pay 99$. I'm doing this for the study purpose.
I've seen a guide which help to deploy iphone application to iPhone device(e.g: http://www.vinodlive.com/2009/01/16/how-to-deploy-an-iphone-application-without-an-idp-membership/). However this guide doesn't help me to run/debug the application using Xcode, so it's quite inconvenient.
Some of my friends said that it's possible to run/debug iphone app to iPhone device using XCode and without IDP membership.
Thanks in advance.

If you intend on developing for the app store ever, I would pay the fee. If you can write, and get accepted, a halfway decent app, you'll have little trouble earning back that 99 bones of initial investment.
I wouldn't wait ~two weeks to have an app reviewed for the store if it had only been tested on a jailbroken iphone using some hack. Too risky...

Apple designed the system the way they did to protect developers from piracy. It's inconvenient because you're not supposed to do it.
I'm not trying to say that you're doing something wrong or illegal, but you're just trying to bypass something that is in place to stop app-theft :)

While not really a good thing, your best bet may be to jailbreak your phone. This will void your warranty and I'm pretty sure a kitten somewhere will die because another iPhone has been jailbroken.

Your stated goal is to debug on a device using XCode without paying $99 to Apple:
Assuming it's for quasi-official study purposes and you can find a cooperative university instructor to sponsor you or undertake some kind of directed study, you could try the iPhone Developer University Program.
It's 'free,' but my guess is that the required hoops and time would make the $99/year for the regular program seem pretty reasonable. (I think the same goes for any jailbreaking solution, but I do remember what it was like to have neither a salary nor any competing demands on my time).

Related

Is there ANY POSSIBILITY of testing an iPhone-App without jailbreak?

I want to test a self-created app on my iPhone without buying an Xcode Developer Acoount.
I've searched everywhere but found nothing that works. I won't pay 79€ for an acc. only to test my App.
If all you want to do is learn Objective-C and Cocoa you can test your apps on the simulator. But if you want to actually test on a real device, which is important if you're actually shipping an app in the app store, then you have no choice but to join the developer program.
There is no other way. You have to pay the $99 fee to test your apps on a real device. Or you can jailbreak your phone. But without jailbreaking or paying the fee, no, it's not possible, sorry.
There are distribution programs that do not require a jailbreak, however these tend to be for use by companies internally and as such probably don't save you any money. Perhaps you could find a trial version.
As a side note, if you are running iOS 5, the absinthe jailbreak is incredibly stable and 'safe'.
Technically, what #DrummerB said isn't entirely true. If you could find a willing, licensed iPhone developer who would put you on their development team, you could operate using their provisioning profiles and certificates until you pay to upgrade.
I just want to point out however, that this is not something that I would personally do for you, you should just buy the certs for $99 yourself.
If you are a student, you could look into the Apple Developer University Program. This program is free for students, and will allow you to test your app on real devices. However, with this membership level you will NOT be able to submit apps to the App Store. You will still need a paid membership for that.

How to build an iPhone app, make sure this app only run on a no Jailbreak device?

I am an iPhone developer, I am doing a project. For security reasons, I must make sure my app run on a no jailbreak iPhone. I want to know how to check it use public API.
Thanks very much!
No API exists to perform such a check.
Jailbreaking a device (using any of the various forms of jailbreaking) only needs to touch files which are outside an application's sandbox. Attempting to inspect them therefore carries a risk that your app will be rejected. Even if you can inspect them you have no way to differentiate a change due to jailbreaking from a change due to an OS update.
Finally please be aware that a jailbroken device does not necessarily mean the user has pirated your app. Users of jailbroken devices are free to purchase and install apps via iTunes just like anyone else and are likely to be rightly unhappy if your app refuses to run.
also, Apple removed the API for detecting jailbreaking. Read here on ars
If that would be possible using a public API, there wouldn't be any problem using jailbreaked iPhones, would there. Every app (including the OS) could just use that API...
It's impossible to verify that your app is running only on a non-jailbroken device. Unfortunately there's nothing you can check.
There are a few tricks you can use to determine programmatically if your app has been pirated, but they're far from foolproof; the most you can really do is determine if your app was pirated using the most common automated pirating techniques. Anyone really determined to pirate it can ensure your app doesn't know it's been pirated even if you use the techniques.
I wouldn't invest time in such things cause sooner or later "they" will find a way to run your App on a jailbreaked iOS device.
Instead take this time and develop more unique feature. Feature people are glad to have and even they pirated your App they will pay for it.
Yeah I know this sounds ridiculous but I think quality software will find honest buyers.
I know this answer doesn't answer your question and I want to add that iOS doesn't have a API to check if the device is jailbroken.
I hope I could help.
As the other answers say, there's no full-proof way of blocking piracy on your apps. I have a couple of apps that have been pirated and, truth be told, I was kind of happy to see that. Unless these people hack every single app on the App Store, it made me feel a little proud that someone had decided my apps were worth pirating. Almost a "yup, I've made it" kind of feeling. :)

Test app before submitting to AppStore?

Is there a way I can test my app before submitting to AppStore for being not rejected by Apple?
The iPhone SDK download includes an iPhone simulator that you can test apps on. If you mean a test that will give you a "yes or no" answer for the question "will Apple accept this app?" however, then no, there is no such test since the acceptance criteria for the App Store are not rigid (nor even necessarily objective).
For rejection by Apple, no. There are some common-sense things you can to do prevent most rejections, but you can never be completely certain. Never use private, undocumented APIs, no matter how much you are tempted by them. Other known rejection reasons are listed here.
The vast majority of rejections are fixable (you persisted a selection in a table view by accident, you used a confusing icon choice in part of your application, or it crashes in a specific case). Others are harder to address, like duplicating the functionality of something built into the device.
For functional and usability testing, this is a question that has been asked several times here:
"What is your iPhone app testing strategy?"
"iPhone OS Testing Best Practices"
"How do you beta test an iphone app?"
In general, learn how to use Instruments, Shark, GDB, the Clang Static Analyzer, and other development tools provided by Apple to profile and debug your application, then examine it from every direction on an actual device for a few days before submitting it for review. Do not submit an application with known crashing bugs.
Go to walmart, buy an ipod touch, test your app out, return the ipod touch back to walmart and get your money back. 30 day return policy, should give you plenty enough time to test your app out.
If you plan on making more apps I would just buy an ipod touch and keep it!

Steal app and post it on AppStore using ad-hoc distribution

I am going to ask users on public forums to take part in my app beta testing using ad-hoc method. So if user interested in testing/reviewing he sends me UUID and I send him app binary.
The main question: is it safe to give anyone app binary file? I heard some terrible stories on Apple iphone developer forums that some guy found his app published someone else using another company name and different icon. So the app was absolutely the same except company name and graphics. He told that someone else got his app binary, cracked it and post it on appstore for profit.
So is it possible to steal my app and publish it on appstore if I give my app binary using ad-hoc?
thx
Yes, as it is possible for the same to occur for apps that are in the app store.
There are tools that can unpack the signed binaries which can then be repacked.
In the same light, someone could crack Visual Studio to show a different company name and then release it as their own.
In both cases, there are serious legal ramifications, and in both cases it is actually very rare to occur.
In the case of iPhone apps, it is very unlikely someone would want to bother stealing your app. If you really think there is a risk, I wouldn't recommend sending ad-hoc copies to random people you don't know.
While it is technically possible, (IANAL) I believe such an act is a violation of the DMCA, giving you legal ground to go after them, any and all profits they make off of what they stole, etc.
If you feel that threatened, you can add an "expiration system" to your app. Check if the date is later that, say November 2009 and kill it. I don't think someone will go into the trouble of removing your code signing, signing it with his own identity after he has cracked the expiration failsafe. You app should be pretty awesome.
I've never heard of code that can't be decompiled/disassembled. I guess this applies to iPhone as well. So yes.
Yes, technically they can take the binary and resign it using their keys. They could do that either to install it on their device, or submit it to the store.
They won't have the source, so making any sort of fixes or changes (including to deal with a submission rejection) would be remarkably difficult, and it should not be to hard to prove a copyright violation and get it taken down (though you might need to pay some lawyers).
At the end of the day I wouldn't worry about it... this sort of thing just doesn't happen in practice.

iPhone app without AppStore

We have an industrial app that currently runs on a very expensive ruggedized PDA.
Since most of the engineers we sell to have iPhones we are considering moving to the much nicer newer platform.
A couple of questions:
Is it possible to sell iPhone apps with out the app store? Apple taking a 40% cut of a 99c iFart app is one thing but this is a $3000 engineering calculation app. We have also heard of the hassles some people have had getting apps approved.
Can we sell an iPod touch (I understand selling an iPhone without a contract is trickier) with pre-packaged software.
ps. Sorry for the anonymous posting, the company is a little nervous about our relationship with the PDA maker.
There are basically three different official iPhone application distribution methods that I am aware of:
- App store
With this method anyone with an iPhone can have access to the application. You can distribute an unlimited number of applications like this. Apple gets a 30% cut. Of course Apple must approve your applicaion.
- Ad hoc
You can distribute applications using ad hoc without going through the app store, but you are limited to a maximum of 100 devices. With this method you can distribute you application from a web site, email, etc.
- Enterprise
The method is for internal distribution in companies with more than 500 employees. Apple does not provide any more public detail that I could find on this method.
It doesn't sound like any of these methods meet your criteria unless you have fewer than 100 customers and don't plan to exceed that number. It sounds like from the question your customers are not internal to your company.
I would advise contacting Apple. They might be able to work out some kind of custom distribution deal.
Enterprise developer program allows in house distribution, avoiding the appstore. It's $299 vs $99 and doesn't include AppStore distribution.
For companies with 500 or more employees who are creating proprietary in-house applications for iPhone and iPod touch.
Apple also has a B2B Program, which sound like you are aiming for. It allows you to sell your apps directly to other businesses. You can find out more here: https://developer.apple.com/programs/volume/b2b/
Spotify has a free app you can download, but to use it you have to have a Premium account. So you don't have to sell your app for $3000 to go thru the app store.
You can give the app for free in Appstore, but it will require an online activation. The online activation will cost 3000$. If apple would not accept the app, you can try to create a very limited version (without activation) and get it accepted in appstore. Then release un update for it, which will enable online activation system.
It's a pity - the iPhone/iPod touch could make a really nice platform for automation/interface stuff.
I was working on an embedded industrial platform recently - a 16bit micro, 64K memory, a serial port and a 120x128 2 grey level screen for $1000/unit and $10,000 for the appalling OS/devkit.
I can't see how apple could possibly care if you purchase iPod touches, jailbroke them, installed your app and sold them to customers.
For a $3k app, the $220 for an iPod Touch is less than 10% of the sales price.
Testflight. Google it. Basically you get an account with testflight. Put your app on testflight. You send your customer an email and they click it on their iphone. It sends testflight an email with your customers device ID. Testflight sends you an email saying "a New customer requested your app" and their device ID. You add their device ID to your provisioning chain and rebuild your App. Upload it to testflight, they get a notification that it's ready, and they can install it. Somewhere in there be sure to get your money :)
Native app, no. However, you can create it as a Web App that's specialized for the iPhone, in which case you circumvent the app store altogether.
You could consider a HTML5 app on Safari which offers many of the features of an app like offline access, local storage, canvas for rich graphics etc. No distribution issues and no commission. Depends what you need - access to camera, compass I think is not possible. (Also: works on Android)
Edit:
Here's a great intro -
http://sixrevisions.com/web-development/html5-iphone-app/
How to Make an HTML5 iPhone App
Build a version of Tetris that is "for the most part, it’s going to be a pitch-perfect imitation"
Full Screen
Offline Cache
Persistent storage
If your app is pretty expensive, you probably have few customers and they receive personal support, so what you could do is the following:
Have each customer get their own Apple developer license ($99/year). Your support can talk them through the process, or you can probably do it for them. Give them a discount/credit for the $99 they pay to Apple.
Compile your apps logic into a library, and make a thin shell that loads code from the library.
Give the customer the XCode project for this shell, and the binaries for your code :-). Write a little OS X app that triggers the download of XCode, the compilation, and installation, so they can "compile" and deploy "the app they are developing" (a.k.a. your app) to their devices. Or, do it as a service for them.
Don't forget to get your lawyers involved. I'm sure there are ways to look at it in which this is legal, and interpretations in which this violates some license. There is probably a way to make this waterproof, e.g. by calling your customers "developers" and yourself "consultants" in the contract or something. Helping a customer compile their app is not prohibited :-)
If you do this, deployment is not going to be so smooth as if you go the official way, but you'll save a lot of money. For a $3000 app, instead of 30% you'll give Apple 3.33%. I haven't done this, and I don't know anybody who has, and can't even recommend it, but I also can't see why it wouldn't work. So it might be worth a try.
I wish. Short answer, no.
There is some kind of a hack, whereby you isntall your app in a ad hoc manner, but you can only have 100 devices. Painful road if you ask me.
The way to do this would be to give the app for free in iOs store.
But charge $3000 for an activation code or subscription fee purchased from your website.
You will need to give the free app some basic functionality of some kind, however. Apple won't approve the app if it doesn't do anything without the activation code.
If it was me I would do one of the follow:
1) Submit it to Apple and sell it for free. They then enter a license code bought from you to access the full feature set. Include a welcome page, about us, contact page for unlicensed functionality. As Apple won't approve it if it does nothing.
2) Get the companies you're selling to to open an Enterprise account with Apple. Then you build the IPA and sign it using their credentials and send them the IPA.
Good luck.
This article summarizes all the answers to this question and discusses Apple's B2B, iOS developer enterprise program, adhoc distribution and testflight.
http://mobiledan.net/2012/03/02/5-options-for-distributing-ios-apps-to-a-limited-audience-legally/
All of the solutions (except the test-oriented solutions, which are limited), however, force you to get Apple's approval before publishing and updating. This process can take time and can leave your users stranded when you have a critical bug that needs a quick update.
If this is a deal breaker for you, you might want to try developing the app for Android, which also has advantages and drawbacks, but in your specific case, gives you more flexibility.
In Android, you can email an APK file, a user clicks it, and the app gets installed on the device.
In iOS, every devices that is not a member of the "enterprise program", "b2b" program or is provisioned for testing, cannot install the app.
You have to jailbreak the iPhone to put an app on it not from the app store.