Apple's CryptoTokenKit is only present in iOS 13.0+ however it exports
symbols with availability annotations going back to iOS 10.0.
In the Pass app we have a deployment target of iOS 12.0. Apple's
automatic weak linking system apparently only looks at the
symbol-level availability annotations so it assumes the symbols
we use will always be present (even though they won't pre-iOS-13).
We can work around this issue by forcing weak linking using the
"Optional" framework setting. (Note that this workaround would not
work if CryptoTokenKit was used from a third-party swift package.)
This is necessary to restore iOS 12 support after #533.
For further history see https://github.com/mssun/passforios/issues/539
* Use "Beta" since this is what Apple uses too
* Actually copy the OTP if the option is set
* Shorten notification text to make it fit to smaller screens
* Set notification center delegate before app launches
* Fix SwiftFormat issue fixed with version 0.48.12
* Remove superfluous method arguments in method references
* Use 'Self' for internal static access
* Convert static to instance field in singleton class
* Remove class name prefix in references to local methods
* Remove nested frameworks in all extensions and frameworks
* Add notification action to copy OTP or just inform about the copied OTP
The notification either shows the current OTP which can be copied by a notification action or it shows just a hint to inform about the copied OTP. This depends on the new option "autoCopyOTP".
* Extract method
* Set type and style one-time
* Allow to do something with a password after providing it in the extension
* Make fields non-nil
* Show OTP in notification after providing a password through extension