首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >没有Xcode,哪里可以保存GoogleServiceInfo.plist?

没有Xcode,哪里可以保存GoogleServiceInfo.plist?
EN

Stack Overflow用户
提问于 2019-06-01 13:44:26
回答 3查看 16.9K关注 0票数 25

我已经在Google & iTunes中对我的应用程序进行了修改、评论和在线访问,但最近我为通知功能添加了firebase_messaging插件。

在加入Firebase Cloud消息传递时,Google强迫我下载两个文件:

  • google-services.json -保存在“我的颤振应用程序:MyApp\android\app”文件夹中
  • GoogleService-Info.plist --我不知道该把它保存在哪里,但在MyApp\ios\RunnerMyApp\ios\Runner.xcodeworkspace上试了却没有成功

所有的教程都指向使用Xcode正确设置文件GoogleService-Info.plist,但我没有自己的Mac,而且我一直在成功地使用windows应用程序AppUploader提交我的iOS应用程序。

有没有办法不使用Xcode并能够将GoogleService-Info.plist附加到我的项目中?

EN

回答 3

Stack Overflow用户

发布于 2020-05-08 16:43:31

如果您想避免使用Xcode,您必须手动编辑这个文件: /ios/Runner.xcodeproj/project.pbxproj

您需要参考GoogleServiceInfo.plist,以便在构建过程中包含它。

下面是您需要添加一行的4个不同部分(参见GoogleService-Info.plist示例行):

代码语言:javascript
复制
/* Begin PBXBuildFile section */
        1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; };
        3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; };
        3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; };
        3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
        74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; };
        9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; };
        9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
        97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; };
        DE4C455E21DE1E4300EA0709 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DE4C455D21DE1E4300EA0709 /* GoogleService-Info.plist */; };
        97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; };
        97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; };
/* End PBXBuildFile section */

在此:

代码语言:javascript
复制
/* Begin PBXFileReference section */
        1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
        1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
        3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
        3B80C3931E831B6300D905FE /* App.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = App.framework; path = Flutter/App.framework; sourceTree = "<group>"; };
        74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
        74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
        7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
        9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = "<group>"; };
        9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = "<group>"; };
        9740EEBA1CF902C7004384FC /* Flutter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Flutter.framework; path = Flutter/Flutter.framework; sourceTree = "<group>"; };
        97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; };
        97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
        97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
        97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
        97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
        DE4C455D21DE1E4300EA0709 /* GoogleService-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = "<group>"; };

/* End PBXFileReference section */

在此:

代码语言:javascript
复制
97C146F01CF9000F007C117D /* Runner */ = {
    isa = PBXGroup;
    children = (
        97C146FA1CF9000F007C117D /* Main.storyboard */,
        97C146FD1CF9000F007C117D /* Assets.xcassets */,
        97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */,
        97C147021CF9000F007C117D /* Info.plist */,
        DE4C455D21DE1E4300EA0709 /* GoogleService-Info.plist */,
        97C146F11CF9000F007C117D /* Supporting Files */,
        1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */,
        1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */,
        74858FAE1ED2DC5600515810 /* AppDelegate.swift */,
        74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */,
    );
    path = Runner;
    sourceTree = "<group>";
};

在这里:

代码语言:javascript
复制
/* Begin PBXResourcesBuildPhase section */
        97C146EC1CF9000F007C117D /* Resources */ = {
            isa = PBXResourcesBuildPhase;
            buildActionMask = 2147483647;
            files = (
                97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */,
                3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */,
                97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */,
                97C146FC1CF9000F007C117D /* Main.storyboard in Resources */,
                DE4C455E21DE1E4300EA0709 /* GoogleService-Info.plist in Resources */,
            );
            runOnlyForDeploymentPostprocessing = 0;
        };
/* End PBXResourcesBuildPhase section */

通过协同演示成功测试,这一修改使App中包含了提供的GoogleService-Info.plist

票数 16
EN

Stack Overflow用户

发布于 2019-06-01 14:11:55

在这条线的某个地方,AppUploader必须使用XCode从您的代码构建一个iOS应用程序。虽然我不知道他们是如何做到的(他们的文件在细节上是稀缺的),但你能希望的最好是在上传应用程序之前把google-services-info.plist放在正确的位置。

在我的项目中,我总是将google-services-info.plist放在由颤振工具自动生成的myappname/ios/Runner目录中。那就是构建的地方,然后从那里取出来。

票数 7
EN

Stack Overflow用户

发布于 2020-05-06 07:09:29

过了一段时间,我也使用新的XCode碰到了它,我可以向您保证,就像前面提到的那样,它以这种方式工作。

iOS -> Runner (这里)

PS:从XCode,我总是拿文件的参考,它没有复制给我。如果有人已经成功,即使没有以上的程序,我想确切地了解如何从XCode做它。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56407299

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档