FairPlay FairPlay Streaming Error Codes When working with FairPlay Streaming (FPS), we may encounter errors with random error codes that lack proper documentation or explanation. An example of such an error is: Error Domain=CoreMediaErrorDomain Code=-42803 "(null)" Various errors may occur when working on FairPlay Streaming. The following provides the error codes...
Apple Apple Fairplay Streaming Overview Apple's FairPlay Streaming (FPS) is a DRM (Digital Right Management) technology used to securely deliver streaming media content to devices. It works with the HTTP Live Streaming (HLS) protocol. Here are some key points about FPS: * FPS allows content providers to encrypt content, securely exchange keys, and protect...
SwiftUI How to Create Custom Environment Values in SwiftUI? Create custom environment key values in SwiftUI using EnvironmentKey protocol and EnvironmentValues extension. The Environment property wrapper can read custom environment key values....
iOS Test Development/Production Push Notification using Apple Push Notification Console Apple announced the new Push Notification Console for testing the Development and Production push notification. The new Push Notifications Console makes it easy to send test notifications to Apple devices through the Apple Push Notification service (APNs). You can access logs that provide insights into the delivery process and leverage...
iOS How to get a unique device identifier in iOS devices? As you might be aware, Apple puts lots of restrictions on unique identifiers because of privacy concerns. But in this article, we will look at some of the available options which can use to uniquely identify Apple (iOS, tvOS, and macOS) devices. 1. Store unique device identifier in KeyChain We...
iOS External Link Account Implementation Guide (Reader Apps) Apple allows a subset of applications to link to an external website where users can create or manage accounts. This only allows for "Reader Apps". In this article, we'll see what are the steps to implement the "External Link Account" in an application....
Apple TV Apple TV App and Universal Search Video Testing Guide The Apple TV app lets you browse content from a variety of video services without switching from one app to the next. It provides movies, shows, and handpicked recommendations. The app is on iOS and tvOS devices— so you can watch wherever you go....
Apple TV Apple TV App and Universal Search Video Integration Guide The Apple TV app lets you browse content from a variety of video services without switching from one app to the next. It provides movies, shows, and handpicked recommendations. The app is on iOS and tvOS devices— so you can watch wherever you go....
Tips Download WWDC, Tech Talks, and other videos up to 16 times faster Downloading WWDC Videos from the Apple Website is very slow and during WWDC month it's terribly slow. So, to solve this problem here is one open-source tool [https://github.com/vineetchoudhary/Downloader-for-Apple-Developers] that can download WWDC videos up to 16 times faster with resume capability. Github - https:...
Tips How to Explore Private Framework with iPad Swift Playground App? Swift Playground [https://apps.apple.com/us/app/swift-playgrounds/id908519492] app is the best way to explore iOS private APIs. You can browse iOS Private Headers for latest version from here. [https://developer.limneos.net/]....
Xcode Use UIRefreshControl in any UIScrollView(UICollectionView, WebView) Apple documentation shows us how we can use an UIRefreshControl in an UITableViewController, but do you know, we can add it to any UIScrollView ? let refreshControl = UIRefreshControl() refreshControl.addTarget(self, action: #selector(handleRefresh), for: .valueChanged) scrollView.addSubview(refreshControl) In a similar way, we can add UIRefreshControl to a WKWebView. let...
Tips Generate Strongly-Typed Swift/Obj-C Data Models directly from JSON Quicktype [https://app.quicktype.io] generate Strongly-Typed Swift/Objective-C Data Models from JSON, Schema, and GraphQL. You just need to paste your JSON string in left side text box. Generated models code has comments at the top with a code sample that shows how to convert a JSON string to...
Tips How to create a Strongly Typed Info.plist? You can easily access info.plist strongly typed by create a struct this way - struct InfoPlist<T> { static func get(for key: String) -> T? { return Bundle.main.infoDictionary?[key] as? T } static subscript(key: String) -> T? { return get(for: key) } } Now you can...
Tips An easy way to maintain UserDefaults key You can use #function literal to get the property name as UserDefault key. In the following example, #function will get replaced by accessToken. Be aware, changing the property names may break functionality for the existing users. extension UserDefaults { var accessToken: String? { get { return string(forKey: #function) } set { set(newValue, forKey:...
Tips The xed - Xcode Text Editor Invocation Tool If you are in your Xcode project folder and your project has both a workspace( .xcworkspace) and a project(.xcodeproj) the file then you can use following command to open workspace in Xcode from your terminal - xed . If your project only has a project(.xcodeproj) the file then the...