From dbc9735d9632fc9cdf35df330e9cac059fec6e87 Mon Sep 17 00:00:00 2001 From: Chris Randall Date: Wed, 7 Oct 2026 16:25:40 -0400 Subject: [PATCH] iOS: embed the appex itself, not Xcode's archive symlink to it Under an Archive the appex's build-products path is a symbolic link to Xcode's intermediates, and cp -R copied the link: App Store Connect rejected the upload with ITMS-90332 at PlugIns/.appex. cp -RH follows that one link. Co-Authored-By: Claude Opus 5.5 --- cmake/ios_embed_appex.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/ios_embed_appex.sh b/cmake/ios_embed_appex.sh index 65dde6d5..a16ab92f 100755 --- a/cmake/ios_embed_appex.sh +++ b/cmake/ios_embed_appex.sh @@ -39,10 +39,14 @@ if [ "$IDENTITY" = "-" ] && [ "${PLATFORM_NAME:-}" = "iphoneos" ]; then exit 1 fi -# Clean + copy +# Clean + copy. -H: under an Archive, the appex's build-products path is a +# symbolic link Xcode points at its intermediates, and a plain -R copies the +# link itself -- App Store Connect then rejects the upload (ITMS-90332, an +# invalid symbolic link at PlugIns/.appex). Follow the one link named +# here; anything inside the appex is copied as it is. rm -rf "$APPEX_DST" mkdir -p "$(dirname "$APPEX_DST")" -cp -R "$APPEX_SRC" "$APPEX_DST" +cp -RH "$APPEX_SRC" "$APPEX_DST" # Re-sign the host (nested-code hash changed when we added the appex). # --preserve-metadata=entitlements keeps the host's own entitlements that