Repository navigation
fix(ios): keep the iap capability android-only so iOS builds - #54
Merged
Merged
Conversation
- `tauri-plugin-iap` is an Android-only dependency until StoreKit 2 exists, but `capabilities/iap.json` still listed iOS. tauri-build validates capability permissions per target, so the iOS build failed with `Permission iap:default not found` and the app build script exited 1, breaking `tauri ios build`. - Declare the capability for Android only, matching the crate target gate. - No behaviour loss on iOS: plan.rs reports Pro with no limits outside Android and billing.ts returns early, so the paywall never opens there. - Refresh the iOS Info.plist version to 0.4.0.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Why
tauri ios buildfailed while compiling the app build script:tauri-plugin-iapis only a dependency for Android (cfg(target_os = "android")) until the StoreKit 2 implementation exists, butcapabilities/iap.jsonstill declaredplatforms: ["android", "iOS"]. tauri-build validates capability permissions per target (validate_capabilitiesinacl.rs), so on the iOS target the plugin manifest is absent andiap:defaultcannot be resolved.What
capabilities/iap.json:platformsnow["android"].Cargo.toml,lib.rs,plan.rs: drop the iOS branches so billing/limits are Android-only (iOS is always Pro, same as desktop).Info.plist: version bump to 0.4.0.No behaviour loss on iOS
plan_statusreturnspro: truewithlimits: nulloutside Android, soplanGated()is false and everybilling.tsentry point returns early — the paywall never opens and noiapIPC is attempted.Verification
cargo build --package app --target aarch64-apple-ios --lib --release✅npm run ipa→Atlas.ipa✅npm run check✅ ·npm test(284) ✅ ·npm run build✅