Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Missing parentBundleId for app clip target causes failure when updating credentials #2056

Open
philtre opened this issue Sep 15, 2023 · 5 comments
Labels
needs review Issue is ready to be reviewed by a maintainer

Comments

@philtre
Copy link

philtre commented Sep 15, 2023

Build/Submit details page URL

No response

Summary

I'm getting an error when running eas credentials on a prebuilt iOS project which includes an App Clip target. Updating the provisioning profile for the App Clip target fails with the following error:

✖ Failed to sync capability identifiers com.my-app.appclip
UnexpectedAppleResponse: Relationship is required but was not provided. - The relationship 'parentBundleId' is required but was not provided with this request.
Relationship is required but was not provided. - The relationship 'parentBundleId' is required but was not provided with this request.

I have several extension targets in our iOS project (added using @EvanBacon 's expo-apple-targets plugin):

  • a notification service extension,
  • a notification content extension,
  • an app clip

If I prebuild the Xcode project with only the notification service and content extensions, eas credentials completes without issues.
I get the above error only if the project includes the app clip target.

It seems that the App Store Connect API is returning an error response because a parentBundleId is not specified when executing BundleId.updateBundleIdCapabilityAsync() for the app clip bundle identifier. Since @expo/apple-utils is a private repo, I can't really see what's going on there.

The com.apple.developer.parent-application-identifiers key in my app clip's entitlements is also set to $(AppIdentifierPrefix)com.my-app.

Any help would be much appreciated.

Managed or bare?

Bare

Environment

  expo-env-info 1.0.5 environment info:
    System:
      OS: macOS 13.5.2
      Shell: 5.9 - /bin/zsh
    Binaries:
      Node: 18.16.0 - ~/.n/bin/node
      Yarn: 1.22.19 - ~/code/my_app/node_modules/.bin/yarn
      npm: 9.5.1 - ~/.n/bin/npm
      Watchman: 2023.04.10.00 - /opt/homebrew/bin/watchman
    Managers:
      CocoaPods: 1.11.3 - /Users/me/.rbenv/shims/pod
    SDKs:
      iOS SDK:
        Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4
    IDEs:
      Android Studio: 2022.1 AI-221.6008.13.2211.9514443
      Xcode: 14.3.1/14E300c - /usr/bin/xcodebuild
    npmPackages:
      expo: ^49.0.7 => 49.0.7
      react: 18.2.0 => 18.2.0
      react-native: 0.72.3 => 0.72.3
    npmGlobalPackages:
      eas-cli: 5.2.0
      expo-cli: 6.3.2
    Expo Workflow: bare

Expo Doctor:

✔ Validating global prerequisites versions
✔ Checking for incompatible packages
✔ Verifying prebuild support package versions are compatible
✔ Checking dependency versions for compatibility with the installed Expo SDK
✔ Validating Expo Config

Didn't find any issues with the project!

Error output

✖ Failed to sync capability identifiers com.my-app.appclip
UnexpectedAppleResponse: Relationship is required but was not provided. - The relationship 'parentBundleId' is required but was not provided with this request.
Relationship is required but was not provided. - The relationship 'parentBundleId' is required but was not provided with this request.
UnexpectedAppleResponse: Relationship is required but was not provided. - The relationship 'parentBundleId' is required but was not provided with this request.
    at o.parseResponse (/Users/me/.n/lib/node_modules/eas-cli/node_modules/@expo/apple-utils/build/index.js:1:742952)
    at o.requestAndParseAsync (/Users/me/.n/lib/node_modules/eas-cli/node_modules/@expo/apple-utils/build/index.js:1:741637)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async o.fetchSingleModelAsync (/Users/me/.n/lib/node_modules/eas-cli/node_modules/@expo/apple-utils/build/index.js:1:741360)
    at async o.patchModelAsync (/Users/me/.n/lib/node_modules/eas-cli/node_modules/@expo/apple-utils/build/index.js:1:741466)
    at async l.updateBundleIdCapabilityAsync (/Users/me/.n/lib/node_modules/eas-cli/node_modules/@expo/apple-utils/build/index.js:1:802110)
    at async syncCapabilityIdentifiersForEntitlementsAsync (/Users/me/.n/lib/node_modules/eas-cli/build/credentials/ios/appstore/capabilityIdentifiers.js:104:9)
    at async syncCapabilityIdentifiersAsync (/Users/me/.n/lib/node_modules/eas-cli/build/credentials/ios/appstore/ensureAppExists.js:91:37)
    at async syncCapabilitiesAsync (/Users/me/.n/lib/node_modules/eas-cli/build/credentials/ios/appstore/ensureAppExists.js:80:5)
    at async ensureBundleIdExistsWithNameAsync (/Users/me/.n/lib/node_modules/eas-cli/build/credentials/ios/appstore/ensureAppExists.js:58:9)

Reproducible demo or steps to reproduce from a blank project

@philtre philtre added the needs review Issue is ready to be reviewed by a maintainer label Sep 15, 2023
@szpasztor
Copy link

Running into the same issue when attempting to build a project with an app clip target.

@Lurtroxx
Copy link

Lurtroxx commented Mar 9, 2024

Same issue here!!!

@haoliangz
Copy link

same issue

@AlexandreFauchard
Copy link

I had the same issue. In my case, deleting the ios directory generated by npx expo prebuild resolved it 👍

@joshidhruv
Copy link

We are experiencing the same issue. Any help would be appreciated. @AlexandreFauchard deleting the ios folder and re-generating by npx expo prebuild also does not work. @haoliangz @Lurtroxx and @philtre Any alternatives?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
needs review Issue is ready to be reviewed by a maintainer
Projects
None yet
Development

No branches or pull requests

6 participants