From 937fab545a630a67babde0ed92e0b4b1aab39ea4 Mon Sep 17 00:00:00 2001 From: Clement James Date: Tue, 1 Sep 2026 20:01:37 +0100 Subject: [PATCH] fix(podspec): use recursive ** framework search path on unity macOS + unreal iOS PR #3 fixed this for the Unity iOS podspec: Xcode does not expand a single '*' in FRAMEWORK_SEARCH_PATHS, so 'plugins/*/' never resolves the vendored engine framework for hosted (pub.dev) / standalone installs. The Unity macOS and Unreal iOS podspecs still used the single-'*' form; switch them to Xcode's recursive '**' to match. --- engines/unity/dart/macos/gameframework_unity.podspec | 8 ++++++-- engines/unreal/dart/ios/gameframework_unreal.podspec | 8 ++++++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/engines/unity/dart/macos/gameframework_unity.podspec b/engines/unity/dart/macos/gameframework_unity.podspec index 5e837e5..804e023 100644 --- a/engines/unity/dart/macos/gameframework_unity.podspec +++ b/engines/unity/dart/macos/gameframework_unity.podspec @@ -42,8 +42,12 @@ to sync your Unity export to your plugin's macos/ directory. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386', - # Search for frameworks in the local directory (symlink), Pods build directory, and sibling plugins - 'FRAMEWORK_SEARCH_PATHS' => '$(inherited) "${PODS_TARGET_SRCROOT}" "${PODS_CONFIGURATION_BUILD_DIR}" "${PODS_ROOT}/../.symlinks/plugins/*/macos"', + # Find UnityFramework wherever the consumer plugin vendors it. NOTE: Xcode + # does NOT expand a single `*` in search paths, so "plugins/*/macos" never + # resolves for hosted (pub.dev) installs — it only worked when `game sync` + # planted a symlink in this pod's own dir. Use Xcode's recursive `**` + # syntax, which searches all subdirectories under the plugins symlink dir. + 'FRAMEWORK_SEARCH_PATHS' => '$(inherited) "${PODS_TARGET_SRCROOT}" "${PODS_CONFIGURATION_BUILD_DIR}" "${PODS_ROOT}/../.symlinks/plugins/**"', # Allow weak linking to UnityFramework 'OTHER_LDFLAGS' => '$(inherited) -ObjC' } diff --git a/engines/unreal/dart/ios/gameframework_unreal.podspec b/engines/unreal/dart/ios/gameframework_unreal.podspec index 227cd18..2db3163 100644 --- a/engines/unreal/dart/ios/gameframework_unreal.podspec +++ b/engines/unreal/dart/ios/gameframework_unreal.podspec @@ -44,8 +44,12 @@ to sync your Unreal export to your plugin's ios/ directory. s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386', - # Search for frameworks in the local directory (symlink), Pods build directory, and sibling plugins - 'FRAMEWORK_SEARCH_PATHS' => '$(inherited) "${PODS_TARGET_SRCROOT}" "${PODS_CONFIGURATION_BUILD_DIR}" "${PODS_ROOT}/../.symlinks/plugins/*/ios"', + # Find UnrealFramework wherever the consumer plugin vendors it. NOTE: Xcode + # does NOT expand a single `*` in search paths, so "plugins/*/ios" never + # resolves for hosted (pub.dev) installs — it only worked when `game sync` + # planted a symlink in this pod's own dir. Use Xcode's recursive `**` + # syntax, which searches all subdirectories under the plugins symlink dir. + 'FRAMEWORK_SEARCH_PATHS' => '$(inherited) "${PODS_TARGET_SRCROOT}" "${PODS_CONFIGURATION_BUILD_DIR}" "${PODS_ROOT}/../.symlinks/plugins/**"', # Allow weak linking to UnrealFramework 'OTHER_LDFLAGS' => '$(inherited) -ObjC', 'CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES' => 'YES'