Apple today seeded the second public betas of iOS 15.4 and iPadOS 15.4 for testing by public beta testers. The second beta releases come one day after the developer beta release.
Public builds of iOS 15.4, iPadOS 15.4 can be downloaded via the Apple Beta Software Program website by users signed up to take part in the testing program. If you’re interested in trying out the betas of the upcoming operating systems you can sign up for the program by clicking the same link.
Updates in iOS & iPadOS 15.4 Beta
Apple Pay
New Features in iOS & iPadOS 15.4 Beta
- Developers can express payment network preference in PKPaymentRequest. Network preference is determined by the order of supportedNetworks. This won’t override the user’s default card selection, but if the card is multi-SSD, then the network preference order determines which SSD is selected. (80827905)
Authentication
New Features in iOS & iPadOS 15.4 Beta
- Support is added to the passkey technology preview, enabling signing in to passkey-compatible websites and apps on Mac and iPad using an iPhone with a saved passkey. (87998254)
Game Controller
New Features in iOS & iPadOS 15.4 Beta
- Support is now available for new DualSense adaptive trigger firmware features available via GCDualSenseAdaptiveTrigger. (87433163)
HealthKit
New Features in iOS & iPadOS 15.4 Beta
- Verifiable health records now support adding vaccination records in the EU Digital COVID Certificate (EU DCC) format to the Wallet and Health apps. (79917344)
- HealthKit query APIs in Swift now support async/await syntax, which simplifies the structure of code that previously used completion callbacks. (74040680)
libc++
New Features in iOS & iPadOS 15.4 Beta
- The following new C++20 and C++23 features are now implemented:
- P0898R3: C++20 library concepts defined in <concepts>.
- P0879R0: constexpr for std::swap() and swap-related functions.
- P1032R1: Miscellaneous constexpr-ification in the library.
- P0883R2: std::atomic now default initializes as expected.
- P0458R2: A .contains() method for associative containers.
- P0356R5: Added std::bind_front(). (88131816)
Deprecations in iOS & iPadOS 15.4 Beta
- Some extensions in std::tuple were removed to fix bugs caused by those extensions:
- Tuples can no longer be constructed from fewer than the number of elements in the tuple. Previously, elements that weren’t specified were default-constructed; now this is a compiler error.
- A tuple can no longer be constructed from an array.
- The std::result_of and std::is_literal_type type traits are no longer available in C++20 mode, as specified in the Standard.
SharePlay
New Features in iOS & iPadOS 15.4 Beta
- A new GroupActivities API allows you to present UI that enables starting a SharePlay session from within your app. (88099397)
StoreKit
New Features in iOS & iPadOS 15.4 Beta
- SKTestSession has three new methods to simulate a subscription requiring price increase consent, simulate consenting to a pending price increase, and simulate declining a price increase in automated tests. (84556183)
- SKTestSession has two new Boolean properties to simulate billing retry and grace period in automated tests. You can identify and simulate the resolution of billing retry issues using the same APIs as interrupted purchases. (83956205)
- Users can now test the billing retry and grace period states using StoreKit Testing in Xcode. Use Xcode 13.3 or later to enable billing retry testing and toggle whether the app offers a grace period. Use isInBillingRetry and gracePeriodExpirationDate to handle these states in the app. (83938270)
- You can now test offer codes with StoreKit Testing in Xcode. Configure offers for codes in Xcode 13.3 or later, and test redeeming them using presentCodeRedemptionSheet(). (63692551)
- Users can test subscription price increase behavior using StoreKit Testing in Xcode. Use Xcode 13.3 or later to set a price increase, then use paymentQueueShouldShowPriceConsent(_:), showPriceConsentIfNeeded(), and priceIncreaseStatus in the app. (58770817)
- StoreKit error types now conform to LocalizedError. (78735204)
- Some types in StoreKit now have a localizedDescription’ read-only String` instance property. This property can be used to get a human-readable description of the value, localized for the device’s current locale. These types include: Product.ProductType, Product.SubscriptionInfo.RenewalState, expirationReason, priceIncreaseStatus, Transaction.OfferType, Product.SubscriptionOffer.OfferType, Product.SubscriptionOffer.PaymentMode, Product.SubscriptionPeriod.Unit, Transaction.RevocationReason, and Transaction.OwnershipType. (78735060)
- SKAdNetwork implementation can now be unit tested using the StoreKit Test framework. You can use the SKAdTestSession class to test the validity of ad impressions, update conversion values on test postbacks, and receive test postbacks at the server. This class also displays the URL to which the optional developer postback is sent. (59571961)
As usual, MacTrast and Apple both warn users to not install any betas on their daily driver iPhone or iPad. Instead, only install betas on a device set aside for testing purposes.