Fix macOS Privacy Manifest Integration to Prevent CFBundleExecutable Validation Error #921
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
📝 Description:
This PR resolves a macOS App Store Connect validation issue caused by improper usage of s.resource_bundles in the podspec, which led to the error:
Bad CFBundleExecutable. Cannot find executable file that matches the value of CFBundleExecutable...
🔧 Changes Made:
Replaced s.resource_bundles with s.resources in flutter_secure_storage_darwin.podspec to include PrivacyInfo.xcprivacy directly into the framework bundle instead of a nested .bundle.
This ensures that the privacy manifest file is placed correctly without creating a nested resource bundle, which is unnecessary and triggers validation errors during App Store/TestFlight submission.
📌 Why This Fix:
Starting from Xcode 15 and iOS 17/macOS 14, Apple requires a valid Privacy Manifest (PrivacyInfo.xcprivacy) in frameworks.
Using s.resource_bundles creates a separate bundle (flutter_secure_storage.bundle) without an executable, leading to CFBundleExecutable issues.
Switching to s.resources embeds the privacy file directly inside the framework's Resources folder, complying with App Store expectations.
🧪 Validation:
App submission now passes without CFBundleExecutable error.
Verified privacy manifest appears correctly under the framework's Resources.
Let me know if you'd like me to reword or add anything else!