iPhone Developer account: Multiple Admins? - iphone

I am doing some dev work for a client. She has a Dev License should would like to put the app under but since she is non-technical it has been frustrating since she has to be the one to submit the final app.
Is there a way for a Dev License to have multiple Admins? I have it configured so I am a developer but as such I cannot do the Distribution License. Only she can do that. Is there a fix?

If you have a good relationship to your client, you might want to ask her for her login details so you can do it yourself.
There is one other possibility though: For a similar problem I was given the advice to build & archive my app and send the archive to the client. He could then resign the app using his certs, which would eliminate the need for him to do all the building stuff, not to mention it will spare you to surrender your source code. However, this will not eliminate the need for your client to enter all the meta information and so forth while uploading the app.
For the necessary steps to resign an app, see this answer.
To answer your original question: Each developer account has exactly one Team Agent. So you need some kind of workaround anyway.

There is only one administrative or Team leader per developer account. So you really need to plan on the policy for sharing use of that account from the beginning, if the required activities of the agent need to be split up among multiple parties, if you can't have one party capable of doing everything.
A shared account can be created from the beginning (either by the owner or the developer). I recommend an ADC account be created just for this purpose, instead of just using the owner's personal account and email address ( e.g. instead of mary.smith#sample.com, create and use iosdeveloper#sample.com for enrolling as an iOS developer. )
Account credentials can be "loaned" (perhaps with password changes after use).
You can be given remote access (VNC/RDP) into the owners PC or Mac (or more secure yet, a VM session) as or after they log in.
You can talk the owner though the process over the phone (or video chat, etc.).
Or, the owner can learn how to get certificates, and build or resign and submit apps themselves, perhaps using a comprehensive script.

Related

Automate distribution of redemption codes for Custom B2B app

I have built a Custom B2B app for one of our clients. My question is how to automate the distribution of the redemption codes.
I have already looked at some of the MDM providers. Their solutions are too expensive and all we really need is a way to distribute the app from a webserver, not manage a bunch of mobile devices.
As you probably already know, when a client buys a Custom B2B app through the Apple VPP program, they get a spreadsheet with valid redemption codes for the number of licenses they have built. This spreadsheet has 2 columns: 1) redemption code 2) URL to redeem the code
I want to provide my client with a URL where they can send their users to download the app. They just don't have the expertise/infrastructure to distribute the app themselves. And emailing clients is not going to work.
I'm not a web guy, but it seems to me that we could write a webpage that would look at the spreadsheet for the next available activation code and then redirect the user to the associated URL. I'm not concerned with the number of licenses they distribute since I have another way of auditing the real number of users (Flurry). So I want this to be as painless as possible.
In fact, I have multiple clients and want to provide them each with their own URL for their clients. It seems like this shouldn't be too difficult to code.
The problem is, I'm not the guy to write that code. Any ideas on how best to do this?
Assuming that you don't want to show the user a website you should be able to do this with an online service like parse.com and the features it offers.
From a user POV you would supply them with a link which directed them to parse.com with a path and parameters indicating the action to be taken (get app) and what account is associated. This would redirect the users browser to the appropriate destination.
The main issue (and this applies to any solution) is knowing if the user actually followed through and used the code. i.e. should it be removed from the DB so it isn't offered to another user in future. Then you would update the DB each time you get a new spreadsheet.
Anyway, this could be achieved with a little javascript in parse.com, specifically, by using cloud code which can interrogate and modify the DB and then redirect the user.
Obviously if you need user authentication of some kind or other restrictions then you would need to start adding some web interface on top of this in order to collect the details.

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.

Sharing app-IDs among multiple developer account

I have an apple developer account using which I have developed an application for one of my clients. Now, the client also has a developer account. Is there anyway, I can create an app ID like com.client.* in the clients developer account and then upload an application's release version using an appID like com.mycompany.applicationname which is created in my developer account.
Or else, there is no option like that??
An app ID is a unique application identifier. Even the exact same source code, built with two different app ID's, would be considered two completely different applications.
In order for you to compile your client's application, you will need to get a copy of their profile using com.client.* and compile the application as com.client.appname.
That would be possible, (as far as I know, apple doesn't check the AppIDs if they are used anywhere yet outside of your program) but might get problems when submitting to the appstore and furthermore, you could not submit with his account, what he probably wants. Here's what we usually do:
1. Create a *. Provising profile for yourself for development purposese.
3. For push notifications, you should be able to create a DEV certfiicate with Appid com.client.appname in your developer program
4. Have your customer invite you into his Program and create the matching provising profile for appstore submission and push notification with this Appid.
You can be in multiple development programs (I'm currently in three different ones..)

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.

Does my client need a developer account to submit the app I made them to the App Store?

I wonder if someone could offer insight here:
I work for an independent multimedia firm who builds communications material for their clients. We're currently working through our first iPhone app. So, my shop has now completed an app that conforms to our client's brand, and we wish to deploy this app to the App Store on behalf of our client. Looking over Apple's documentation, everything seems to be written on the assumption that you are releasing your own app... therefore, the Apple documentation seems to start one step ahead of where I need it to.
So, as a multimedia production firm, I have set up a developer account for my company that I have been using to develop our client's app. However, I assume my account cannot release my client's application, given that it would cite my company's name as the publisher. Therefore, how do I start this process on behalf of my client? Will they first need their own $99 developer account to publish with, or is there a separate publisher identity that I can set up within my account that represents my client?
Any and all help on this would be appreciated. Thanks!
I typically have the client create their own account. From there most clients will provide me access to their admin account so I can go through the rest of the steps.
I often submit apps through their admin account, however, a team member is an option if the client is not interested to provide admin credentials.