Is it possible to create an app that does not appear in the Home screen, and allows another app to grab its resources (sounds, images, etc)?
I want to create a lightweight app (app #1) and upload it to the app store. Then I would like to be able to direct users to download an add-on (app #2) if they want that contains more images and sounds. Then app #1 would read these resources from app #2.
I'm trying to avoid having my own server to serve these images, and just have the App Store handle this for me. I know I can do this on Android, and was wondering if it's possible in iOS as well.
Is it possible to create an app that does not appear in the Home
screen, and allows another app to grab its resources (sounds, images,
etc)?
Not only can you not create an app that's hidden from the user, you also can't access the resources of one app from another. Each app lives in its own sandbox and cannot read (or write) into the sandbox of another app.
I want to create a lightweight app (app #1) and upload it to the app
store. Then I would like to be able to direct users to download an
add-on (app #2) if they want that contains more images and sounds.
Then app #1 would read these resources from app #2.
The normal way to do something like that would be to host the resources you need on a server or just store them inside your app.
I'm trying to avoid having my own server to serve these images, and
just have the App Store handle this for me. I know I can do this on
Android, and was wondering if it's possible in iOS as well.
No, not possible.
If you are able to use the In-App Purchase system, then Apple will host this for you. From the docs, I'm not clear if this is iOS 6 only or is available for older versions (I haven't seen any reason it wouldn't work for older versions, but I haven't tried it).
Note that most iOS 6 specifics are under NDA, so please do not discuss them here until iOS 6 releases. This particular fact is public, however:
https://developer.apple.com/technologies/ios6/
https://developer.apple.com/appstore/in-app-purchase/index.html
https://itunesconnect.apple.com/docs/iTunesConnect_DeveloperGuide.pdf
No it's not possible. You have to setup an icon and it will be displayed on the iPhone springboard.
No it cannot, why do you need one?
Sadly No in IOS but in android this is possible.
There can exist an app without an icon. But it can still be managed or removed in "Manage Application" under settings.
This is required in scenarios, like say I want this app to alert user when he is going out of region, using GPS in the background. I do not want any icon nor any user interface.
Related
I finished working on one iPhone app, and my client wants to port it over to iPad.
Now I created another storyboard for the iPad UI in the same project, and have the iPad UI working and sharing some code with the iPhone code.
The project has one target, with devices supported as universal.
My question is: My client expects that I present him with two apps, one for iPhone and one for iPad, will this configuration work?
When I submit this to the app store, will it know to split it into two apps, or should I just create a separate project for iPad all together?
Thanks.
With your current configuration it will upload to the app store as one app, but for users logging in it will display the correct app depending on the device they use on the app store when they search for it.
So depending on if your clients wants two separate APK files or if they want two apps on the apps store:
If the client is requesting two separate apps you will have to split the project, unless there is an easier way that I am not aware of.
You can also explain to the client that with the current configuration the app will have a little plus icon on the app store to indicate that it is a universal app and will work on both devices, which will be determined by the device they use to download and open the app.
If they want to sell the app, again as far as my current knowledge allows, you will need two separate apps as you can not set different prices for it in the current configuration, this statement is under correction. Unless your client wants to sell both iPad and iPhone apps for the same price then you wont have an issue.
Hope this helps
No, it will not, because it's the same bundle ID, so in this case, in the App Store you'll have one universal application.
If you want to have two applications, you should create a new Xcode project that supports iPad only.
What you can do is to create different target, one for iphone and the other is for ipad. You can follow the answer on this question, it is quite good. Because you have 2 different target, you can have different bundle identifiers, specify different AppDelegate, but all the other code could be shared
I have a paid iPhone app, and I'd like to create an updated version that will run as an iPhone app until the user completes an in-app purchase that will have the app use the full screen.
Is there any way to change an app from a small-sized iPhone app to a full-screen iPad app after the app has already been distributed?
Short Answer: No, it's not possible.
Longer Answer:
This would involve dynamically setting the build settings (specifically Targeted Device Family) at runtime. These settings however, are read and compile/build time. The solution is not impossible, would involve rebuilding the app with different settings. This is unlikely to be permitted by Apple anyway
what you can do is check in your app for any payment made and then if the app has been paid load different data.
The easiest way would be to load different xib files for your layout if the user has paid. The user would however need to quit and relaunch the app to have the payment taken into accound. And you would need in your code to programatically decide to load one xib or the other. But it's doable.
Is there any provision in iOS wherein the referral parameters used to start the iTunes application are passed on to the application on its first run?
For example in Android, if I use a link such as http://market.an......com.company.pany&referrer=heythere to download an app on Android and actually install the app, the Market app passes the "referrer" parameter and its value to the app on its first run, which the app can use to any extent.
Is there a similar provision in iOS?
We also struggled with this when we built our last mobile app, Kindred Photobooks. The best way we found is to basically bundle that information in the link and use fingerprinting to make that data available after install, which is working really well.
You can try to build fingerprinting in in house. Basically the steps would be the following:
1. When a link gets created, appending parameters to the link, or create a link reference in some backend database if you want shortened links
2. When a user clicks on that link, collect a fingerprint of their device from everything you can read in the browser (for example: IP, OS, screen size, etc) and redirect that user to the app store.
3. When the app opens, create a similar fingerprint from the same parameters collected in app, and match it up in your database to the outstanding fingerprint.
4. If there is a match, you can return those link parameters to the app through install.
Alternatively, if you don't want to build all that infrastructure and handle the many edge cases, we bundled it up into a free service called Branch. Check it out at http://branch.io
No, there is no such thing on iOS. But you can and should file a feature request at bugreport.apple.com, if you really need this feature.
As of iOS6, if someone installs your applications via a smart banner, you can pass a url to your app on startup. You do this by using the app-argument parameter:
A URL that provides context to your native app. If you include this, and the user has your app installed, she can jump from your website to the corresponding position in your iOS app. Typically, it is beneficial to retain navigational context because:
It should work on install:
When the app finishes downloading [after clicking install on an app banner], the View button changes to an Open button, and tapping the banner will open the app while preserving the user’s context from your website.
More here: http://developer.apple.com/library/ios/#documentation/AppleApplications/Reference/SafariWebContent/PromotingAppswithAppBanners/PromotingAppswithAppBanners.html
I think this will work (but the jury is still out: Does app-argument on Apple Smart Banner get passed to app on install? ), but testing this is tough: How to test Smart App Banner Urls on in Dev environment
No, AppStore doesn't pass any parameters to application - it just unzips ipa to application folder (container).
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 ;-)
It seems like Info.plist file has an ability to declare different roles for the same application bundle through the UIRoleInfo key. SpringBoard can recognize these roles after installing an app and may display separate icons for each application role.
For instance, iPhone shows MobileSlideShow.app as 2 different programs: Photos and Camera.
Unfortunately, there is no official Apple documentation about the subject at the moment. Would anybody advise how to organize the same behavior in a custom app?
This feature is going to be used in the Enterprise product for ad hoc distribution.
This isn't a supported feature, so if you do this you might have a hard time getting your app through the approval process. I wouldn't recommend using it.
Have you tried it to see if it works? If it doesn't work, you could create a second app that does nothing but launch the first one, with a custom URL scheme. The first app can recognize when it is being launched with that URL. This is not ideal as you will see the second app launch & quit (though it should be really fast).