Thanks, prior to publication, where does the value come from?
Post
Replies
Boosts
Views
Activity
Looks like new provisioning profiles now include the com.apple.developer.associated-appclip-app-identifiers key, I was originally getting a warning that my entitlements didn’t include it.
Upon re-generating the provisioning profile it now includes the value and it gets inserted into the entitlements.
I am now getting an error complaining that the key should be an array instead of a string.
Changing the xcent file to make it into an array means I’m unable to code sign the IPA.
Going to raise a DTS with Apple and I will post back any updates (:
May I ask how you added this entitlement, by manually adding the key into your entitlement file? The key is not available for selection in my project, evan if I recreate a new entitlement file.?
I added it manually, you can change the plist display settings to show the keys/values instead of dropdown.
If you create a new provisioning profile then it should include the entitlement and it will automatically be added to the entitlements when they are generated on build (Xcode 12.5b3). However, it’s added as a string and ASC seems to expect an array.
If I use the old profile I get the ITMS-90876 warning back and with the new profile I get ITMS-90877 and ITMS-90878.
Building using the new provisioning profile in Xcode 12.4 results in a warning to remove the com.apple.developer.associated-appclip-app-identifiers entitlement from the profile as it’s unused and not in my entitlements file.
I tried forcing it to be an array using a build script run as the last build phase:
bash
! /usr/bin/env zsh
set -euo pipefail
alias PlistBuddy=/usr/libexec/PlistBuddy
XCENT_FILE="${TARGET_TEMP_DIR}/${FULL_PRODUCT_NAME}.xcent"
echo "Updating ${TARGET_TEMP_DIR}/${FULL_PRODUCT_NAME}.xcent"
APPCLIP_ID=$(PlistBuddy -c "Print com.apple.developer.associated-appclip-app-identifiers" "$XCENT_FILE")
PlistBuddy -c "Delete com.apple.developer.associated-appclip-app-identifiers" "$XCENT_FILE"
PlistBuddy -c "Add com.apple.developer.associated-appclip-app-identifiers array" "$XCENT_FILE"
PlistBuddy -c "Add com.apple.developer.associated-appclip-app-identifiers:0 string '$APPCLIP_ID'" "$XCENT_FILE"
However, this meant I wasn’t able to select provisioning profile because it complained that the profile had a string and not an array as in my entitlements.
It’s a bit strange that the developer portal is returning the entitlement as a single value string in the provisioning profile but on submission it’s rejected because it isn’t an array. I don’t think a new Xcode beta alone will fix that unless the generated provisioning profile is also changed.
https://developer.apple.com/documentation/app_clips/associating_your_app_clip_with_your_website
Add the Associated Domains Entitlement
No matter which invocations you choose to support and which invocation URLs you use, you must add the Associated Domains Entitlement to the app and the App Clip targets
Perhaps try adding the associated domain to the main app as well.
I regenerated the relevant provisioning profiles in the developer portal and then successfully built + uploaded a binary using Xcode 12.5 RC. 🎉
Try placing the translations in the InfoPlist.strings file, your image links are dead so I can’t check them.
Does it work if you use Xcode 13?
Turns out Xcode 14 removes the entitlement from the xcent file before embedding that in the code signature.
You should be able to do something like:
/usr/libexec/PlistBuddy -c "Add :aps-environment string development" "$TARGET_TEMP_DIR/$FULL_PRODUCT_NAME.xcent"
In a build script towards the end of the build.