Google iOS API Auth2登录黑屏

Google iOS API Auth2登录黑屏,ios,xcode,google-api,youtube-api,Ios,Xcode,Google Api,Youtube Api,就我个人而言,我无法理解这一点。我按照这个博客上的说明,帮助我在youtube上设置视频分享。然而,在我能够分享视频之前,我需要用户能够登录谷歌并获得许可。然而,只有一个空白屏幕弹出。我注意到在错误中我得到了这个错误“缺少GTMOAuth2ViewTouch.nib” 有人能告诉我为什么谷歌登录页面没有显示的正确方向吗? 谢谢大家! 正如您所猜测的,该视图似乎缺少nib文件 您需要添加GTMOAuth2ViewTouch.xib(非xib,非nib 扩展名;虽然它们被称为“nib”文件,但它们在

就我个人而言,我无法理解这一点。我按照这个博客上的说明,帮助我在youtube上设置视频分享。然而,在我能够分享视频之前,我需要用户能够登录谷歌并获得许可。然而,只有一个空白屏幕弹出。我注意到在错误中我得到了这个错误“缺少GTMOAuth2ViewTouch.nib”

有人能告诉我为什么谷歌登录页面没有显示的正确方向吗?
谢谢大家!

正如您所猜测的,该视图似乎缺少nib文件

您需要添加
GTMOAuth2ViewTouch.xib
(非xib,非nib 扩展名;虽然它们被称为“nib”文件,但它们在很久以前就被称为 更改为XML格式,因此实际扩展名为xib)

您引用的博客文章似乎缺少这一步。 请参见此处的GTM说明:

这是一个老问题,但对于任何陷入困境的人,这里有一个答案:

虽然项目目录中可能有GTMOAuth2ViewTouch.xib文件,但需要将其添加到“编译源代码”中

单击项目设置>“构建阶段”选项卡,然后单击“编译源代码”下的“+”图标。在此处添加“GTMOAuth2ViewTouch.xib”


构建、运行、快乐日子。

以下是我用来让它工作的步骤。我在我的项目中引用了libgdatatouchtaticlib.a和GData项目

  • 在XCode中,控件单击要使用.xib的组
  • 选择将文件添加到“我的项目”
  • 选择“gdatasources/Common/Optional/OAuth2/iOS/GTMOAuth2ViewTouch.xib”并单击添加。.xib将添加到项目的副本捆绑资源中
  • 清理、构建、运行、测试

  • 感谢@DexCurl的回答,因为它让我走上了正确的方向。

    我在目录中看到了GTMOAuth2ViewTouch.xib。它位于“gdatasources/Common/Optional/OAuth2/IOS”中。不用担心,如果您发现了这个解决方案,请确保勾选它,以便其他人可以看到它回答了您的问题:)即使GTMOAuth2ViewTouch.xib位于GData.xcodeproj(应该是)中,您仍然需要将它添加到您的项目中。(右键单击project navigator->添加新文件…)这是因为.xib需要在项目包中。对我来说,如果我将.xib从GData.xcodeproj拖到Build Phases选项卡中的编译源代码中,它将不起作用。我的线索是,当我试图右键单击GData中的.xib以将其添加到我的项目目标中时,它不是一个选项。希望这对别人有帮助。它对我有用。但有一个问题,谷歌的官方文档中有没有关于这方面的指导原则?我也通过将其添加到主项目的复制捆绑资源中,而不是编译源代码来实现这一点。如果GTL静态库也会创建一个包含此资源的bundle目标,那么就更干净了。我们仍然需要将其添加到主项目中的复制包资源中,但至少更明显的是,需要添加一些内容。
    NSLog(@"PostVideoToYoutube");
        GTMOAuth2ViewControllerTouch *viewController;
        viewController = [[[GTMOAuth2ViewControllerTouch alloc] initWithScope:kMyscope
                                                                     clientID:kMyClientID
                                                                 clientSecret:kMyClientSecret
                                                             keychainItemName:kKeychainItemName
                                                                     delegate:self
                                                             finishedSelector:@selector(viewController:finishedWithAuth:error:)] autorelease];
    
        [ITVC presentModalViewController:viewController animated:YES];