Apple Seeds Release Candidate Version of iOS 15.4 and iPadOS 15.4 to Developers and Public Beta Testers
Apple today seeded the release candidate versions of upcoming iOS 15.4 and iPadOS 15.4 updates to developers for testing purposes, with the new software coming one week after Apple seeded the fifth betas of iOS 15.4 and iPadOS 15.4. The RCs represent the final versions of the updates that will be released to the public next week.
Developers can download iOS 15.4 and iPadOS 15.4 through the Apple Developer Center or over the air after the proper profile has been installed on an iPhone or iPad.
iOS and iPadOS 15.4 introduce some of the most significant changes we've seen in an update since iOS 15 launched. On the iPhone 12 and 13 models, there's now an option to use Face ID while wearing a mask with no Apple Watch required for authentication. It works just like Face ID, but it scans the area around your eyes when you're wearing a mask.
On iPad, iPadOS 15.4 brings the long awaited Universal Control feature. Paired with a Mac running macOS Monterey 12.3, Universal Control allows multiple Macs and iPads to be controlled with a single cursor and keyboard. It's a feature that works seamlessly after installing the updates, and it is simple and intuitive to use.
There are 37 new emojis with the addition of Emoji 14 characters, so you can now use emojis that include melting face, biting lip, heart hands, bubbles, beans, face with diagonal mouth, palm up hand, eggs, troll, low battery, coral, lotus, and more.
The second beta added support for the "Tap to Pay on iPhone" feature that is designed to allow NFC-compatible iPhones to accept payments through Apple Pay, contactless credit and debit cards, and other digital wallets, without requiring additional hardware.
Tap to Pay on iPhone is enabled in the iOS 15.4 beta, but it does require third-party providers to add support, so it is not yet available for use.
In the fourth beta, Apple added a new Siri voice for American users and support for AirTag anti-stalking features announced in February. When setting up an AirTag or a Find My accessory, there is now a warning that the device is locked to an Apple ID and that using it to track someone without consent is a crime.
"You can locate this item using the Find My network," reads the setup screen. "Using this item to track people without their consent is a crime in many regions around the world. This item is designed to be detected by victims and to enable law enforcement to request identifying information about the owner."
There are also signs that Apple may be planning to roll out support for digital IDs and driver's licenses in iOS 15.4. There isn't a ton of evidence for this at the current time, but there was a mention of the feature in the PassKit code in beta 2. "Find out when your driver's license or state ID is ready to use and get important updates about your ID," it reads.
Other new features include full 120Hz ProMotion support for app animations on iPhone 13 Pro models, EU vaccine certificates in the Wallet app, the ability to turn off notifications for Shortcuts automations, keyboard brightness controls in Control Center on the iPad, an Apple Card widget, iCloud Keychain notes, support for adding custom email domains to iCloud Mail right on device, and a SharePlay option in the share sheet.
We have a full list of all of the features introduced in iOS 15.4 and iPadOS 15.4 in our dedicated guide highlighting everything new in the update.
Apple has also seeded RC versions of watchOS 8.5, tvOS 15.4, and macOS Monterey 12.3. All of the updates are expected to be released next week.
Update: The updates are now also available to public beta testers.
Top Rated Comments
* iPadOS 15.4 RC (19E241) - March 8, 2022
[SPOILER="iOS & iPadOS 15.4 Release Notes"]
* Developers can express payment network preference in PKPaymentRequest ('https://developer.apple.com/documentation/passkit/pkpaymentrequest'). Network preference is determined by the order of supportedNetworks ('https://developer.apple.com/documentation/passkit/pkpaymentrequest/1619329-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)
* 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)
* Signing in to an iPad is limited to apps in this beta.
* You can now use Settings > Developer Settings > Run Throughput Test to view average results for ping packet loss, idle ping latency, and download and upload speeds. (81870452)
* Support is now available for new DualSense adaptive trigger firmware features available via GCDualSenseAdaptiveTrigger ('https://developer.apple.com/documentation/gamecontroller/gcdualsenseadaptivetrigger'). (87433163)
* The Health app crashes when you attempt to onboard the Blood Oxygen feature from within the app. (87617635)
* If Health sharing is skipped when setting up an Apple Watch for a family member, it can’t be enabled later. (87210981)
* 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)
* Pairing of Thread accessories isn’t supported. (87959565)
* Matter accessories with multiple end points might be unreachable in the Home App. (86170578)
* Matter accessories may go to a “No Response” state after pairing with the Home App. (86497690)
Workaround: Remove the accessory from Home, reset the accessory, and add it back to Home. If the issue persists, remove your home hub from Home and re-add it. If the issue continues to persist, remove the home hub and create a new one.
* Adding a Matter accessory to a third-party app fails if an Apple Home doesn’t exist. (80341813)
Workaround: Launch the Home App and create a home hub first.
* Purchasing or downloading content again from the iTunes Store and TV app might fail on some devices. (86772291)
Workaround: Rebooting the device may resolve the issue.
* The following new C++20 and C++23 features are now implemented:
* C++20 library concepts defined in <concepts>.
* constexpr for std::swap() and swap-related functions.
* Miscellaneous constexpr-ification in the library.
* std::atomic now default initializes as expected.
* A .contains() method for associative containers.
* Added std::bind_front(). (88131816)
* 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.
* A conversation transcript won’t scroll after viewing a photo in QuickLook. (87855403)
Workaround: Back out of the conversation and then reopen it to restore scrolling.
* Emergency SOS “Call with 5 Presses” is disabled for all users outside of India to fix an issue that caused this setting to unintentionally default for some users. (86189447)
* In the Throughput Test results, the Idle Ping Latency is reported in incorrect units. For example, an actual ping latency of 123.32 ms is shown as 0.12 ms. (87599982)
* A new GroupActivities ('https://developer.apple.com/documentation/GroupActivities') API allows you to present UI that enables starting a SharePlay session from within your app. (88099397)
* SKTestSession ('https://developer.apple.com/documentation/storekittest/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 ('https://developer.apple.com/documentation/storekit/product/subscriptioninfo/renewalinfo/3749502-isinbillingretry') and gracePeriodExpirationDate ('https://developer.apple.com/documentation/storekit/product/subscriptioninfo/renewalinfo/3749500-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() ('https://developer.apple.com/documentation/storekit/skpaymentqueue/3566726-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(_ ('https://developer.apple.com/documentation/storekit/skpaymentqueuedelegate/3521328-paymentqueueshouldshowpriceconse'), showPriceConsentIfNeeded() ('https://developer.apple.com/documentation/storekit/skpaymentqueue/3521327-showpriceconsentifneeded'), and priceIncreaseStatus ('https://developer.apple.com/documentation/storekit/product/subscriptioninfo/renewalinfo/3822292-priceincreasestatus') in the app. (58770817)
* StoreKit error types now conform to LocalizedError ('https://developer.apple.com/documentation/foundation/localizederror'). (78735204)
* Some types in StoreKit now have a localizedDescription read-only Stringinstance 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 ('https://developer.apple.com/documentation/storekit/product/producttype'), Product.SubscriptionInfo.RenewalState ('https://developer.apple.com/documentation/storekit/product/subscriptioninfo/renewalstate'), expirationReason ('https://developer.apple.com/documentation/storekit/product/subscriptioninfo/renewalinfo/3749499-expirationreason'), priceIncreaseStatus ('https://developer.apple.com/documentation/storekit/product/subscriptioninfo/renewalinfo/3822292-priceincreasestatus'), Transaction.OfferType ('https://developer.apple.com/documentation/storekit/transaction/offertype'), Product.SubscriptionOffer.OfferType ('https://developer.apple.com/documentation/storekit/product/subscriptionoffer/offertype'), Product.SubscriptionOffer.PaymentMode ('https://developer.apple.com/documentation/storekit/product/subscriptionoffer/paymentmode'), Product.SubscriptionPeriod.Unit ('https://developer.apple.com/documentation/storekit/product/subscriptionperiod/unit'), Transaction.RevocationReason ('https://developer.apple.com/documentation/storekit/transaction/revocationreason'), and Transaction.OwnershipType ('https://developer.apple.com/documentation/storekit/transaction/ownershiptype'). (78735060)
* SKAdNetwork ('https://developer.apple.com/documentation/storekit/skadnetwork') implementation can now be unit tested using the StoreKit Test ('https://developer.apple.com/documentation/storekittest') 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)
* When testing with StoreKit Testing in Xcode, the following APIs don’t work in the simulator: presentCodeRedemptionSheet() ('https://developer.apple.com/documentation/storekit/skpaymentqueue/3566726-presentcoderedemptionsheet'), paymentQueueShouldShowPriceConsent(_ ('https://developer.apple.com/documentation/storekit/skpaymentqueuedelegate/3521328-paymentqueueshouldshowpriceconse'), and showPriceConsentIfNeeded() ('https://developer.apple.com/documentation/storekit/skpaymentqueue/3521327-showpriceconsentifneeded'). (85982859)
Workaround: Test these APIs using an iOS device.
* All animations created with UIView ('https://developer.apple.com/documentation/uikit/uiview') block APIs or UIViewPropertyAnimator ('https://developer.apple.com/documentation/uikit/uiviewpropertyanimator') run at up to 120 Hz on iPhones with ProMotion displays. (86175551)
These also came out today
* watchOS 8.5 RC (19T242) - March 8, 2022
* tvOS 15.4 RC (19L440) - March 8, 2022