Overview
Various under-the-hood bug fixes and improvements
What's Changed
✨ Community Highlight
- [PM-18596] feat: Hide SSN Field by Default on Identity Screen by @OneUpWallStreet in #1380
Feature Development
- [PM-33847] feat: Handle premiumStatusChanged push notification by @andrebispo5 in #2560
- [PM-34898] feat: Self-hosted support for PremiumUpgradeView by @andrebispo5 in #2558
- [PM-35100] feat: Load subscription data into premium plan screen by @andrebispo5 in #2555
- [PM-36044] feat: Gate premium upgrade banner to US App Store users by @andrebispo5 in #2593
- [PM-35101] feat: Complete Stripe premium checkout flow by @andrebispo5 in #2574
- [PM-11610] feat: Change TOTP countdown circle color to urgent when ≤ 7 seconds remain by @KatherineInCode in #2579
- [PM-34715] feat: Add confirmation prompt when archiving a vault item by @KatherineInCode in #2594
- [PM-33569] feat: Add notification service extension to update auth request notifications by @matt-livefront in #2444
- [PM-32809] feat: add Bank Account foundation types and icon by @SaintPatrck in #2573
- [PM-33989] [IS] feat: Implement card scanner by @fedemkr in #2494
- [PM-36622] feat: add premium upgrade complete modal UI by @andrebispo5 in #2618
- [PM-36251] feat: Navigate archive premium upsell through in-app upgrade flow by @andrebispo5 in #2607
- [PM-37086] feat: show settings plan row for free users by @andrebispo5 in #2631
- [PM-36627] feat: Update upgraded to premium action card by @andrebispo5 in #2634
- [PM-36623] feat: premium upgrade complete navigation by @andrebispo5 in #2639
- [PM-34422] [IS] feat: Add card number format grouping by @fedemkr in #2506
- [PM-37253] feat: Extract PremiumUpgradeHelper to centralise premium upgrade navigation by @andrebispo5 in #2645
- 🍒 [PM-37642] feat: Add debug menu flag to disable self-host premium checks by @andrebispo5 in #2670
🐛 Bug fixes
- [PM-31836] fix: Prevent double-resume crash on Fido2 credential continuations by @matt-livefront in #2540
- [PM-35329] fix: Show certificate validation alerts via coordinator to prevent dialog race condition by @matt-livefront in #2559
- [PM-35220] fix: Prevent data race on DefaultEnvironmentService.environmentURLs by @matt-livefront in #2548
- [PM-31836] fix: Handle no default collection case when saving Fido2 credential as new login by @matt-livefront in #2543
- [PM-31721] fix: Fall back to unauthenticated config endpoint on keychain item-not-found by @KatherineInCode in #2601
- [PM-31181] fix: Toast displays after view/edit cipher actions by @fedemkr in #2586
- [PM-23299] fix: Improve time comparisons to prevent clock tampering by @fedemkr in #2323
- [PM-35118] fix: Prevent vault timeout from re-firing for already-soft-logged-out accounts by @morganzellers-bw in #2571
⚙️ Maintenance
- Crowdin Pull by @bw-ghapp[bot] in #2556
- [PM-27240] chore: Update development app version to avoid triggering V2 encryption server check by @matt-livefront in #2552
- [PM-35271] refactor: Extract user agent construction to a shared UserAgentBuilder by @matt-livefront in #2549
- [PM-35271] chore: Provide environment URLs to SDK client via ClientSettings by @matt-livefront in #2561
- [PM-35271] refactor: Move ClientManagedTokens to AccountTokenProvider so SDK receives refreshed tokens by @matt-livefront in #2567
- [PM-35498] chore: add shared Xcode search custom scopes and setup script by @fedemkr in #2587
- [BRE-1851] Reduce permissions on Auth Key by @vgrassia in #2596
- [PM-35680] chore: Allow Sourcery to generate BitwardenSdk mocks by @matt-livefront in #2581
- [PM-30129] chore: Remove
pm-19148-innovation-archivefeature flag by @matt-livefront in #2589 - Skip tests on Gemfile* changes by @mpbw2 in #2602
- [BRE-1851] Update the Crowdin API token by @vgrassia in #2600
- Revert "Skip tests on Gemfile* changes" by @mpbw2 in #2603
- [BRE-1851] Remove GPG secrets by @vgrassia in #2606
- Crowdin Pull by @bw-ghapp[bot] in #2610
- [PM-36313] test: Fix flaky test_syncIdentities_deviceAuthKeys by @KatherineInCode in #2608
- [PM-35434] Update renovate config to remove bundler group and add t:deps label by @vvolkgang in #2605
- [PM-36184] Update jira issue fetching process by @vvolkgang in #2604
- [BRE-1851] Fix Publish Store workflow for release by @vgrassia in #2619
- [PM-36479] test: Fix flaky onExpiration_oldDate in TOTPCountdownTimerTests by @KatherineInCode in #2613
- [BRE-1851] Fix _build-any.yml workflow by @vgrassia in #2620
- [PM-35680] chore: Update SDK's collection, folder, attachment, and password history clients to AutoMockable by @matt-livefront in #2616
- [PM-36578] test: Fix flaky test_passwordHistoryPublisher in GeneratorRepositoryTests by @KatherineInCode in #2615
- [PM-35680] chore: Convert SendClientProtocol to AutoMockable by @matt-livefront in #2622
- Crowdin Pull by @bw-ghapp[bot] in #2626
- [PM-36946] ci: Increase per-test timeout from 1s to 2s by @KatherineInCode in #2623
- [bre-1881] ios CI build fix by @aj-bw in #2614
- SDK Update to baafa43 (2.0.0-4880-fa86d4d) by @LRNcardozoWDF in #2584
- [PM-36643] refactor: Extract premium checkout debounce interval to Constants by @KatherineInCode in #2632
- [QA-1851] Updating accessibilityIdentifiers in AddEditSendItemView by @ifernandezdiaz in #2636
- [PM-35680] chore: Convert GeneratorClientsProtocol to AutoMockable by @matt-livefront in #2625
- [bre-1909] cleanup migrated workflows by @aj-bw in #2640
- [PM-37072] chore: Consolidate MockAuthClient with support for MockRegistrationClientProtocol by @matt-livefront in #2638
- [PM-35680] chore: Convert CiphersClientProtocol to AutoMockable by @matt-livefront in #2644
📦 Dependency Updates
- Update SDK to 02747b1 (2.0.0-4846-c74b7d1) by @LRNcardozoWDF in #2575
- [PM-36177] Pin bundler dependencies by @mpbw2 in #2598
- Update public suffix list by @github-actions[bot] in #2557
- Update SDK to 52edf0a (2.0.0-5556-c3020a4) by @vvolkgang in #2588
- [deps]: Update fastlane to v2.233.1 by @renovate[bot] in #2629
🎨 Other
- [PM-35062] llm: Add converting-xctest-to-swift-testing skill by @KatherineInCode in #2539
- [PM-35062] llm: Fix swift testing skill to handle bash issue by @KatherineInCode in #2580
- PM-35200 - Create contributing guide for Claude tooling by @theMickster in #2592
- [PM-35680] chore: Update Claude skills to use generate-mocks.sh script by @matt-livefront in #2597
- [PM-35657] llm: Add converting-mocks-to-automockable skill by @KatherineInCode in #2569
- [PM-35116] llm: Remove local agents and delivery skills, migrate to marketplace plugins by @SaintPatrck in #2547
- [PM-37216] llm: Add DocC comment rule to converting-xctest-to-swift-testing skill by @fedemkr in #2637
- [QA-1865] Removing Rate the app alert for Beta builds by @ifernandezdiaz in #2641
New Contributors
- @OneUpWallStreet made their first contribution in #1380
Full Changelog: v2026.4.1-bwa...v2026.5.0-bwa
Builds Source: https://github.com/bitwarden/ios/actions/runs/25928972759