Verifying an IPA
Before you tell a tester “try again”, confirm the build actually includes their
device. You inspect the provisioning profile embedded inside the .ipa:
# 1. Extract the embedded profile from the IPA
unzip -o -q ./build/app-preview.ipa "Payload/*/embedded.mobileprovision" -d /tmp/ipa_check
# 2. Decode it to a readable plist
security cms -D -i /tmp/ipa_check/Payload/*.app/embedded.mobileprovision -o /tmp/profile.plist
# 3. Inspect the type and the included devices
/usr/libexec/PlistBuddy -c "Print :Name" /tmp/profile.plist
/usr/libexec/PlistBuddy -c "Print :ProvisionedDevices" /tmp/profile.plist
What to look for:
:Nameshould say AdHoc.:ProvisionedDevicesmust contain the tester’s UDID.
Compare :ProvisionedDevices against eas device:list. If a UDID you expect is
missing, go back to Adding a New iOS Device and regenerate the profile
with that device included, then rebuild.