The iPhone i'm developing with (building the application to, not installed via ad-hoc) receives push notifications as it should. I've got an application that just sends dummy push notifications on command, and the dev iphone receives them consistently. However, I've distributed a beta build under the release configuration to several co-workers, and none of these builds of the app have received a single push notification. I've confirmed that the app prompts the user on first run for permission to receive push notifications, and I've also confirmed that everyone has answered "yes" to this prompt. Has anyone else experienced this problem? I feel like it has something to do with provisioning, but the apple developer portal is so vague about things, I very well could be missing something important.
Looks like I missed the part in apples push documentation where it states that apps distributed via ad-hoc use the apple production push gateway, not the apple dev push gateway. I was under the assumption that while developing the application, I always wanted to use the "development" push gateway...but that's what I get for using common sense.
Related
My client needs to find a way to automatically push app updates to a number of iphone 3gs devices remotely. These devices will be in guided access mode so the users will only be able to access the app in question.
I believe we have two option for distribution:
B2B custom app via the Volume Purchase Program
In-house app released with the Apple Enterprise Program
Having researched our options I can see that over the air app updates can be achieved by either:
Building an in-app update functionality to check for new updates (Enterprise only I am guessing?) and automatically update and restart the app
Using an MDM such as http://www.air-watch.com/ (as I understand Apple Configurator must have devices plugged in via USB to work?)
I am wondering if anyone can tell me whether either of those options are possible with the devices being in guided access mode?
Or are there any other solutions, which I have missed, that can automatically manage the app remotely while the device is in guided access mode?
You can solve this with an Enterprise distributed app.
App only. Update check for an OTA-Update from your app when the app is coming to the foreground (or some other metric at your clients leisure, like added time delay, etc). Basically self explanatory; you implement a call to your clients/your API to check the version and inform the user of a new one. The update can either be optional or mandatory (preferably announced by the API and changed when needed); present the user with an alert about it. The user acts upon it and you OTA install via an ITMS link provided by your API call. And that's it.
MDM. Tbh, I'm a bit on shaky ground here. Theoretically this is all possible via MDM too, however I am not sure if it is the (varying) MDM solutions or some misconfigurations, but clients usually seem to lose control after some time.
Both. Yes, you can perfectly well live with both. MDM while everything is fine, and as a backup a well structured App+API mechanism to push the OTA updates out. This is especially useful if you have customers where some departments are under MDM and others are not. So, some may get it via MDM (and if all else fails via the App itself), the rest will get it via the App.
The tradeoffs are a matter of personal preference, if there is a fully working MDM solution in place the update will be pushed out and the user however 'malicious' can do nothing against it. But the same is true for the 'App only' solution, as you have the option to not let him use the app if he does not update (either by not providing a cancel button or, as you are in an enterprise environment and there it is allowed doing an exit(0)).
From experience I prefer any solution that has the 'App only' option as it is the last fallback if anything on client side fails. Whatever may be added on top is just sugar to the cake.
While not strictly relevant, the 'App only' solution always goes well with Push Notifications when an update came out.
I'm quit new in iphone developing and I used to test my apps on my jailbreaken iPhone 3Gs without enrolling in the developer program.
However, I needed to implement push notifications from my server but all the tutorials I found refer to logging in the provisioning portal to obtain App ID which I can't access without the developer program.
So here is the question: Can I implement the push notifications without enrolling in the developer program ?!
No, the required certificates and profiles for your server need to be generated by Apple, so you can't forge them.
No, you wont be able to do that kind of communication while your app is closed. It will work only when the user is running your app thus making it useless.
Is there a way could i delete my application from some users iPhone by sending a push notification?. The reason can be a security concern.
This can't be done for any iOS device, but it can be done for devices enrolled in Mobile Device Management (MDM). Apple has documented all of the available operations, including removing applications remotely.
An MDM server can manage third-party apps from the App Store, as well as enterprise in-house applications. The server can remove managed apps and their associated
data on demand or specify whether the apps are removed when the MDM profile is removed.
No. You can't execute any code in response to a push notification, unless your app is already running in the foreground. And you definitely can't programmatically delete your app in any situation.
Your best bet would be to have your app phone home when it starts, and not function unless it's supposed to.
You cant delete your application programmaticaly. But you can block some functionalities using client server communication. For example, Write in your code to send a request if security risks identified, and based on response you can control the program flow.
I'm using APNS-Sharp to send push notifications. Everything seems to be working fine for me, who has a developer provisioning profile.
I'm using a distribution profile for everyone else, and they are not getting push notifications.
My question is, does each provisioning profile have to be enabled for push notifications?
I think there are different push servers, one for development and one for production. Have you switched over to the appropriate server? gateway.push.apple.com:2195 and gateway.sandbox.push.apple.com:2195.
Do all profiles and your dev and prod build have the same bundle identifier? Make sure the bundle id is correct and not a general bundle id.
I've recently started developing iphone applications for a project at school and I've been having some problems testing push notifications. I've read I need to get some SSL certificate from the program portal, but I cannot find the link AppID where I am supposed to get them. Is it really necesary even though I am just starting out making some tests in XCode? What else do I need to run push notifications?
I've started coding the client side, but I cannot register for remote notifications. (I run registerForRemoteNotificationTypes:..., but it cannot register) I think it is because I don´t have the certificates, but I really don´t know.
Thanks!!
you need to be enrolled in developer programe.you can not test push notification for free.