To test an in app purchase on the iphone, do I need to upload the binary?
You do not need to upload the binary, for anyone who was curious. You do need to make sure all the contracts are in place, however.
There's a section describing testing Store Kit process in documentation.
Related
I am developing iPhone/iPad application with in-app-purchase. In-app-purchase requires extra data(~300KB .txt file).
Should data be downloaded after the purchase is done? I assume that it is necessary to set up my own server to retrieve the data(it can't be downloaded from some apple server for example)
OR should data be contained in basic application? Will apple approve this?
Either way is permissible as far as App Store approval is concerned. Use whichever works better for you.
(And yes, as of the current iOS release Apple will not host any extra data to be downloaded with an in-app purchase; you'll have to host it yourself.)
I know that app binaries are encrypted and signed during the build process when packaging up for the app store, but I'm wondering how safe the data in the bundle is? For example, have there been cases of people being able to read strings (or worse encryption keys..) out of iPhone apps?
I'm looking into making a game with a prize - and it's going to be a bit pointless if the winner was able to crack the game and win the prize without even playing the game.
Any advice would be helpful, thanks.
You should consider any app insecure, an App Store distributed app is total insecure as Apple protects iOS data, but jailbreak is a common and easy task, so anyone can search inside your app.
I suggest you to don't store any valuable data on an iOS app.
iPhone apps have been successfully reverse engineered, so yes, there are examples which show that the encryption of app bundles (and hence their content) is not bulletproof.
See this link for one such example.
Images, text files and sound data are stored in a completely "unsafe" manner inside an iOS app bundle (unless you include your own encryption).
All one needs to do is to unzip the .ipa file.
I am very new to developing apps on the Iphone (In-fact I am new to application development all together). I would like to know what the feasibility for an idea for a app on the iphone is.
1)The application would allow users to download content (audio or if possible video files) onto the device.
2)Each of these files will need to be purchased before downloading, at a fixed price.
3)The user can then play the downloaded files on the device.
Is such an app possible to be made on the Iphone?
If so can anyone give me pointers on how the payment procedure should be, and how revenue will be shared with apple?
From what you described, that sounds very possible.The users would pay you directly through a credit card for the files.
If you are already a registered apple-Developer, have a look at the InAppPurchase(IAP) ProgrammingGuide in the iOS-Devcenter.
The purchase of any content must be handled through IAP.
This is written in the App Store Review Guidelines, Item 11.2 (Because I'm new, I can't provide a link. Sorry for that)
It is not possible that users pay you directly.
This link shows a video where an app upgrade is "forced" from within the app itself:
http://buzzworks.de/blog/update-ios-beta-apps-from-within-the-app
The App Store is not called in and it's said to work only for AdHoc
apps.
Anyone knows how is this possible?
edit: please give a look to the video before answering. AdHoc apps are signed by the developer and they do not come from the App Store. This sort of forced update is useful when doing beta testing and in enterprise applications.
I've found that it's all explained here:
http://developer.apple.com/iphone/library/featuredarticles/FA_Wireless_Enterprise_App_Distribution/Introduction/Introduction.html
The developer should create an .ipa with the app and a manifest in plist format with the URL to the .ipa and a few other things.
The app can optionally implement its own way to find if an update is available and open
the URL to the manifest.
I didn't it's really possible because the app has to somehow sign itself. The best I can think of right now is that the app is not signed?
You can always force people to go to the app store when a new version is out. Simply make the app connect to a webservice first. Other solutions are not accepted by Apple, or will quite simply not work because of other issues (signing is one of many).
You could also design your app in such a way that forced updates are never a requirement. You can load your user interfaces from the web (Apple has presented some valuable information about that during the previous WWDC), your data can come from the web, and if there is any other correction to do just ensure your app is backwards compatible.
That's how the app store works. And it never requires a 'forced update' ... Well, almost never ;-)
I have an iPhone application that posts data to a web application ... and I want to only accept data posted from an iPhone application that was purchased from the iTunes store.
Is there a way to do this? Is there something (or somethings) I can pass from the iPhone app to the web application that I can use to do such verification?
Thanks much
btw, using the asihttprequest library to handle requests/responses.
As far as I know, Apple doesn't provide any information about who purchased your app. That said, there are a few ways to detect if a device is jailbroken, or if your app was cracked. So, your app could detect that and pass that information to your server.
Have you consider using iTunes Store's in-app purchasing to handle the payment?
Thanks.
You could generate some kind of checksum/hash which you thenvalidate on the server, e.g.
http://example.com/something?timestamp=143531&checksum=17
In this example the hash is just the sum of the digits in the timestamp but you'd probably want to use something a bit more secure.