libraries / services to assist with iOS wireless app distribution - iphone

Can anyone recommend any libraries/utilities they use to assist in distributing iOS adhoc/enterprise applications over the air, so users can install without needing a PC/iTunes?
There's a few hosted services around (eg. https://testflightapp.com/ - though that is not free for enterprise apps), but I'm sure in the past I saw a non-hosted service (ie. something I could install on my own server) and came with a client side library that was easy to hook into the app to notify the user when updates were available and allow them to easily install them. Unfortunately it seems I didn't bookmark it and a bunch of googling and searching on stack overflow hasn't found it.

You need to create your own manifest and bundle it with the app package (the IPA from Build and Archive). There are a lot of guides on the web. e.g. this to automate OTA distribution using Heroku from Héctor Ramos or Mike Nachbaur's write up.
That said, I suspect using TestFlight.app is a lot easier than rolling your own - have you looked at the cost benefit of paying TestFlight vs developing and maintaining your own system. Much better to write production code rather than save the cost of the TestFlight subscription surely...

I finally found the one I believe I was thinking of when I wrote the question, it's called "Hockey":
http://hockeykit.net/
https://github.com/TheRealKerni/HockeyKit
If there are other similar solutions out there, please do add your own answer!

Related

Submitting paid package to Cydia Store

I'd like to submit my app to the Cydia Store. It's going to be a paid package. Since I've never done other than free/opensource development, can somebody please explain how to do integration of my app with Cydia? Specifically, I'm curious if I have to check if the installed app instance is legit (DRM checking) (and if so, how to do it), or how handle the payment and purchase (or, did I misunderstood, but is there any standard options in Cydia to automate the purchase?).
There are numerous links tutorials available for that.
A nice one is
http://iphonepackers.info/How%20To%20Make%20Paid%20App%20Cydia.htm
Edit: broken link above ... Google cache version (currently) at
http://webcache.googleusercontent.com/search?q=cache:aU9Q-zFRHeoJ:iphonepackers.info/autosilent/How%2520To%2520Make%2520Paid%2520App%2520Cydia.htm+iphonepackers+how+to+make+paid+cydia+app&cd=1&hl=en&ct=clnk&gl=us
This might be also helpful
http://en.wikipedia.org/wiki/Cydia_%28application%29
For questions about the Cydia Store system, a reliable source of answers is simply "contact your favorite default repository manager" - they've helped lots of developers figure this out, and you'll need to talk to one of them anyway to get your Cydia Store package published.
For people who haven't published packages on default repositories in Cydia before, these are your options:
BigBoss (managed by Optimo)
ModMyi (managed by Kyle and Tyler)
MacCiti (managed by MacCiti)
(If you aren't sure which to pick, find your favorite package author and ask for a recommendation.)

Some questions about the App Store review guidelines?

I've made some iphone webapps before, using jQTouch and iUI but now i want to try out making a native Apps for iPhone. As i first step i thought of trying to port one of my webapps using Phonegap. So far it works well, but i'm a little concerned about some things in the Apple Review Guidelines and wanted to see if anyone have prior experience and could answer som questions.
2.5 Apps that use non-public APIs will be rejected
2.6 Apps that read or write data outside its designated container area will be rejected
I'm not really sure what this means. I don't think they concern me but if anyone could give me som more info about it it would be nice.
2.7 Apps that download code in any way or form will be rejected
This one is more tricky. Do they consider HTML code? What my app does is to load content into DIV-tags using jQuery.load()-function, that means much of the work in the app is performed on my server. Will it be "safer" if i generate JSON or XML of the data and process it with JavaScript inside the app instead of loading the formated HTML-code?
2.12 Apps that are not very useful or do not provide any lasting entertainment value may be rejected
This one together with the quote:
If your App looks like it was cobbled together in a few days, or you're trying to get your first practice App into the store to impress your friends, please brace yourself for rejection. We have lots of serious developers who don't want their quality Apps to be surrounded by amateur hour.
Made me wonder what they consider a useful app and what lasting entertainment means. This is my first app and i dont aim for a broad audience, this is mostly a way to get to know the XCode, iPhone-development and the App Store review process before. However, the App will be really useful for me and a bunch of my friends.
2.6 Don't specifically try to access files outside your app's Bundle or Documents directory and you should be fine.
2.7 Somewhere, it explicitly says you can download and use HTML/CSS/Javascript as long as you are running it inside an iOS UIWebView container. But don't try to download, say, Lua source code at runtime and interpret it.
2.12 Don't waste the App store reviewer's time if you are just trying to "get to know" the app development or store distribution process. Read about it instead. Submit something only if you think there are people (not just your Mom) who will really want to download your app and not delete it after trying it out. Maybe at least a dozen to hundred someones. If not, distribute some Ad Hoc deployments to your buddys instead.

iPhone - packaging multiple app in a single app

I would like to package multiple app in a single app. So donwloading one app and install that in an iPhone will install 3/4 apps. Something like java midlet suits having multiple Midlets in a single jar file.
Is it possible by using multiple target or bundle, aggregate target etc.?
No. Don't do this for a few reasons:
I think it's a bad idea. [More on this below.]
It cannot be done. Multiple apps cannot be installed as a result of one application being downloaded.
Some apps act like bundles of apps, but what they really are is a bunch of mini-apps built into a larger one. I highly discourage this sort of bundling. There are a lot of apps out there that say, “51 Tools All-In-One, Only $1.99!”, but these are incredibly trashy and are bought by unsuspecting noobs with no taste. Don't contribute to that.
If you want multiple apps that can share data, keychain info etc there are ways to do that but leave them as separate app. It makes for a much cleaner user experience.
That doesn't make any sense on the iPhone.
You should look at In App Purchases instead.

Is it possible to mass update multiple iPhone applications?

I'm not all that familiar with Apple's iPhone development system, but I'm trying to figure out if theres a way for developers who create custom iPhone apps to update their apps on a mass scale. For example, would a company who publishes hundreds of apps have to resubmit every app they've made manually if they find a minor bug that affects all their apps (assuming they have used a template)? Or is it possible to somehow use or build a custom program that can make this process easier, by automatically generating or updating apps? I don't believe Apple has an API or anything, but it just seems like it would be a nightmare for these developers to fix bugs, and thought maybe I was missing something.
Thanks in advance for your help!
Apple provides no way to automate this. In theory you could write a program to simulate a browser to login and upload new binaries for you, but I'm not sure Apple would like that very much, and it would be a lot of work.
In addition, one might argue that if the apps are similar enough to warrant this automation, it should probably be one app instead of many. But that may be an over generalization without knowing your use case.
There's the Application Loader
http://itunesconnect.apple.com/apploader/ApplicationLoader_1.2.dmg
(requires login)
It doesn't do bulk uploads, but it does provide a maybe more accessible interface.
Isn't there that separate application that you can use to talk to iTunesConnect? (Though I still don't think it's possible to do mass updates.)

How does Apple know you are developing iPhone apps on MacOS?

I know there is a requirement in their EULA, but I heard about people getting their apps developed on Windows into the app store.
How can Apple find out, or do they even know?
They don't, so if you get a native compiler and toolset up and running on Windows, more power to you.
But realize that:
You will not be able to use a language that compiles to bytecode (that's Java, C# and the .Net languages, Perl/Python/Ruby, etc.). Apple will most likely not allow any sort of interpreter through the App Store.
Chances are your tools will not contain an Interface Builder equivalent or an iPhone Simulator equivalent. You're going to be writing a lot of code and spending a lot more time testing.
You won't have local documentation. You'll either have to use Apple's website or rely on third-party documentation which may mix App Store-allowed and -forbidden methods without indicating which are which.
You won't have Xcode's editor, which is highly specialized for Objective-C. You'll have to type a lot more.
You won't be able to get help as easily since you're not using the same tools as others.
You will never know when a bug is in your code, your tools, or your platform. People using the official SDK can file bug reports on the tools just as easily as the platform.
Your tech support incidents are worthless, because you're violating your contracts.
If Apple ever does find out, you're likely to be kicked out of the App Store and all your work will be for nothing. Unless you're an idiot, this thought will worry you.
If you're a hobbyist, these may be acceptable to avoid paying $400 for a used Mac mini, but if you're not a hobbyist...this is no way to run a business. Pick up a used Mac and think of all the money you're not spending on a factory, a store, offices, inventory, or employees during your setup time.
There is no sdk available for Windows. XCode only works on Mac OSX, how would one compile, test, and run the app if not on Mac OS X?
I dont think they know. There's no official SDK for the PPC architecture, but some simple installer hacking yields a working binary for my Powerbook. Similarly, if you get your code working on Windows, more power to you...