iOS上的谷歌应用程序索引
我们想在我们的应用程序中实现谷歌的iOS应用程序索引。所以,我跟着导游来到这里: 还安装了无缝的CocoaPods。然后,我们添加了以下代码:iOS上的谷歌应用程序索引,ios,objective-c,url-scheme,google-index,Ios,Objective C,Url Scheme,Google Index,我们想在我们的应用程序中实现谷歌的iOS应用程序索引。所以,我跟着导游来到这里: 还安装了无缝的CocoaPods。然后,我们添加了以下代码: - (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation { NSURL *sanitizedURL = [GSD
- (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>
CbundleUrlTypes
CFBundleURLName
古格里普
CbundleTypeRole
编辑
CFBundleURLName
标识符
循环流化床锅炉方案
标识符
CbundleTypeRole
编辑
CFBundleURLName
gsd标识符
循环流化床锅炉方案
gsd标识符
然而,我们的应用程序在启动时(甚至在运行我们自己的代码之前)在openURL
方法的第一行崩溃:
NSURL*sanitizedURL=[GSDDeepLink handleDeepLink:url]
错误:
+[UIFont gsd_fontOfSize:]:发送到类0x112af3f48的无法识别的选择器
根据谷歌的说法,如果我们在运行时遇到这个错误,我们应该这样做:
如果您看到一个运行时错误,类似于:+[UIFont gsd_fontOfSize:::]:发送到类0xXXXXXXXXX的无法识别的选择器,请确保您正确使用CocoaPods,如CocoaPods网站上的“入门”部分所述。请注意,在构建项目时,应该打开CocoaPods生成的Xcode工作区,而不是项目文件。CocoaPods将设置一些必要的链接器标志
如果仍然看到问题,请确保-ObjC链接器标志
已在生成设置的“其他链接器标志”行中设置
然而,这并没有解决我们的问题。作为测试,我决定启动一个演示项目并测试那里的链接。在演示应用程序上-它工作得很好。所以我们认为这可能是一个项目设置?您需要做的不仅仅是安装CoCoapod。您需要实际创建
PodFile
文件,以包含要使用的库的相应pod。抱歉,忘记添加了。我这样做了,并添加了Google sdk。您运行了“pod install”来实际安装库?是的,sdk会添加到项目中,因为我可以使用它。当应用程序使用深度链接打开时,它就会崩溃。谷歌代码崩溃。正如我所说的,如果我创建一个演示项目,它就会工作。添加到这个项目中,它不会。你搞不懂吗?我遇到了同样的问题,它甚至无法编译。