我正在尝试实现这种新paymentQueue(_:shouldAddStorePayment:for:)方法,以便我的应用程序可以直接从App Store处理IAP.
我正在使用itms-services://网址来测试它,就像它在这里说的那样.
问题是,我SKPaymentTransactionObserver是一个特定的视图控制器,如果在打开itms-services://链接时它不可见,则不会调用委托方法.
我该怎么办?我想我必须检测用户是否来自App Store推送正确的视图控制器,但我不知道如何.我现在能想到的唯一另一个选择就是让App Delegate成为一个SKPaymentTransactionObserver,但这看起来真的很麻烦,当我尝试它时我无法让它工作.还有其他方法吗?
我正在努力创造一个条件,使其仅针对某些特定的App构建及更高版本。例如,我希望定位到应用版本26及更高版本。那有可能吗?正则表达式的正确语法是什么?
根据Firebase文档,我知道它是CFBundleVersion,而不是CFBundleShortVersionString。
我的项目中有以下代码:
func viewDidLoad() {
super.viewDidLoad()
NotificationCenter.default.addObserver(
self,
selector: #selector(self.didUpdateHistory),
name: NSNotification.Name.init("didUpdateHistory"),
object: nil)
}
func didUpdateHistory() {
// Update some UI elements
}
Run Code Online (Sandbox Code Playgroud)
现在我的问题是:如果我发布一些班级通知我的项目,并且触发不是由UI元素造成的,我还需要包装代码与didUpdateHistory FUNC DispatchQueue.main.async { ... }或者我应该换行后调用本身?
另外,在何处添加观察者以及从何处发布通知是否重要?