How to build an iOS binary without setting an Apple Developer account and team?

3k Views Asked by At

I'm using Xcode 6.3.2, and I'd like to let another people to build and create the .ipa files of my projects, but I don't want neither to expose my Apple Developer account information, nor create users for them in my team... is that possible? Either by using Xcode, either by commands line.

Thanks in advance

EDIT: The goal is to prevent those external people from being able to submit apps to the App Store by means of my Apple Developer account and from being able to see the other apps managed in the account.

EDIT2: Does providing the distribution certificate to external people make possible to them to submit binaries to the App Store?

4

There are 4 best solutions below

3
On

Apple recently introduced Free-provisional-profile and/or free-developer-certificate support.
But it's limited (see below note).

To utilise that follow below steps suggested by Apple,

  • In Xcode, add your Apple ID to Accounts preferences, described in Adding Your Apple ID Account in Xcode.

enter image description here

  • In the project navigator, select the project and your target to display the project editor.
  • Click General and choose your name fromthe Team pop-up menu.

enter image description here

  • Connect the device to your Mac and choose your device from the Scheme toolbar menu.

  • Below the Team pop-up menu, click Fix Issue.

    Xcode creates a free provisioning profile for you and the warning text under the Team pop-up menu disappears.

enter image description here

  • Click the Run button.

Note that said support is limited, for example, the capability to sell things with "Apple Pay" would not even build with a free-certificate.

2
On

Yes, there are several ways to solve your problem.

  1. You can create .ipa file with you provisioning profile and give them the file, they can you use application called "Application Loader", they can use this application to upload the .ipa, this should resign your application with their provisioning profile. I did not try this but it should work.

  2. When you create an archive of you application, it will be listed in "Organizer", go to that location, and give them that .app file alone. Then they can use any third party application(can be downloaded from Mac Appstore) to resign the application with their profile. In this case, you are completely hiding your information. They can even change the application icon, default image.. etc during the resigning process.

  3. When you build your application in release mode an .app file is created, this is unsigned binary. You can search for .app file in your Xcode project itself. Just find the location, and give them that .app file alone. Then they can use any third party application(can be downloaded from Mac Appstore) to resign the application with their profile. In this case, you are completely hiding your information. They can even change the application icon, default image.. etc during the resigning process.

Hope this helps.

1
On

No, There is no way to compile a .ipa without a provisioning profile (device compile, not simulator compile). To do this, you would go XCode->{AppTarget}->Build Settings->Code Signing->Code Signing Identity, and set 'Don't code sign".

Trying to compile afterwards will fail with

CodeSign error: Code signing is required for product type 'Application' in SDK...enter image description here


EDIT: The goal is to prevent those external people from being able to submit apps to the App Store by means of my Apple Developer account and from being able to see the other apps managed in the account.

You have two options:

  1. Send them your Source code + XCode Project, and not the library.

  2. Compile the code using "iOS Developer" Code Signing identity, and not "iOS Distribution" identity.

    • Anything signed with iOS Developer can never be sent to the AppStore.
    • Anything signed with iOS Distribution can never be run on a device unless it is downloaded from the AppStore.
    • They can never see what you have for sale, nor publish anything unless they have your AppleID username and password
3
On

After reading your edits, I think I understand more clearly what you are trying to do. Basically, you will simply need to provide the other members of your team with the following:

  • The private key used to generate your app store distribution certificate.
  • The distribution certificate
  • The app store distribution provisioning profile

This will allow those team members to work on, and build the app for the app store. Without your Apple developer ID password, they will not be able to log into iTunes Connect to see the other apps you have. While they will be able to build the app for app store distribution, you (as the only one with the apple ID password) will have to be the one to submit the compiled app to the store.

So basically, your development team will create the apps. When you're ready for release, they can do an "Archive" in Xcode to create the .app that has been signed for the app store (using the provisioning profile and signing identity that you provided them in the three files I mention above. They will zip up the .app and the .dSym files into a .zip and send it to you. You will then log into iTunes Connect and set upt the app to be ready for the new binary, and then use the Application loader to upload the .zip to apple for review. Once you have gotten a successful review, you will again log into iTunes Connect to release the app. So at no point will the developers have access to submit apps or see other apps you have in the store.

Also, the development team will not need the provisioning profile, cert, and key until they need to build for the app store. During the development phase, there is no problem with them using their own developer accounts to build and test the app.

One additional thing to note is that Apple is changing the roles that are available in iTunes connect. You may want to review those new roles to see if some combination of those roles my work for your team setup.

From http://9to5mac.com/2015/06/12/wwdc-itunes-connect-testflight-limits-account-switching/

After several apps are added to an account by its admin, developers can now assign user roles to individuals on their team— app manager, developer, or marketer— with each allowing varying access to iTunes Connect features. App managers, for example, will be able to create users, assign user roles, change pricing, and submit apps for review. Marketers will get access to updating store metadata, uploading promo material, and requesting promo codes. Users assigned the developer role will be able to upload binaries, and view crash logs and store metadata.