pri*_*alo 6 objective-c ios ios-universal-links
我正在尝试在我的应用程序中实现通用链接。我阅读了很多教程,并紧跟着这篇教程: 如何在iOS App和设置服务器中支持通用链接?
当我单击通用链接时,我的应用程序成功打开,但未application:continueUserActivity:restorationHandler调用AppDelegate.m文件,因此无法定向到应用程序中的特定页面。
我的apple-app-site-association文件位于https上,并包含我放置的路径[ "*", "/" ]。我对应用程序前缀和ID进行了三遍检查,确认在开发人员网站和目标中都启用了AssociatedDomains。在“关联的域”部分中,我放置了我的根域以及第二个以*开头的条目。处理所有可能的子域。我在真实设备上进行测试,而不是在模拟器上进行测试。
-(BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray * _Nullable))restorationHandler {
ALog(@"Did I get here?");
}
Run Code Online (Sandbox Code Playgroud)
谁能提供关于我应该寻找什么的建议,以弄清楚为什么application:continueUserActivity:restorationHandler不被致电?
更新:
我使用了苹果公司的验证工具https://search.developer.apple.com/appsearch-validation-tool,结果如下:
链接到申请
需要采取的行动
无法提取通用链接所需的信息。了解如何实施推荐的通用链接。
错误没有具有域权利的应用程序用于验证深度链接双重身份验证的权利数据来自应用程序的当前发行版本。此数据可能需要48小时才能更新。
我不知道这是否与我的问题有关。我不会这样,因为在实际发布更新之前,我需要测试我的应用程序以确保正确实施了通用链接。
如果应用程序中使用了 Google Analytics 或某些 Firebase 功能,则可能是方法调配造成的。添加以下方法application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?)为我解决了这个问题。我认为禁用方法调配也可以。
private func swizzleSelectors() {
let aClass: AnyClass! = object_getClass(UIApplication.shared.delegate)
let originalMethod = class_getInstanceMethod(aClass, #selector(self.application(_:continue:restorationHandler:)))
let swizzledMethod = class_getInstanceMethod(aClass, #selector(UIApplication.shared.delegate!.application(_:continue:restorationHandler:)))
if let originalMethod = originalMethod, let swizzledMethod = swizzledMethod {
method_exchangeImplementations(originalMethod, swizzledMethod)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1469 次 |
| 最近记录: |