Can I use APNS on iOS Developer Enterprise Program without using MDM - iphone

I have actual experience on the normal iOS Developer Program, But I have NEVER experienced using an Enterprise Program. Enterprise account has some differences with the normal one like it has NO itunes connect(so no storekit, game center) but it has no limit on UDIDs.
Looking at this post iOS Enterprise developer Account: get device token , it seems that the so called MDM uses APNS but it will have a slightly different implementation/requirements.
I don't want to use MDM, but I want to implement APNS similar to a normal developer account. Can I do APNS without using MDM on an enterprise account? Will implementing APNS be the same with using a NON Enterprise developer account. Or is it required for me to use the "MDM"
Sorry for the newbie question and thanks in advance for all the help.

Will implementing APNS be the same with using a NON Enterprise
developer account. Or is it required for me to use the "MDM"
Yes, you can use push notifications in enterprise apps just as you can with apps distributed through the App Store. No, you don't need to use MDM in order to do it. MDM uses APNS, but APNS doesn't rely on MDM.
To use APNS, you'll need to create an app ID that's specific to a single app -- you can't use a wildcard app ID.

Related

How to work with multiple developer accounts under Enterprise account?

How can we associate developer account to enterprise account in large companies ?
Here my situation :
I have a Enterprise account ($299), with 100 iPhone devices added to it. Since i cant add more devices now, apple recommended me to purchase developer account ($99) and add new additional devices to it.
Here’s my question :
If my Ad-hoc profile, Dev Profile and App ID belong to Enterprise account ($299), how can i add the devices from the developer account ($99) to the profiles in Enterprise account($299)?
If my new App ID belongs to developer account ($99) and later if i need to sign the app with In-house profile using my Enterprise account ($299), how can i do it?(should i Re-sign it by creating new app ID in my Enterprise account)
PS: I went through several solutions in Stack Overflow but didn't find exact answer. (Please don't mark this as duplicate, i know there are few similar questions)
These are some of the solutions on Stack Overflow:
Managing IOS Developer AND IOS Enterprise Developer accounts
Apple Developer and Enterprise Programs together
How is a large, spread out company supposed to work with the iOS Developer Program?
Can someone give a perfect solution for my situation, thanks in advance :)
Signing an app with an enterprise profile will let you install it on any device you want (without having to register anything). I think thats the key feature of this account type.
Each App ID can only be used once, so you cannot use it in both accounts. You'll have to pick another one then:
Example:
Dev Account: com.yourcompany.yourappname
Enterprise Account: com.yourcompany.yourappname-enterprise
Of course you could use wildcard IDs but, some capabilities wont work then.
Basically the enterprise and dev accounts are completely separated. While you can be a member of both accounts with the same Apple ID, and switch them while you are logged in, the accounts themselves have nothing in common with each other.
Conclusion
For In-House-Distribution you can use the enterprise account, without the pain of registering all the devices
For App-Store Distribution you'll need a separate developer account

Push Notification APNS Certificate USAGE:

I need to create an iPhone app, that uses a push notification feature. I have created the "aps_developer.identity.cer" certificate and downloaded it from Apple Developer account. Is this certificate has any importance at the iPhone App side OR it is solely used at SERVER side to send Device TOKEN? Please help. Thank you.
Both. You need separate certificates for development and release that support push notifications as well as a distribution certificate (Ad hoc or AppStore) that is linked to the AppID in the other certificates these are used to sign the app as well as being used for the server.
E.g. If you are debugging, the server needs to use the development certificate, if you are testing or have released the application, the server needs to use the distribution certificate. The apple push servers change depending on which method you are using. I would read the apple documentation on push notifications which also covers the provisioning side of things.
https://developer.apple.com/library/mac/#documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Introduction/Introduction.html
As far as creating the server certificate, I used this guide and found it very helpful:
http://code.google.com/p/apns-php/wiki/CertificateCreation
Good Luck!

Is There A Way for Non-Devs To Release iPhone Apps?

I'm sorting through the various Apple docs, but haven't seen it yet.
Here's the deal: I've created a series of apps that are for a service for NPOs. These are hugely popular (albeit in a very small pond), and I have been asked to make customized versions for some of these organizations.
It's a FOSS app, but these outfits can't get iOS programmers to build and release the apps. They are willing to set up App Store accounts, but don't have the geeks on hand.
Due to the way the organization manages its IP, I am not allowed to release branded apps under my app store account. They need to release under theirs.
I don't want to set up an enterprise account for this. I haven't read up on that, but I'll bet that it would not be practical, anyway.
Is there a reasonable way for folks to take apps built on one account, and apply a new provisioning profile, and release it via another account?
Yes a company can take any developer app, sign it with their own certificates, and submit it using their own iOS enrolled team leader ADC account. They can even hire a contractor or temporary employee and legally authorize them to do this work for them.
If you do this type of subcontracting, you might want to get authorization in writing from the CEO, COO or chief legal consul of the company to do so.
you can use a different provisioning profile and deliver the app to the other guys. You can have multiple profiles in your X-Code and select with which one you want to sign the app when you create the archive.
You can either do this yourself by getting access to your client's app store signing certificates, or you can get your clients to use their codesign tool - details on the latter technique can be found on google - here is one example.
Enterprise accounts don't let you release on the App Store.
A typical way of handling this is for them to set up an account and give you the details for the team agent to log in. You then generate a key pair and a certificate signing request in Keychain Access. You log in as the team agent and use the certificate signing request to get a distribution certificate, which you then download and open - this will install into the keychain. Export the key pair and supply this to them so that they aren't screwed if you get hit by a bus or something.
From that point on, it's all stuff you should be used to. Xcode knows which private key to sign the build with because it matches the provisioning profile. It knows which provisioning profile to use because the app ID in the profile matches the app ID in the Info.plist file. Beta testing with ad hoc builds is the same as normal, except you register the UDIDs after logging into their account, not yours. Archives are not tied to your account.
When you submit the app through Xcode, you'll have to supply the team agent login details again. The submission will show up under their developer account, not yours.
Technically speaking, I think it breaks their developer agreement with Apple for them to supply a third-party (you) with their login details. However I don't believe it's possible to delegate all of the privileges necessary to submit an app to anybody other than the team agent, and the parts that can't be delegated aren't easy to explain to a non-technical person. You can script some of it to make it easier, but it's easy for them to get into a mess, so it's usually best if they let you handle it all.

Enterprise Developer account or Standard Developer account?

We're developing an iPad application for a client, who wishes to distribute the application to only those customers who have purchased the license from him for 'x' number of users. For example, if an university buys the license from him for say 50 users/devices or another company may buy the license from him for 100 users/devices. What would be the best way to distribute such an app. After doing some research iv come across 2 ways for this but each with its own hiccups.
1) Distribute it through the App Store with a standard developer license and authenticate the users of the app. Only if the users are authenticated by the server, would they be able to access and use the application. This allows my client to restrict the users to only those who have obtained licenses form him.
But i have heard that Apple would reject such apps that provide only exclusive access to some users and not to all.
2) The other option is the Enterprise Developer account where he would host the apps on his site and the clients who have obtained licenses only can download it. However, I believe that enterprise applications can only be developed for in-house employees. i.e if he has the enterprise account, the app can only be used for his employees as it would work only for the devices authenticated with the unique DUNS number.
Anyone has any workarounds for this? Any help would be much appreciated. Thanks.
The client I have just developed an app for has the requirement for users to login to their service before they can use the app. They place the app in the store with a clear indication a login is required. The app is free to download so no one gets caught paying for something they can't use.
We have just submitted the latest app to the store and are waiting for approval*. When submitting we included a full login for the reviewers to test the app with. This was in the review notes and remains confidential. They have an existing app already approved which works the same way.
As part of the app we also included a demo mode with static content bundled with the app which allowed access to all the functionality but only for that very limited set of data.
The client has the Enterprise programme which allowed us to beta test the app with designated users but that was with the usual 100 device limit (with devices able to be removed at renewal time only). Both the individual developer and the company program are allowed the same number of devices but you want to be able to join the clients team as developer so they should go for the Company program. The client will need to be the Agent for the submission and that is fixed as the first account they sign up with. We're trying to change the agent for our company now and it's not something you can do online you have to send Apple a request. They should then add you as a developer for their program. You can be a member or an admin but only they, as the Agent, will get to sign the app for distribution.
I sure hope you aren't correct about rejection because of the login service or I'm going to have a very disappointed client on my hands.
*EDIT: Our application was approved by Apple at the first attempt so there was no problem with this approach.

Recieving notifications from APNs in iPhone applicationg without provisioning profile

Task:
have a jailbroken iPhone
need to write an application which would receive notifications from APNs
Problem: after running the application on iPhone program shows an error: "no valid apps-environment entitlement string found for application" (at registerForRemoteNotificationTypes- call i suppose).
As I've understood the problem source is that I built the application without a provisioning profile.
Question: is there any possibility to make the program work before I receive my apple developer account (in order to create a provisioning profile)?
Apple Push Notification Service requires that a device be registered with the service in order to receive notifications. In order to register with the APNS server, an app needs to be signed and provisioned.
Also, jailbroken phones may not work correctly in many cases where a legitimate application, that has been signed, provisioned and distributed officially via the iTunes App Store, is being used.
I believe it was reported that notifications from the AIM app intended for legitimate iPhone users were being sent to people with jailbroken iPhones, who in some cases didn't even have AIM installed. This probably has something to do with the fact that jailbreaking allows a user to change their device's UDID, which just screws everything up.
No. You need to have a valid provisioning profile.
You can send a fake push notification locally if you installed MobileSubstrate, with this method:
http://networkpx.blogspot.com/2009/06/sending-push-notification-locally.html