Unable to build:ios enterprise distribution (Reason:You are not allowed to perform this operation.)

Hi all,

I’m new to expo and trying to build an ios app. I have two Apple developer accounts, one personal (for AppStore distribution) and one enterprise (for In-House distribution). When I enter my developer account credentials, I’m getting asked what team ID I want to use (as my private account is also Admin for the enterprise account). As long as I select my private team, everything builds successfully. But I need to build an app for enterprise distribution.

If I select the enterprise (In-House) team, I get the following error message:

Alexanders-MBP:expotest alexanderlucke$ exp build:ios -c
[exp] Making sure project is set up correctly...
\[exp] Warning: Not using the Expo fork of react-native. See https://docs.expo.io/.
[exp] Your project looks good!
[exp] Checking if current build exists...

[exp] No currently active or previous builds for this project.
[exp] Removed existing credentials
[ { action: 'ruby_dir',
    path: '/usr/local/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.2.5-osx',
    doesExist: false },
  { action: 'app_management',
    path: '/usr/local/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.2.5-osx/app_management',
    doesExist: true },
  { action: 'fetch_cert',
    path: '/usr/local/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.2.5-osx/fetch_cert',
    doesExist: true },
  { action: 'fetch_new_provisioning_profile',
    path: '/usr/local/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.2.5-osx/fetch_new_provisioning_profile',
    doesExist: true },
  { action: 'fetch_push_cert',
    path: '/usr/local/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.2.5-osx/fetch_push_cert',
    doesExist: true },
  { action: 'validate_apple_certs',
    path: '/usr/local/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.2.5-osx/validate_apple_certs',
    doesExist: true },
  { action: 'validate_apple_credentials',
    path: '/usr/local/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.2.5-osx/validate_apple_credentials',
    doesExist: true },
  { action: 'validate_apple_push_certs',
    path: '/usr/local/lib/node_modules/exp/node_modules/@expo/traveling-fastlane-darwin/traveling-fastlane-1.2.5-osx/validate_apple_push_certs',
    doesExist: true } ]
? How would you like to upload your credentials?
 Expo handles all credentials, you can still provide overrides

We need your Apple ID/password to manage certificates and
provisioning profiles from your Apple Developer account.

Note: Expo does not keep your Apple ID or your Apple password.

? What's your Apple ID? ********
? Password? ********
[exp] Using {"appleId":"********","password":"********"} as Apple Credentials
[exp] Validating Credentials...
{ action: 'teams attempt retrieval',
  dump: { result: 'success', teams: [ [Object], [Object] ] } }
[exp] You have 2 teams
1) CD47C657VJ "Alexander Lucke" (Individual)
2) HKCS9U3Q52 "DNS: NET Internet Service GmbH" (In-House)
? Which Team ID to use? 2) HKCS9U3Q52 "DNS: NET Internet Service GmbH" (In-House)
{ teamId: 'HKCS9U3Q52' }
{ result: 'success',
  name: 'aluckeexpotest c7c464a29f38a45bb5df7a1df5de0a77',
  prefix: 'HKCS9U3Q52' }
? Will you provide your own Distribution Certificate? Let Expo handle the process
? Will you provide your own Push Certificate? Let Expo handle the process
⠹ Now producing files for distCert{ result: 'failure',
  reason: 'You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support',
  rawDump:
   { responseId: '6bcb1564-e43f-4813-8c8f-7500c20c6cf2',
     resultCode: 1200,
     resultString: 'You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support',
     userString: 'You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support',
     creationTimestamp: '2018-01-30T11:36:07Z',
     protocolVersion: 'QH65B2',
     userLocale: 'en_US',
     requestUrl: 'https://developer.apple.com/services-account/QH65B2/account/ios/certificate/submitCertificateRequest.action',
     httpCode: 200 } }
[exp] Error while gathering & validating credentials
[exp] {}
[exp] Reason:You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support, raw:{"responseId":"6bcb1564-e43f-4813-8c8f-7500c20c6cf2","resultCode":1200,"resultString":"You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support","userString":"You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support","creationTimestamp":"2018-01-30T11:36:07Z","protocolVersion":"QH65B2","userLocale":"en_US","requestUrl":"https://developer.apple.com/services-account/QH65B2/account/ios/certificate/submitCertificateRequest.action","httpCode":200}
[exp] Error: Reason:You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support, raw:{"responseId":"6bcb1564-e43f-4813-8c8f-7500c20c6cf2","resultCode":1200,"resultString":"You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support","userString":"You are not allowed to perform this operation.  Please check with one of your Team Admins, or, if you need further assistance, please contact Apple Developer Program Support. https://developer.apple.com/support","creationTimestamp":"2018-01-30T11:36:07Z","protocolVersion":"QH65B2","userLocale":"en_US","requestUrl":"https://developer.apple.com/services-account/QH65B2/account/ios/certificate/submitCertificateRequest.action","httpCode":200}
    at IOSBuilder._throwIfFailureWithReasonDump (/Users/Edgar/universe/dev/exp/src/commands/build/IOSBuilder.js:389:13)
    at IOSBuilder._callee6$ (/Users/Edgar/universe/dev/exp/src/commands/build/IOSBuilder.js:269:14)
    at tryCatch (/usr/local/lib/node_modules/exp/node_modules/regenerator-runtime/runtime.js:62:40)
    at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/exp/node_modules/regenerator-runtime/runtime.js:296:22)
    at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/exp/node_modules/regenerator-runtime/runtime.js:114:21)
    at step (/usr/local/lib/node_modules/exp/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
    at /usr/local/lib/node_modules/exp/node_modules/babel-runtime/helpers/asyncToGenerator.js:28:13
    at process._tickCallback (internal/process/next_tick.js:109:7)

Any idea why I get “Reason:You are not allowed to perform this operation.” here?

I also tried to download all my certs from the Apple developer portal (distribution cert, push notification cert and provisioning profile) and give exp my own profiles (although I don’t know what password I have to enter when exp asks me because my .p12 has no password, as far as I know?!). With giving the profiles he starts the build but in the build log I get then:

<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>E2A05026A046C681</RequestId><HostId>NCjuFzTjR6y36Im1lirwdzl7QBXm71gQxnE2Pxf93mEm3/tNydgjfTHqFMfODeAPkvC9LSYOBa0=</HostId></Error>

Any idea what I’m doing wrong here?

Thanks for your help.
Alex

Hi,

ok, I made a step by myself. I found out that the .p12 file I can paste into exp is not the distribution certificate I can download in the developer portal but that I have to export it from the keychain or xcode. Fine. Now I know the password to enter into exp :slight_smile:

Building worked with this .p12 file. Nevertheless the “handle it automatically” (without uploading my own .p12) doesn’t work for me.

Alex

1 Like

Hey @alucke

Sorry this is so confusing, I’ve dug up an older forum posts where other users have had luck. Error while gathering & validating credentials - #18 - does this help you out at all?

You’re going to want to run it as exp build:ios -c

You’re going to want to make sure you’ve logged into apple developer and accept terms and conditions.

You will want to revert your apple distribution cert and let Expo handle it.

@alucke Latest version of exp now can make enterprise certs for you.

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.