diff --git a/.github/workflows/release-godot.yml b/.github/workflows/release-godot.yml
index 94192b7a..519897a7 100644
--- a/.github/workflows/release-godot.yml
+++ b/.github/workflows/release-godot.yml
@@ -190,9 +190,12 @@ jobs:
run: |
mkdir -p dist/addons/godot-iap/android
mkdir -p dist/addons/godot-iap/bin/ios
+ mkdir -p dist/addons/godot-iap/scripts
cp addons/godot-iap/*.gd dist/addons/godot-iap/
cp addons/godot-iap/plugin.cfg dist/addons/godot-iap/
+ cp scripts/fix_ios_embed.sh dist/addons/godot-iap/scripts/
+ chmod +x dist/addons/godot-iap/scripts/fix_ios_embed.sh
cp android/build/outputs/aar/godot-iap-release.aar dist/addons/godot-iap/android/GodotIap.release.aar
cp android/build/outputs/aar/godot-iap-release.aar dist/addons/godot-iap/android/GodotIap.debug.aar
diff --git a/knowledge/internal/05-docs-patterns.md b/knowledge/internal/05-docs-patterns.md
index 5c23509c..cfebc742 100644
--- a/knowledge/internal/05-docs-patterns.md
+++ b/knowledge/internal/05-docs-patterns.md
@@ -246,11 +246,20 @@ Before adding or editing a `Package Releases` list:
2. Read the current package metadata from `origin/main`, not from memory.
3. For planned patch releases, add exactly one patch version to each affected
framework package and label the block `Planned Package Releases`.
-4. For published release links, confirm each tag exists with
- `gh release view
- After exporting from Godot, you must configure the
- frameworks in Xcode:
+ The GodotIap export plugin registers the iOS frameworks during export
+ so they are added to Xcode's Embed Frameworks build
+ phase automatically. Before exporting, make sure GodotIap is enabled
+ in the iOS export preset's Plugins section.
The frameworks are located at:
+ If you exported with an older plugin version, or if Xcode still shows
+ the frameworks as file references instead of framework bundles, run
+ the post-export fixer from your Godot project root:
+ Then configure the runpath:
+ The script finds the exported
+ It also converts framework file references to framework bundles and
+ restores any missing framework The frameworks are located at: Then confirm the runpath:
- iOS: Xcode Configuration (Required)
+ iOS: Xcode Framework Embedding
#
-
- .xcodeproj in Xcode
-
-
- GodotIap.framework
- SwiftGodotRuntime.framework
-
-
+
+ .xcodeproj, embeds:
+
LD_RUNPATH_SEARCH_PATHS)
+ GodotIap.framework
@executable_path/Frameworks if not already present
+ SwiftGodotRuntime.framework
Info.plist files.
+ Manual Xcode fallback
+
+
+ .xcodeproj in Xcode
+
+
+ GodotIap.framework
+ SwiftGodotRuntime.framework
+
+
+ LD_RUNPATH_SEARCH_PATHS)
+ @executable_path/Frameworks if not already
+ present
+ Library not loaded: @rpath/GodotIap.framework/GodotIap.
- If you skip the Runpath setting, it will crash with:{' '}
+ If the runpath is missing, it can crash with:{' '}
Library not loaded:
@rpath/SwiftGodotRuntime.framework/SwiftGodotRuntime
@@ -216,7 +247,7 @@ make android
- iOS: Fix Missing Info.plist (Required)
+ iOS: Missing Info.plist Fallback
#
@@ -230,13 +261,11 @@ make android
>
Godot export bug
Info.plist files inside frameworks may not be
- copied during export. This causes the build to fail with:{' '}
- Framework did not contain an Info.plist.
-
- Solution: Add a build phase script in Xcode:
+ , some exports may omit Info.plist files inside embedded
+ frameworks. The fix_ios_embed.sh script above copies the
+ missing files automatically.
If you still need an Xcode build phase fallback:
Info.plist files from the source frameworks to the build
- output. You only need to set this up once per project.
+ Tip: Prefer the post-export fixer when possible; the
+ build phase is only a fallback for projects that cannot run the script
+ after export.
+ Publishes godot-iap 2.2.8 for the iOS export
+ workflow. GodotIap now registers its iOS frameworks during export so
+ Xcode receives GodotIap.framework and{' '}
+ SwiftGodotRuntime.framework as embedded framework
+ bundles automatically. The release also ships the post-export fixer
+ inside the addon package for projects that were exported with an
+ older plugin version. See{' '}
+
+ discussion #146
+ {' '}
+ and{' '}
+
+ PR #148
+
+ .
+
fix_ios_embed.sh is included in release artifacts and
+ can repair existing exports by copying missing framework{' '}
+ Info.plist files, normalizing framework bundle
+ references, and avoiding duplicate framework link entries.
+ XCODEPROJ when multiple{' '}
+ .xcodeproj files are present, rather than silently
+ patching the first project it finds.
+ Info.plist steps as fallback guidance.
+