Hi,We've had an app in distribution for serveral years now which uses UIPageViewController and each ViewController in the PageViewController owns an AVPlayer. This app allows paging from one video to the next. This app has worked well for many years.We recently changed the UI so that we needed a custom scrollview for the UIViewControllers which own an AVPlayer and removed the UIPageViewController. After we released the changes we started seeing crashes, which we can't reproduce in house, in AVSecondScreenViewController.Since the crashes are in AVSecondScreenViewController, can I assume the crash only happens when connected to another device using Airplay?On the call stack there are many calls to AVPlayerViewController viewDidAppear so I assume the user is scrolling through players.The user can only have 3 ViewControllers instanciated at a time and when the scroll ends, all but one ViewController is derferenced and destroyed.Any ideas?The crashes look like this:EXC_BAD_ACCESS AVSecondScreenViewController_flushPendingRemovals > addVariableToBeOptimized:priority: > ositive: > tryToAddConstraintWithMarker:expression:mutuallyExclusiveConstraints: >Stack overflow in (null)EXC_BAD_ACCESS AVSecondScreenViewController_flushPendingRemovals > _lowerIntoExpression:reportingConstantIsRounded: > acquireFromPoolForUseCase:engine: > constraintDidChangeSuchThatMarker:shouldBeReplacedByMarkerPlusDelta: > nsli_lowerAttribute:intoExpression:withCoefficient:forConstraint:onBehalfOfLayoutGuide: > ositive: > superview >Stack overflow in (null)
Post
Replies
Boosts
Views
Activity
We've have a tvOS app for over 3 years and implemented our own swipe behavior for swipe up, left and right. In the tvOS 14 Beta the selectors on the swipe gestures are longer called when a swipe up occurs.
I created a simple example for a swipe up gesture to show what we are doing. Our Storyboard has a Container View which is an AvPlayerViewController.
Here is a the code for the ViewController.
import UIKit
import AVKit
class ViewController: UIViewController {
private var avPlayerViewController: AVPlayerViewController!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
// Use this string for the URL: "https://devstreaming-cdn.apple.com/videos/streaming/examples/bipbop_adv_example_hevc/master.m3u8")
guard let url = URL(string: <copy string here> else {
return
}
// Create an AVPlayer, passing it the HTTP Live Streaming URL.
let player = AVPlayer(url: url)
avPlayerViewController.requiresLinearPlayback = false
avPlayerViewController.playbackControlsIncludeInfoViews = true
avPlayerViewController.playbackControlsIncludeTransportBar = true
avPlayerViewController?.player = player
player.play()
let swipeUpRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(self.swipedUp(_:)) )
swipeUpRecognizer.direction = .up
view.addGestureRecognizer(swipeUpRecognizer)
}
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if let playerViewController = segue.destination as? AVPlayerViewController {
avPlayerViewController = playerViewController
playerViewController.showsPlaybackControls = true
playerViewController.videoGravity = AVLayerVideoGravity.resizeAspect
}
}
@objc func swipedUp(_ gesture: UIGestureRecognizer) {
// NO LONGER CALLED
print("SWIPED UP!")
}
}
Hi,
I created a widget for our application. The application is manually signed for distribution. I created a new identifier and provisioning profile for distribution for the widget. The new identifier is our app identifier with ".widget" appended.
After I added both the app and widget provisioning profiles to my export.plist for the xcodebuild step, the app builds without error.
When I try to validate the app before upload, I get this error:
Error: Invalid Signature. Code object is not signed at all. The file at path [MyApp.app/PlugIns/MyAppWidget.appex/fix_imports.sh] is not properly signed. Make sure you have signed your application with a distribution certificate, not an ad hoc certificate or a development certificate.
The provisioning profiles in the export.plist are for distribution.
Has anyone else encountered and fixed error? I'm stumped!
Claire