0

我们想在我们的应用程序中实现 Google 的 iOS 应用程序索引。所以,我按照这里的指南:

https://developers.google.com/app-indexing/ios/app

也安装CocoaPods了,无缝的。然后我们添加了这段代码:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

    NSURL *sanitizedURL = [GSDDeepLink handleDeepLink:url];

        NSLog(@"isdeeplinkApp    %@", [GSDDeepLink isDeepLinkFromGoogleAppCrawler:url] ? @"Yes" : @"No");
        NSLog(@"isdeeplinkSearch %@", [GSDDeepLink isDeepLinkFromGoogleSearch:url] ? @"Yes" : @"No");
        NSLog(@"sanitized-url    %@", sanitizedURL);

          return YES;
        }

然后,在将其添加到Plist文件后,我们使用自定义 URL 对其进行了测试。

看起来像这样URLSchemes

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLName</key>
        <string>googleapp</string>
    </dict>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLName</key>
        <string>IDENTIFIER</string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>IDENTIFIER </string>
        </array>
    </dict>
    <dict>
        <key>CFBundleTypeRole</key>
        <string>Editor</string>
        <key>CFBundleURLName</key>
        <string>gsd-IDENTIFIER </string>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>gsd-IDENTIFIER </string>
        </array>
    </dict>
</array>

然而,我们的应用程序在方法的第一行启动时崩溃(甚至在我们自己的代码之前)openURL

NSURL *sanitizedURL = [GSDDeepLink handleDeepLink:url];

错误:

+[UIFont gsd_fontOfSize:]: 无法识别的选择器发送到类 0x112af3f48

根据谷歌的说法,如果我们在运行时收到此错误,我们应该这样做:

如果您看到类似于以下内容的运行时错误:+[UIFont gsd_fontOfSize: ] : unrecognized selector sent to class 0xXXXXXXXXXX,请确保您正确使用 CocoaPods,如 CocoaPods 网站上的入门部分所述。请注意,在构建项目时,您应该打开 CocoaPods 生成的 Xcode 工作区而不是项目文件。CocoaPods 将设置一些必要的链接器标志。

如果您仍然看到问题,请确保 -ObjC 链接器标志已在“构建设置”的“其他链接器标志”行中设置。

然而,这并没有为我们解决问题。作为测试,我决定开始一个演示项目并测试那里的链接。在演示应用程序上 - 它工作得很好。所以我们认为它可能是一个项目设置?

4

0 回答 0