Is there a way to use different application extensions on different OS versions on iOS/tvOS?My use case is that I want to use the new tvOS 13 top shelf extension but keep using the legacy top shelf extensions for devices running tvOS 12.If I add a tvOS 13 top shelf extension target, I can set its deployment target to tvOS 13.0 and keep the deployment target of my app at tvOS 12.0.But if I also keep my existing legacy top shelf extension embedded. The legacy extension will be used on all devices running tvOS 12 or 13. The tvOS 13 top shelf extension is never used.
Post
Replies
Boosts
Views
Activity
In earlier versions of tvOS 13 I could use ASAuthorizationPasswordProvider to allow users to login with their existing keychain credentials like this:let request = ASAuthorizationPasswordProvider().createRequest()
let authorizationController = ASAuthorizationController(authorizationRequests: [request])I was using ASAuthorizationPasswordProvider without ASAuthorizationAppleIDProvider.But since a couple of tvOS 13.x updates, this stopped working.The ASAuthorizationControllerDelegate is always called with `authorizationController(controller: ASAuthorizationController, didCompleteWithError error: Error)` and `ASAuthorizationError.Code.unknown`.On the device an alert is shown with the message "account not supported" "your apple id cannot be used to create accounts for other apps."I tried it with different Apple IDs.The same code is working fine on iOS.
Does AppleTV 4K support HLG in any configuration? When I connect my AppleTV 4K to a Samsung TV with HLG support via HDMI
AVPlayer.availableHDRModes.contains(.hlg) returns false
However
AVPlayer.availableHDRModes.contains(.hdr10) returns true
https://support.apple.com/en-us/HT208074 only mentions HDR10 and Dolby Vision support.
Is there any way to play HLG video on AppleTV 4K similar to how it works on newer iPhones and iPads?
In our app we are playing HLS videos with Flac audio with AVPlayer.
In iOS 15.2 beta 3 and 4 those can no longer be played.
In the console we see these log entries:
AudioCodecInitialize failed
[aqsrv] AQServer.cpp:72 Exception caught in - error 561214580
Has somebody experienced the same?
FB9793768
When I archive my iOS app with Xcode 13.3 RC and run it on macOS Big Sur, the app crashes on launch with a DYDL error:
Termination Reason: DYLD, [0x1] Library missing
Dyld Error Message:
dyld: Using shared cache: 331F452F-2BAE-3A64-AD52-0029F44B1379
dependent dylib '@rpath/SomeFramework.framework/SomeFramework' not found for '/private/var/folders/*/SomeApp.app/SomeApp'. chained fixups, seg_count exceeds number of segments
The app runs fine on macOS Monterey and on iOS 13, 14, 15. The LD_RUNPATH_SEARCH_PATH in the build settings is correct and when inspecting the binary with otool -l the LC_RPATH entries are also correct.
When archiving the app with Xcode 13.2.1, it runs fine on macOS Big Sur.
Has anybody experienced the same and knows a workaround?
I've filed a feedback: FB9951126
When archiving and uploading a build of our tvOS app to App Store Connect with Xcode 13.3RC, it gets rejected with
TMS-90562: Invalid Bundle - One or more dynamic libraries that are referenced by your app are not present in the dylib search path.
When archiving and uploading with Xcode 13.2.1 the build is accepted and processed.
I could not find any rpath issues when inspecting the binary with otool -L and otool -l.
Has anyone else experienced the this issue with Xcode 13.3RC?
I've filed feedback FB9952607
Running an app that uses AppleArchive with Xcode 14.0/14.1 on simulators with iOS/tvOS 14.x/15.x fails with a dyld linker error:
Library not loaded: /usr/lib/swift/libswiftAppleArchive.dylib
Referenced from: /Users/tom/Library/Developer/CoreSimulator/Devices/A35CB8BA-9ABF-4E4D-B985-FEF35091FB88/data/Containers/Bundle/Application/5A504371-0F53-4E06-9F46-81D73835E906/MyApp.app/MyApp
Reason: tried: '/Users/tom/Library/Developer/Xcode/DerivedData/MyApp-ffndhzhjdbfrvuhkxftdfqudypxx/Build/Products/Debug-iphonesimulator/libswiftAppleArchive.dylib' (no such file), '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/system/introspection/libswiftAppleArchive.dylib' (no such file), '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/swift/libswiftAppleArchive.dylib' (no such file), '/usr/lib/swift/libswiftAppleArchive.dylib' (no such file), '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Library/Developer/CoreSimulator/Profiles/Runtimes/iOS.simruntime/Contents/Resources/RuntimeRoot/usr/lib/libswiftAppleArchive.dylib' (no such file)
Running the app on iOS/tvOS 14.x/15.x devices works. Also release builds run fine on those devices.
I'm unable to test if this issues was already present in Xcode 13, because running apps with AppleArchive on simulators fails because of another bug: https://developer.apple.com/forums/thread/665465
Feedback: FB11703995
We don't have a suitable design for our widget for WidgetRenderingMode.vibrant as used on the iPad Lock Screen.
Is there a way to opt out of having our widget available there?
The iOS 17 photos widget seems to behave like this. It is available for iPhone StandBy, but not for iPad Lock Screen. This is the behaviour we want to have.
Play media intents suggested via INUpcomingMediaManager.setSuggestedMediaIntents(_:) have been shown on the iOS lock screen in past iOS versions.
In iOS 16/17 play media intents seem to be only shown within the Siri suggestions in the spotlight overlay and in the Siri suggestion widget.
When the intents were shown on the lock screen, it was possible to open a preview via long press. Similar to notification previews. Preview support could be implemented with an Intents UI extension.
Is there still any place in current iOS versions where play media intents are surfaced and a preview can be opened? In the spotlight overlay a long press has no effect.
We encountered a deadlock scenario when our app runs on iOS 18. It happens when we use the async version of UICollectionViewDiffableDataSource.apply() and request a section snapshot from within the UICollectionViewCompositionalLayoutSectionProvider.
The deadlock doesn't happen when using the completion handler version of UICollectionViewDiffableDataSource.apply() or when requesting a full snapshot from the data source.
On iOS 17 there is no issue.
import UIKit
class ViewController: UICollectionViewController {
private enum SectionIdentifier: Hashable {
case test
}
private enum ItemIdentifier: Hashable {
case test(UUID)
}
private typealias Snapshot = NSDiffableDataSourceSnapshot<SectionIdentifier, ItemIdentifier>
private typealias SectionSnapshot = NSDiffableDataSourceSectionSnapshot<ItemIdentifier>
private typealias DataSource = UICollectionViewDiffableDataSource<SectionIdentifier, ItemIdentifier>
private lazy var dataSource: DataSource = {
let cellRegistration = UICollectionView.CellRegistration<UICollectionViewCell, UIColor> { cell, _, color in
cell.contentView.backgroundColor = color
}
return DataSource(collectionView: collectionView) { [weak self] collectionView, indexPath, itemIdentifier in
return collectionView.dequeueConfiguredReusableCell(using: cellRegistration, for: indexPath, item: .red)
}
}()
override func viewDidLoad() {
super.viewDidLoad()
collectionView.dataSource = dataSource
collectionView.collectionViewLayout = UICollectionViewCompositionalLayout { [weak self] section, environment -> NSCollectionLayoutSection? in
// calling `UICollectionViewDiffableDataSource.snapshot(for:)` from the `UICollectionViewCompositionalLayoutSectionProvider` leads to deadlock on iOS 18
let numberOfItems = self?.dataSource.snapshot(for: .test).items.count ?? 0 // deadlock
// calling `UICollectionViewDiffableDataSource.snapshot()` causes no issue
// let numberOfItems = self?.dataSource.snapshot().numberOfItems(inSection: .test) ?? 0 // works
let item = NSCollectionLayoutItem(layoutSize: .init(widthDimension: .absolute(100), heightDimension: .absolute(100)))
let group = NSCollectionLayoutGroup.horizontal(layoutSize: .init(widthDimension: .fractionalWidth(1), heightDimension: .absolute(100)), repeatingSubitem: item, count: numberOfItems)
group.interItemSpacing = .fixed(5)
return .init(group: group)
}
var snapshot = Snapshot()
snapshot.appendSections([.test])
snapshot.appendItems([.test(UUID()), .test(UUID()), .test(UUID()), .test(UUID())])
// using the async wrapper `UICollectionViewDiffableDataSource.apply()` on any thread leads to deadlock on iOS 18
Task { await dataSource.apply(snapshot) } // deadlock
// Task { @MainActor in await dataSource.apply(snapshot) } // deadlock
// using `UICollectionViewDiffableDataSource.apply()` with completion handling causes no issue
// Task { dataSource.apply(snapshot) } // works
// dataSource.apply(snapshot) // works
}
}
Full example project at https://github.com/antiraum/iOS18_UICollectionViewDiffableDataSource_deadlock
We currently have an Account Authentication Modification Extension in our iOS App so that users can update their passwords directly from within the Passwords section in the iOS Settings App.
On iOS 18 beta3 the extension is not executed from the new Passwords app. Instead the URL associated with the credentials is opened when choosing to change a password.
Will it still be possible to integrate with the new Passwords app or is this no longer supported?
https://developer.apple.com/wwdc24/10125 only mentions https://example.com/.well-known/change-password
Also, can we provide the information to the Passwords app that our service does not support verification codes? So that the "set up verification code" option is not displayed for our website in the Passwords app.
Since August 27th 2024 Xcode Cloud fails to clone our Github repository.
The reported error is LFS related: "smudge filter lfs failed"
Nothing in our repository configuration has changed and the LFS files have been in place for a long time.
Has anyone else encountered this issue and found a solution?
Feedback: FB14975627
We have a universal iOS/tvOS app that also supports iOS App on Mac.
In our AVPlayer-based video player we support AirPlay with AVRouteDetector and AVRoutePickerView. We play HLS streams.
When we try to AirPlay from an iOS device to an Apple TV or a Mac that has our app installed, it doesn't work. The receiver is marked as active in the route picker UI but the video doesn't show up on the receiver and playback stops.
When our app isn't installed on the receiver device, everything works as expected.
Has anyone encountered the same issue? Any solutions available for this?