Git Product home page Git Product logo

codelab-friendlychat-ios's Introduction

Firebase Codelab: FriendlyChat

This is the source code for the Firebase FriendlyChat codelab. It includes start and end versions of the code for Objective-C and Swift. To get started open the codelab instructions:

How to make contributions?

Please read and follow the steps in the CONTRIBUTING.md

License

See LICENSE

codelab-friendlychat-ios's People

Contributors

dependabot[bot] avatar dpebot avatar kroikie avatar morganchen12 avatar obitodarky avatar racheldosh avatar tkburner avatar ulukaya avatar vikrum avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

codelab-friendlychat-ios's Issues

Firebase console: Fabric integration - unable to locate bundle identifier

I've confirmed pod install on Fabric and Crashlytics; however, viewing the simulator crash details in the Firebase console is producing an unfound iOS app with the below-linked bundle identifier:

com.google.firebase.codelab.FriendlyChatSwift

I am stuck on:
Your Fabric account has no apps that can be linked to your Firebase app

Error when clicking on photo

When I try adding a photo to the message, I get this long error every time.

2021-03-31 09:32:28.108494-0400 FriendlyChatSwift[35385:1121969] [db] _LSSchemaConfigureForStore failed with error Error Domain=NSOSStatusErrorDomain Code=-10817 "(null)" UserInfo={_LSFunction=_LSSchemaConfigureForStore, ExpectedSimulatorHash={length = 32, bytes = 0x4b64f053 8d1364ff 0b68dbfb 9e7f437e ... d8889279 df4097f1 }, _LSLine=405, WrongSimulatorHash={length = 32, bytes = 0x4b3fda1a 658aac51 e905a4b9 3f769913 ... 73e7d3c9 4a353cfc }}
2021-03-31 09:32:28.108812-0400 FriendlyChatSwift[35385:1121969] [db] Failed to initialize client context with error Error Domain=NSOSStatusErrorDomain Code=-10817 "(null)" UserInfo={_LSFunction=_LSSchemaConfigureForStore, ExpectedSimulatorHash={length = 32, bytes = 0x4b64f053 8d1364ff 0b68dbfb 9e7f437e ... d8889279 df4097f1 }, _LSLine=405, WrongSimulatorHash={length = 32, bytes = 0x4b3fda1a 658aac51 e905a4b9 3f769913 ... 73e7d3c9 4a353cfc }}
2021-03-31 09:32:28.109755-0400 FriendlyChatSwift[35385:1121969] [db] _LSSchemaConfigureForStore failed with error Error Domain=NSOSStatusErrorDomain Code=-10817 "(null)" UserInfo={_LSFunction=_LSSchemaConfigureForStore, ExpectedSimulatorHash={length = 32, bytes = 0x4b64f053 8d1364ff 0b68dbfb 9e7f437e ... d8889279 df4097f1 }, _LSLine=405, WrongSimulatorHash={length = 32, bytes = 0x4b3fda1a 658aac51 e905a4b9 3f769913 ... 73e7d3c9 4a353cfc }}
2021-03-31 09:32:28.110006-0400 FriendlyChatSwift[35385:1121969] [db] Failed to initialize client context with error Error Domain=NSOSStatusErrorDomain Code=-10817 "(null)" UserInfo={_LSFunction=_LSSchemaConfigureForStore, ExpectedSimulatorHash={length = 32, bytes = 0x4b64f053 8d1364ff 0b68dbfb 9e7f437e ... d8889279 df4097f1 }, _LSLine=405, WrongSimulatorHash={length = 32, bytes = 0x4b3fda1a 658aac51 e905a4b9 3f769913 ... 73e7d3c9 4a353cfc }}
2021-03-31 09:32:28.110731-0400 FriendlyChatSwift[35385:1121969] [db] _LSSchemaConfigureForStore failed with error Error Domain=NSOSStatusErrorDomain Code=-10817 "(null)" UserInfo={_LSFunction=_LSSchemaConfigureForStore, ExpectedSimulatorHash={length = 32, bytes = 0x4b64f053 8d1364ff 0b68dbfb 9e7f437e ... d8889279 df4097f1 }, _LSLine=405, WrongSimulatorHash={length = 32, bytes = 0x4b3fda1a 658aac51 e905a4b9 3f769913 ... 73e7d3c9 4a353cfc }}
2021-03-31 09:32:28.127282-0400 FriendlyChatSwift[35385:1121969] [db] Failed to initialize client context with error Error Domain=NSOSStatusErrorDomain Code=-10817 "(null)" UserInfo={_LSFunction=_LSSchemaConfigureForStore, ExpectedSimulatorHash={length = 32, bytes = 0x4b64f053 8d1364ff 0b68dbfb 9e7f437e ... d8889279 df4097f1 }, _LSLine=405, WrongSimulatorHash={length = 32, bytes = 0x4b3fda1a 658aac51 e905a4b9 3f769913 ... 73e7d3c9 4a353cfc }}
2021-03-31 09:32:28.128216-0400 FriendlyChatSwift[35385:1121969] [db] _LSSchemaConfigureForStore failed with error Error Domain=NSOSStatusErrorDomain Code=-10817 "(null)" UserInfo={_LSFunction=_LSSchemaConfigureForStore, ExpectedSimulatorHash={length = 32, bytes = 0x4b64f053 8d1364ff 0b68dbfb 9e7f437e ... d8889279 df4097f1 }, _LSLine=405, WrongSimulatorHash={length = 32, bytes = 0x4b3fda1a 658aac51 e905a4b9 3f769913 ... 73e7d3c9 4a353cfc }}
2021-03-31 09:32:28.128432-0400 FriendlyChatSwift[35385:1121969] [db] Failed to initialize client context with error Error Domain=NSOSStatusErrorDomain Code=-10817 "(null)" UserInfo={_LSFunction=_LSSchemaConfigureForStore, ExpectedSimulatorHash={length = 32, bytes = 0x4b64f053 8d1364ff 0b68dbfb 9e7f437e ... d8889279 df4097f1 }, _LSLine=405, WrongSimulatorHash={length = 32, bytes = 0x4b3fda1a 658aac51 e905a4b9 3f769913 ... 73e7d3c9 4a353cfc }}
2021-03-31 09:32:28.129465-0400 FriendlyChatSwift[35385:1121969] [xpc.exceptions] <NSXPCConnection: 0x600003beca00> connection on anonymousListener or serviceListener from pid 35387: Warning: Exception caught during invocation of selector didSelectMediaWithInfoDictionary:, dropping incoming message and invalidating the connection.
Exception: *** -[NSURL URLByAppendingPathExtension:]: component, components, or pathExtension cannot be nil.
*** -[NSURL URLByAppendingPathExtension:]: component, components, or pathExtension cannot be nil.
(
	0   CoreFoundation                      0x00007fff20421af6 __exceptionPreprocess + 242
	1   libobjc.A.dylib                     0x00007fff20177e78 objc_exception_throw + 48
	2   Foundation                          0x00007fff20860900 -[NSURL(NSURLPathUtilities) URLByDeletingPathExtension] + 0
	3   PhotosUI                            0x00007fff3faf656a -[PUPhotoPickerExtensionHostContext _UIImagePickerControllerInfoDictionaryFromPhotoPickerInfoDictionary:] + 2177
	4   PhotosUI                            0x00007fff3faf5b5b -[PUPhotoPickerExtensionHostContext didSelectMediaWithInfoDictionary:] + 34
	5   Foundation                          0x00007fff209290e3 __NSXPCCONNECTION_IS_CALLING_OUT_TO_EXPORTED_OBJECT_S1__ + 10
	6   Foundation                          0x00007fff20927e1b -[NSXPCConnection _decodeAndInvokeMessageWithEvent:flags:] + 2268
	7   Foundation                          0x00007fff20929412 message_handler + 206
	8   libxpc.dylib                        0x00007fff20055cac _xpc_connection_call_event_handler + 56
	9   libxpc.dylib                        0x00007fff2005603e _xpc_connection_mach_event + 905
	10  libdispatch.dylib                   0x000000010e8a3a68 _dispatch_client_callout4 + 9
	11  libdispatch.dylib                   0x000000010e8bdba8 _dispatch_mach_msg_invoke + 550
	12  libdispatch.dylib                   0x000000010e8aa0ad _dispatch_lane_serial_drain + 307
	13  libdispatch.dylib                   0x000000010e8bea76 _dispatch_mach_invoke + 563
	14  libdispatch.dylib                   0x000000010e8aa0ad _dispatch_lane_serial_drain + 307
	15  libdispatch.dylib                   0x000000010e8aaf9d _dispatch_lane_invoke + 493
	16  libdispatch.dylib                   0x000000010e8b6de2 _dispatch_workloop_worker_thread + 882
	17  libsystem_pthread.dylib             0x00007fff61167499 _pthread_wqthread + 314
	18  libsystem_pthread.dylib             0x00007fff61166467 start_wqthread + 15
)

Typo: step 8 of codelab

Another step 8 typo: "Go to Firebase console and confirm that Storage is activated with "gs://PROJECTID.apppot.com" domain" should read "Go to Firebase console and confirm that Storage is activated with "gs://PROJECTID.appspot.com" domain." (apppot vs. appspot)

inviteFinished(withInvitations:error:) method doesn't match optional requirement of protocol 'InviteDelegate'

I get this warning message when I added the inviteFinished method in step 11 to the FCViewController:

/Users/jackngai/Desktop/iOS Apps/friendlychat-ios/ios-starter/swift-starter/FriendlyChatSwift/FCViewController.swift:155:10: Instance method 'inviteFinished(withInvitations:error:)' nearly matches optional requirement 'inviteFinished(withInvitations:error:)' of protocol 'InviteDelegate'

I checked the protocol and it specifies a [String] but the method in the guide uses [Any]. Changing the type to match the protocol fixes the issue, but this should be corrected in the guide.

Firebase iOS Swift codelab out of sync with Firebase Console

In step 5, the instructions say, "From within the Database section of Firebase console select the RULES tab." When I select the Database section in the console, I get a set of services. I had to click on the Cloud Firestore service to get to the Database section that has a Rules tab. In the meantime, a dialog titled Security Rules for Cloud Firestore popped up, along with the small print message "Enabling Cloud Firestore will preclude you from using Cloud Datastore with this project, notably from the associated App Engine app." The codelab uses Realtime Database rather than Cloud Firestore, so that may be a potential pitfall.

Message Sync: Deletes and New Adds (clarification)

In Firebase Database, I added a name but made a misstep and added the text afterward. I later deleted the test_message; however, only the name shows up in the messenger thread on the simulator.

How are deletes and new field adds handled in the Friendly Chat app?

Make iOS and Android FriendlyChat compatible

It would be nice to have the Android and iOS Friendly chat application be compatible. For that the database field references for the friendly message need to change from "imageURL" to "imageUrl" and "photoURL" to "photoUrl" (making the 'r' and 'l' lowercase).
That way people who completed both tutorials can "chat" on the tutorial applications from each platform respectively, whereas without these changes the iOS app cannot load the android images, and the android app crashed trying to load the iOS image messages.

Here is the code that needs to be changed, pretty simple:

Constants.swift
Replace
struct MessageFields { static let name = "name" static let text = "text" static let photoURL = "photoURL" static let imageURL = "imageURL" }

With
struct MessageFields { static let name = "name" static let text = "text" static let photoUrl = "photoUrl" static let imageUrl = "imageUrl" }

FCViewController.swift
Replace
if let imageURL = message[Constants.MessageFields.imageURL] { (161)

if let photoURL = message[Constants.MessageFields.photoURL], let URL = URL(string: photoURL), (181)

if let photoURL = Auth.auth().currentUser?.photoURL { mdata[Constants.MessageFields.photoURL] = photoURL.absoluteString } (202-204)

strongSelf.sendMessage(withData: [Constants.MessageFields.imageURL: strongSelf.storageRef.child((metadata?.path)!).description]) (244)

strongSelf.sendMessage(withData: [Constants.MessageFields.imageURL: strongSelf.storageRef.child((metadata?.path)!).description]) (260)

With
if let imageURL = message[Constants.MessageFields.imageUrl] {(161)

if let photoUrl = message[Constants.MessageFields.photoUrl], let URL = URL(string: photoUrl),(181)

if let photoUrl = Auth.auth().currentUser?.photoURL { mdata[Constants.MessageFields.photoUrl] = photoUrl.absoluteString }(202-204)

strongSelf.sendMessage(withData: [Constants.MessageFields.imageUrl: strongSelf.storageRef.child((metadata?.path)!).description]) (244)

strongSelf.sendMessage(withData: [Constants.MessageFields.imageUrl: strongSelf.storageRef.child((metadata?.path)!).description]) (260)

Firebase iOS Codelab Swift

When I follow https://codelabs.developers.google.com/codelabs/firebase-ios-swift there are few issues:

  1. In step 4. Create Firebase console Project in section Connect your iOS app, you can't use Bundle id "com.google.firebase.codelab.FriendlyChatSwift", because Apple won't let you run app on your device. Apple insists on unique bundle id. Maybe every user might want to insert her/his modified bundle id.
  2. In step 5. Identify Users, there is no tab RULES. Maybe it is caused that database isn't created right away when project is created. Either it is missing in codelab or it is issue with creating project.
  3. When I created database manually and inserted the snippet from codelab into RULES it is not possible to make it public. It looks like there is deprecated snippet in codelab. I get error: "Error saving rules - Line 1: mismatched input '{' expecting {'function', 'service', 'syntax'}".

Getting 2 Errors on Step 4.

I'm copying the code listed but I'm getting these errors when I run it.

  1. Type 'AppDelegate' does not conform to protocol 'GIDSignInDelegate'
  2. Invalid redeclaration of 'sign(_:didSignInFor:withError:)'

Wrong French translation

Browser: Brave
Browser version: Version 1.52.129 Chromium: 114.0.5735.198
Operating system: macOS Ventura
Operating system version: 13.4.1

What steps will reproduce the problem:

  1. Open the code lab in french
  2. Choose French as your language
  3. Look at the requirements section

What is the expected result?
The words "Xcode" and "CocoaPods" should not be translated.

What happens instead of that?
Those words are translated in French to "Code X" and "Cosses De Cacao" respectively.

fatal error: 'GoogleUtilities/GULURLSessionDataResponse.h' when building with Xcode 12.0.1

I get following error message when building project:

codelab-friendlychat-ios/ios-starter/swift-starter/Pods/GoogleDataTransport/GoogleDataTransport/GDTCCTLibrary/GDTCCTUploadOperation.m:36:9: fatal error: 'GoogleUtilities/GULURLSessionDataResponse.h' file not found
#import <GoogleUtilities/GULURLSessionDataResponse.h>

Project is opened in Xcode 12.0.1.
Off course I ran pod install --repo-update before clicking Run button.

Firebase iOS Codelab Swift step 5: GoogleSignIn version / swift code problems

Some errors arising when using latest GoogleSignIn version (5.0.2)
So downgraded to version 4.4.0 after some stackoverflow research...

... leads to new build errors with the unsupported lines in Appdelegate.swift :

return GIDSignIn.sharedInstance().handle(url)

Missing arguments for parameters 'sourceApplication', 'annotation' in call

So for everything to work, need to know and specify the version of GoogleSignIn and for all supplied code to consistently work to the specified API

Pod Installation unsuccessful

Gauravs-Mac-mini:swift ethanemac$ pod install
Analyzing dependencies
[!] CocoaPods could not find compatible versions for pod "nanopb":
In snapshot (Podfile.lock):
nanopb (= 0.3.901, ~> 0.3)

In Podfile:
Firebase/Database was resolved to 4.13.0, which depends on
FirebaseDatabase (= 4.1.5) was resolved to 4.1.5, which depends on
FirebaseAnalytics (> 4.1) was resolved to 4.2.0, which depends on
nanopb (
> 0.3)

None of your spec sources contain a spec satisfying the dependencies: nanopb (= 0.3.901, ~> 0.3), nanopb (~> 0.3).

You have either:

  • out-of-date source repos which you can update with pod repo update or with pod install --repo-update.
  • mistyped the name or version.
  • not added the source repo that hosts the Podspec to your Podfile.

Note: as of CocoaPods 1.0, pod repo update does not happen on pod install by default.
Gauravs-Mac-mini:swift ethanemac$

Please respond ASAP.

Thanks in Advance :)

Unable to build the project - Step 3

Xcode version 13.2.1

> pod install --repo-update
Ignoring ffi-1.12.2 because its extensions are not built. Try: gem pristine ffi --version 1.12.2
Updating local specs repositories

CocoaPods 1.11.2 is available.
To update use: `sudo gem install cocoapods`

For more information, see https://blog.cocoapods.org and the CHANGELOG for this version at https://github.com/CocoaPods/CocoaPods/releases/tag/1.11.2

Analyzing dependencies
[!] The version of CocoaPods used to generate the lockfile (1.11.2) is higher than the version of the current executable (1.9.2). Incompatibility issues may arise.
Downloading dependencies
Installing AppAuth (1.4.0)
Installing Firebase (3.6.0)
Installing Firebase (8.11.0)
Installing FirebaseAnalytics (3.4.2)
Installing FirebaseAuth (3.0.5)
Installing FirebaseCore (8.11.0)
Installing FirebaseCoreDiagnostics (8.12.0)
Installing FirebaseCrashlytics (8.11.0)
Installing FirebaseDatabase (3.0.3)
Installing FirebaseInstallations (8.12.0)
Installing FirebaseInstanceID (1.0.9)
Installing FirebaseRemoteConfig (1.3.0)
Installing FirebaseStorage (1.0.3)
Installing GTMAppAuth (1.2.2)
Installing GTMSessionFetcher (1.7.0)
Installing Google-Mobile-Ads-SDK (7.11.0)
Installing GoogleDataTransport (9.1.2)
Installing GoogleIPhoneUtilities (1.2.1)
Installing GoogleInterchangeUtilities (1.2.2)
Installing GoogleNetworkingUtilities (1.2.2)
Installing GoogleSignIn (6.1.0)
Installing GoogleSymbolUtilities (1.1.2)
Installing GoogleUtilities (1.3.2)
Installing GoogleUtilities (7.7.0)
Installing PromisesObjC (2.0.0)
Installing nanopb (2.30908.0)
Generating Pods project
Integrating client project

[!] Please close any current Xcode sessions and use `FriendlyChatSwift.xcworkspace` for this project from now on.
Pod installation complete! There are 8 dependencies from the Podfile and 26 total pods installed.

[!] Unable to read the license file `LICENSE` for the spec `Firebase (8.11.0)`

[!] Unable to read the license file `LICENSE` for the spec `GoogleUtilities (7.7.0)`

[!] Unable to read the license file `LICENSE` for the spec `Firebase (8.11.0)`

[!] Unable to read the license file `LICENSE` for the spec `GoogleUtilities (7.7.0)`

[!] [Xcodeproj] Generated duplicate UUIDs:

PBXFileReference -- Pods.xcodeproj/mainGroup/children/children:children:|,|,|,displayName:AppAuth,isa:PBXGroup,name:AppAuth,path:AppAuth,sourceTree:<group>,,children:|,|,displayName:Firebase,isa:PBXGroup,name:Firebase,path:Firebase,sourceTree:<group>,,children:|,|,displayName:FirebaseAnalytics,isa:PBXGroup,name:FirebaseAnalytics,path:FirebaseAnalytics,sourceTree:<group>,,children:|,|,displayName:FirebaseAuth,isa:PBXGroup,name:FirebaseAuth,path:FirebaseAuth,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseCore,isa:PBXGroup,name:FirebaseCore,path:FirebaseCore,sourceTree:<group>,,children:|,|,|,|,|,|,|,displayName:FirebaseCoreDiagnostics,isa:PBXGroup,name:FirebaseCoreDiagnostics,path:FirebaseCoreDiagnostics,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseCrashlytics,isa:PBXGroup,name:FirebaseCrashlytics,path:FirebaseCrashlytics,sourceTree:<group>,,children:|,|,displayName:FirebaseDatabase,isa:PBXGroup,name:FirebaseDatabase,path:FirebaseDatabase,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseInstallations,isa:PBXGroup,name:FirebaseInstallations,path:FirebaseInstallations,sourceTree:<group>,,children:|,|,displayName:FirebaseInstanceID,isa:PBXGroup,name:FirebaseInstanceID,path:FirebaseInstanceID,sourceTree:<group>,,children:|,|,displayName:FirebaseRemoteConfig,isa:PBXGroup,name:FirebaseRemoteConfig,path:FirebaseRemoteConfig,sourceTree:<group>,,children:|,|,displayName:FirebaseStorage,isa:PBXGroup,name:FirebaseStorage,path:FirebaseStorage,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,displayName:GTMAppAuth,isa:PBXGroup,name:GTMAppAuth,path:GTMAppAuth,sourceTree:<group>,,children:|,|,displayName:GTMSessionFetcher,isa:PBXGroup,name:GTMSessionFetcher,path:GTMSessionFetcher,sourceTree:<group>,,children:|,|,displayName:Google-Mobile-Ads-SDK,isa:PBXGroup,name:Google-Mobile-Ads-SDK,path:Google-Mobile-Ads-SDK,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:GoogleDataTransport,isa:PBXGroup,name:GoogleDataTransport,path:GoogleDataTransport,sourceTree:<group>,,children:|,|,displayName:GoogleIPhoneUtilities,isa:PBXGroup,name:GoogleIPhoneUtilities,path:GoogleIPhoneUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleInterchangeUtilities,isa:PBXGroup,name:GoogleInterchangeUtilities,path:GoogleInterchangeUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleNetworkingUtilities,isa:PBXGroup,name:GoogleNetworkingUtilities,path:GoogleNetworkingUtilities,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:GoogleSignIn,isa:PBXGroup,name:GoogleSignIn,path:GoogleSignIn,sourceTree:<group>,,children:|,|,displayName:GoogleSymbolUtilities,isa:PBXGroup,name:GoogleSymbolUtilities,path:GoogleSymbolUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleUtilities,isa:PBXGroup,name:GoogleUtilities,path:GoogleUtilities,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:PromisesObjC,isa:PBXGroup,name:PromisesObjC,path:PromisesObjC,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,displayName:nanopb,isa:PBXGroup,name:nanopb,path:nanopb,sourceTree:<group>,,displayName:Pods,isa:PBXGroup,name:Pods,sourceTree:<group>,/Pods/children/children:children:|,displayName:Analytics,isa:PBXGroup,name:Analytics,sourceTree:<group>,,children:|,|,|,|,displayName:Support Files,isa:PBXGroup,name:Support Files,path:../Target Support Files/Firebase,sourceTree:<group>,,displayName:Firebase,isa:PBXGroup,name:Firebase,path:Firebase,sourceTree:<group>,/Pods/Firebase/children/children:displayName:Firebase.debug.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:Firebase.debug.xcconfig,sourceTree:<group>,,displayName:Firebase.release.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:Firebase.release.xcconfig,sourceTree:<group>,,displayName:Firebase.debug.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:Firebase.debug.xcconfig,sourceTree:<group>,,displayName:Firebase.release.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:Firebase.release.xcconfig,sourceTree:<group>,,displayName:Support Files,isa:PBXGroup,name:Support Files,path:../Target Support Files/Firebase,sourceTree:<group>,/Pods/Firebase/Support Files/children/displayName:Firebase.debug.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:Firebase.debug.xcconfig,sourceTree:<group>,/Pods/Firebase/Support Files/Firebase.debug.xcconfig
PBXFileReference -- Pods.xcodeproj/mainGroup/children/children:children:|,|,|,displayName:AppAuth,isa:PBXGroup,name:AppAuth,path:AppAuth,sourceTree:<group>,,children:|,|,displayName:Firebase,isa:PBXGroup,name:Firebase,path:Firebase,sourceTree:<group>,,children:|,|,displayName:FirebaseAnalytics,isa:PBXGroup,name:FirebaseAnalytics,path:FirebaseAnalytics,sourceTree:<group>,,children:|,|,displayName:FirebaseAuth,isa:PBXGroup,name:FirebaseAuth,path:FirebaseAuth,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseCore,isa:PBXGroup,name:FirebaseCore,path:FirebaseCore,sourceTree:<group>,,children:|,|,|,|,|,|,|,displayName:FirebaseCoreDiagnostics,isa:PBXGroup,name:FirebaseCoreDiagnostics,path:FirebaseCoreDiagnostics,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseCrashlytics,isa:PBXGroup,name:FirebaseCrashlytics,path:FirebaseCrashlytics,sourceTree:<group>,,children:|,|,displayName:FirebaseDatabase,isa:PBXGroup,name:FirebaseDatabase,path:FirebaseDatabase,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseInstallations,isa:PBXGroup,name:FirebaseInstallations,path:FirebaseInstallations,sourceTree:<group>,,children:|,|,displayName:FirebaseInstanceID,isa:PBXGroup,name:FirebaseInstanceID,path:FirebaseInstanceID,sourceTree:<group>,,children:|,|,displayName:FirebaseRemoteConfig,isa:PBXGroup,name:FirebaseRemoteConfig,path:FirebaseRemoteConfig,sourceTree:<group>,,children:|,|,displayName:FirebaseStorage,isa:PBXGroup,name:FirebaseStorage,path:FirebaseStorage,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,displayName:GTMAppAuth,isa:PBXGroup,name:GTMAppAuth,path:GTMAppAuth,sourceTree:<group>,,children:|,|,displayName:GTMSessionFetcher,isa:PBXGroup,name:GTMSessionFetcher,path:GTMSessionFetcher,sourceTree:<group>,,children:|,|,displayName:Google-Mobile-Ads-SDK,isa:PBXGroup,name:Google-Mobile-Ads-SDK,path:Google-Mobile-Ads-SDK,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:GoogleDataTransport,isa:PBXGroup,name:GoogleDataTransport,path:GoogleDataTransport,sourceTree:<group>,,children:|,|,displayName:GoogleIPhoneUtilities,isa:PBXGroup,name:GoogleIPhoneUtilities,path:GoogleIPhoneUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleInterchangeUtilities,isa:PBXGroup,name:GoogleInterchangeUtilities,path:GoogleInterchangeUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleNetworkingUtilities,isa:PBXGroup,name:GoogleNetworkingUtilities,path:GoogleNetworkingUtilities,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:GoogleSignIn,isa:PBXGroup,name:GoogleSignIn,path:GoogleSignIn,sourceTree:<group>,,children:|,|,displayName:GoogleSymbolUtilities,isa:PBXGroup,name:GoogleSymbolUtilities,path:GoogleSymbolUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleUtilities,isa:PBXGroup,name:GoogleUtilities,path:GoogleUtilities,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:PromisesObjC,isa:PBXGroup,name:PromisesObjC,path:PromisesObjC,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,displayName:nanopb,isa:PBXGroup,name:nanopb,path:nanopb,sourceTree:<group>,,displayName:Pods,isa:PBXGroup,name:Pods,sourceTree:<group>,/Pods/children/children:children:|,displayName:Analytics,isa:PBXGroup,name:Analytics,sourceTree:<group>,,children:|,|,|,|,displayName:Support Files,isa:PBXGroup,name:Support Files,path:../Target Support Files/Firebase,sourceTree:<group>,,displayName:Firebase,isa:PBXGroup,name:Firebase,path:Firebase,sourceTree:<group>,/Pods/Firebase/children/children:displayName:Firebase.debug.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:Firebase.debug.xcconfig,sourceTree:<group>,,displayName:Firebase.release.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:Firebase.release.xcconfig,sourceTree:<group>,,displayName:Firebase.debug.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:Firebase.debug.xcconfig,sourceTree:<group>,,displayName:Firebase.release.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:Firebase.release.xcconfig,sourceTree:<group>,,displayName:Support Files,isa:PBXGroup,name:Support Files,path:../Target Support Files/Firebase,sourceTree:<group>,/Pods/Firebase/Support Files/children/displayName:Firebase.release.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:Firebase.release.xcconfig,sourceTree:<group>,/Pods/Firebase/Support Files/Firebase.release.xcconfig
PBXFileReference -- Pods.xcodeproj/mainGroup/children/children:children:|,|,|,displayName:AppAuth,isa:PBXGroup,name:AppAuth,path:AppAuth,sourceTree:<group>,,children:|,|,displayName:Firebase,isa:PBXGroup,name:Firebase,path:Firebase,sourceTree:<group>,,children:|,|,displayName:FirebaseAnalytics,isa:PBXGroup,name:FirebaseAnalytics,path:FirebaseAnalytics,sourceTree:<group>,,children:|,|,displayName:FirebaseAuth,isa:PBXGroup,name:FirebaseAuth,path:FirebaseAuth,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseCore,isa:PBXGroup,name:FirebaseCore,path:FirebaseCore,sourceTree:<group>,,children:|,|,|,|,|,|,|,displayName:FirebaseCoreDiagnostics,isa:PBXGroup,name:FirebaseCoreDiagnostics,path:FirebaseCoreDiagnostics,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseCrashlytics,isa:PBXGroup,name:FirebaseCrashlytics,path:FirebaseCrashlytics,sourceTree:<group>,,children:|,|,displayName:FirebaseDatabase,isa:PBXGroup,name:FirebaseDatabase,path:FirebaseDatabase,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseInstallations,isa:PBXGroup,name:FirebaseInstallations,path:FirebaseInstallations,sourceTree:<group>,,children:|,|,displayName:FirebaseInstanceID,isa:PBXGroup,name:FirebaseInstanceID,path:FirebaseInstanceID,sourceTree:<group>,,children:|,|,displayName:FirebaseRemoteConfig,isa:PBXGroup,name:FirebaseRemoteConfig,path:FirebaseRemoteConfig,sourceTree:<group>,,children:|,|,displayName:FirebaseStorage,isa:PBXGroup,name:FirebaseStorage,path:FirebaseStorage,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,displayName:GTMAppAuth,isa:PBXGroup,name:GTMAppAuth,path:GTMAppAuth,sourceTree:<group>,,children:|,|,displayName:GTMSessionFetcher,isa:PBXGroup,name:GTMSessionFetcher,path:GTMSessionFetcher,sourceTree:<group>,,children:|,|,displayName:Google-Mobile-Ads-SDK,isa:PBXGroup,name:Google-Mobile-Ads-SDK,path:Google-Mobile-Ads-SDK,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:GoogleDataTransport,isa:PBXGroup,name:GoogleDataTransport,path:GoogleDataTransport,sourceTree:<group>,,children:|,|,displayName:GoogleIPhoneUtilities,isa:PBXGroup,name:GoogleIPhoneUtilities,path:GoogleIPhoneUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleInterchangeUtilities,isa:PBXGroup,name:GoogleInterchangeUtilities,path:GoogleInterchangeUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleNetworkingUtilities,isa:PBXGroup,name:GoogleNetworkingUtilities,path:GoogleNetworkingUtilities,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:GoogleSignIn,isa:PBXGroup,name:GoogleSignIn,path:GoogleSignIn,sourceTree:<group>,,children:|,|,displayName:GoogleSymbolUtilities,isa:PBXGroup,name:GoogleSymbolUtilities,path:GoogleSymbolUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleUtilities,isa:PBXGroup,name:GoogleUtilities,path:GoogleUtilities,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:PromisesObjC,isa:PBXGroup,name:PromisesObjC,path:PromisesObjC,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,displayName:nanopb,isa:PBXGroup,name:nanopb,path:nanopb,sourceTree:<group>,,displayName:Pods,isa:PBXGroup,name:Pods,sourceTree:<group>,/Pods/children/children:children:|,displayName:Frameworks,isa:PBXGroup,name:Frameworks,sourceTree:<group>,,children:|,|,|,|,displayName:Support Files,isa:PBXGroup,name:Support Files,path:../Target Support Files/GoogleUtilities,sourceTree:<group>,,displayName:GoogleUtilities,isa:PBXGroup,name:GoogleUtilities,path:GoogleUtilities,sourceTree:<group>,/Pods/GoogleUtilities/children/children:displayName:GoogleUtilities.debug.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:GoogleUtilities.debug.xcconfig,sourceTree:<group>,,displayName:GoogleUtilities.release.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:GoogleUtilities.release.xcconfig,sourceTree:<group>,,displayName:GoogleUtilities.debug.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:GoogleUtilities.debug.xcconfig,sourceTree:<group>,,displayName:GoogleUtilities.release.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:GoogleUtilities.release.xcconfig,sourceTree:<group>,,displayName:Support Files,isa:PBXGroup,name:Support Files,path:../Target Support Files/GoogleUtilities,sourceTree:<group>,/Pods/GoogleUtilities/Support Files/children/displayName:GoogleUtilities.debug.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:GoogleUtilities.debug.xcconfig,sourceTree:<group>,/Pods/GoogleUtilities/Support Files/GoogleUtilities.debug.xcconfig
PBXFileReference -- Pods.xcodeproj/mainGroup/children/children:children:|,|,|,displayName:AppAuth,isa:PBXGroup,name:AppAuth,path:AppAuth,sourceTree:<group>,,children:|,|,displayName:Firebase,isa:PBXGroup,name:Firebase,path:Firebase,sourceTree:<group>,,children:|,|,displayName:FirebaseAnalytics,isa:PBXGroup,name:FirebaseAnalytics,path:FirebaseAnalytics,sourceTree:<group>,,children:|,|,displayName:FirebaseAuth,isa:PBXGroup,name:FirebaseAuth,path:FirebaseAuth,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseCore,isa:PBXGroup,name:FirebaseCore,path:FirebaseCore,sourceTree:<group>,,children:|,|,|,|,|,|,|,displayName:FirebaseCoreDiagnostics,isa:PBXGroup,name:FirebaseCoreDiagnostics,path:FirebaseCoreDiagnostics,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseCrashlytics,isa:PBXGroup,name:FirebaseCrashlytics,path:FirebaseCrashlytics,sourceTree:<group>,,children:|,|,displayName:FirebaseDatabase,isa:PBXGroup,name:FirebaseDatabase,path:FirebaseDatabase,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:FirebaseInstallations,isa:PBXGroup,name:FirebaseInstallations,path:FirebaseInstallations,sourceTree:<group>,,children:|,|,displayName:FirebaseInstanceID,isa:PBXGroup,name:FirebaseInstanceID,path:FirebaseInstanceID,sourceTree:<group>,,children:|,|,displayName:FirebaseRemoteConfig,isa:PBXGroup,name:FirebaseRemoteConfig,path:FirebaseRemoteConfig,sourceTree:<group>,,children:|,|,displayName:FirebaseStorage,isa:PBXGroup,name:FirebaseStorage,path:FirebaseStorage,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,displayName:GTMAppAuth,isa:PBXGroup,name:GTMAppAuth,path:GTMAppAuth,sourceTree:<group>,,children:|,|,displayName:GTMSessionFetcher,isa:PBXGroup,name:GTMSessionFetcher,path:GTMSessionFetcher,sourceTree:<group>,,children:|,|,displayName:Google-Mobile-Ads-SDK,isa:PBXGroup,name:Google-Mobile-Ads-SDK,path:Google-Mobile-Ads-SDK,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:GoogleDataTransport,isa:PBXGroup,name:GoogleDataTransport,path:GoogleDataTransport,sourceTree:<group>,,children:|,|,displayName:GoogleIPhoneUtilities,isa:PBXGroup,name:GoogleIPhoneUtilities,path:GoogleIPhoneUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleInterchangeUtilities,isa:PBXGroup,name:GoogleInterchangeUtilities,path:GoogleInterchangeUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleNetworkingUtilities,isa:PBXGroup,name:GoogleNetworkingUtilities,path:GoogleNetworkingUtilities,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:GoogleSignIn,isa:PBXGroup,name:GoogleSignIn,path:GoogleSignIn,sourceTree:<group>,,children:|,|,displayName:GoogleSymbolUtilities,isa:PBXGroup,name:GoogleSymbolUtilities,path:GoogleSymbolUtilities,sourceTree:<group>,,children:|,|,displayName:GoogleUtilities,isa:PBXGroup,name:GoogleUtilities,path:GoogleUtilities,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,|,displayName:PromisesObjC,isa:PBXGroup,name:PromisesObjC,path:PromisesObjC,sourceTree:<group>,,children:|,|,|,|,|,|,|,|,|,|,displayName:nanopb,isa:PBXGroup,name:nanopb,path:nanopb,sourceTree:<group>,,displayName:Pods,isa:PBXGroup,name:Pods,sourceTree:<group>,/Pods/children/children:children:|,displayName:Frameworks,isa:PBXGroup,name:Frameworks,sourceTree:<group>,,children:|,|,|,|,displayName:Support Files,isa:PBXGroup,name:Support Files,path:../Target Support Files/GoogleUtilities,sourceTree:<group>,,displayName:GoogleUtilities,isa:PBXGroup,name:GoogleUtilities,path:GoogleUtilities,sourceTree:<group>,/Pods/GoogleUtilities/children/children:displayName:GoogleUtilities.debug.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:GoogleUtilities.debug.xcconfig,sourceTree:<group>,,displayName:GoogleUtilities.release.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:GoogleUtilities.release.xcconfig,sourceTree:<group>,,displayName:GoogleUtilities.debug.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:GoogleUtilities.debug.xcconfig,sourceTree:<group>,,displayName:GoogleUtilities.release.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:GoogleUtilities.release.xcconfig,sourceTree:<group>,,displayName:Support Files,isa:PBXGroup,name:Support Files,path:../Target Support Files/GoogleUtilities,sourceTree:<group>,/Pods/GoogleUtilities/Support Files/children/displayName:GoogleUtilities.release.xcconfig,includeInIndex:1,isa:PBXFileReference,lastKnownFileType:text.xcconfig,path:GoogleUtilities.release.xcconfig,sourceTree:<group>,/Pods/GoogleUtilities/Support Files/GoogleUtilities.release.xcconfig

[!] [Xcodeproj] Generated duplicate UUIDs:

PBXAggregateTarget -- 072CEA044D2EF26F03496D5996BBF59F
PBXAggregateTarget -- 8D7F5D5DD528D21A72DC87ADA5B12E2D

Then get the following error when trying to build the project... "No such module 'GoogleSignIn' SignInViewController.swift'

AppDelegate show many Error

In sheet 4. Create Firebase console Project.

when i Configure Firebase in AppDelegate. so many error.
for example
line 24 -> mistake message (Cannot find type 'GIDSignInDelegate' in scope)
line 51 -> Cannot find 'FirebaseApp' in scope
line 52-> Value of type 'GIDSignIn' has no member 'delegate'

image

Unable to build - Step 3

Ran pod install --repo-update as instructed, but in SignInViewController I get "No such module 'GoogleSignIn'"

I have updated cocoa pods and attempted a clean install by cloning the repo again; same result.

Step 9 - Old Verbiage/Options

Select primary metric to track. Choose the message event if available or first_open otherwise...

  1. first_open is not an option; login, session_start, Crash-free users, etc. are

Expand your draft experiment and select Manage test devices.
Paste in your Instance ID token and select Variant A for testing. Select Add and Save.
2) I do not see a 'Manage test devices'. Is this supposed to be Limit to a subset of users which doesn't seem to have an input field for specific Instance IDs?

Getting error "object cannot be nil (key: GINInviteResources.bundle)" in step 11 Send Install Invites

I can't figure out how to fix this. I made sure all the code was correctly entered and tried to find a Dictionary that this might refer to without any luck. Tried Googling for other similar issues but was unable to find anything close.

2017-09-17 11:59:10.900855-0700 FriendlyChatSwift[4688:493222] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSDictionaryM setObject:forKey:]: object cannot be nil (key: GINInviteResources.bundle)'
*** First throw call stack:
(
0 CoreFoundation 0x0000000107e85aeb __exceptionPreprocess + 171
1 libobjc.A.dylib 0x00000001077f0f41 objc_exception_throw + 48
2 CoreFoundation 0x0000000107ec516c _CFThrowFormattedException + 194
3 CoreFoundation 0x0000000107d9b371 -[__NSDictionaryM setObject:forKey:] + 929
4 FriendlyChatSwift 0x00000001019a4647 +[NSBundle(GPPAdditions) gpp_setBundle:forName:] + 99
5 FriendlyChatSwift 0x000000010196a0aa -[GINInviteBuilderImpl initializeBundles] + 106
6 FriendlyChatSwift 0x0000000101969d99 -[GINInviteBuilderImpl open] + 184
7 FriendlyChatSwift 0x0000000101805dda _T017FriendlyChatSwift16FCViewControllerC12inviteTappedyyXlF + 2010
8 FriendlyChatSwift 0x0000000101805f08 _T017FriendlyChatSwift16FCViewControllerC12inviteTappedyyXlFTo + 56
9 UIKit 0x00000001085845db -[UIApplication sendAction:to:from:forEvent:] + 83
10 UIKit 0x00000001086f8415 -[UIControl sendAction:to:forEvent:] + 67
11 UIKit 0x00000001086f8732 -[UIControl _sendActionsForEvents:withEvent:] + 450
12 UIKit 0x00000001086f765f -[UIControl touchesEnded:withEvent:] + 618
13 UIKit 0x00000001085f7a1d -[UIWindow _sendTouchesForEvent:] + 2807
14 UIKit 0x00000001085f9140 -[UIWindow sendEvent:] + 4124
15 UIKit 0x000000010859f1ee -[UIApplication sendEvent:] + 352
16 UIKit 0x0000000108eb01b4 __dispatchPreprocessedEventFromEventQueue + 2809
17 UIKit 0x0000000108eb2d1b __handleEventQueueInternal + 5957
18 CoreFoundation 0x0000000107e28ef1 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17
19 CoreFoundation 0x0000000107ec8011 __CFRunLoopDoSource0 + 81
20 CoreFoundation 0x0000000107e0d8e9 __CFRunLoopDoSources0 + 185
21 CoreFoundation 0x0000000107e0cecf __CFRunLoopRun + 1279
22 CoreFoundation 0x0000000107e0c759 CFRunLoopRunSpecific + 409
23 GraphicsServices 0x000000010cf229e2 GSEventRunModal + 62
24 UIKit 0x000000010858294e UIApplicationMain + 159
25 FriendlyChatSwift 0x0000000101813887 main + 55
26 libdyld.dylib 0x000000010b1ee3c5 start + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)

Errors in AppDelegate

I have been trying for 2 days to get this to work. In swift-starter AppDelegate I am getting this error Cannot call value of non-function type 'GIDSignIn' on this line, GIDSignIn.sharedInstance().delegate = self and the same error in the SignInViewController on this this line, GIDSignIn.sharedInstance()?.presentingViewController = self.

I am guessing that something has been migrated or updated but I can't seem to find the right combination. Is there a newer version of this Codelab or is there some documentation on how to fix/migrate these errors?

Firebase iOS Codelab Swift Step 9 - swift code out of date

Again, correct code found in the final swift project folder. Copied below:



 func imagePickerController(_ picker: UIImagePickerController,
      didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    picker.dismiss(animated: true, completion:nil)
    guard let uid = Auth.auth().currentUser?.uid else { return }

    // if it's a photo from the library, not an image from the camera
    if #available(iOS 8.0, *), let referenceURL = info[UIImagePickerController.InfoKey.referenceURL] as? URL {
      let assets = PHAsset.fetchAssets(withALAssetURLs: [referenceURL], options: nil)
      let asset = assets.firstObject
      asset?.requestContentEditingInput(with: nil, completionHandler: { [weak self] (contentEditingInput, info) in
        let imageFile = contentEditingInput?.fullSizeImageURL
        let filePath = "\(uid)/\(Int(Date.timeIntervalSinceReferenceDate * 1000))/\((referenceURL as AnyObject).lastPathComponent!)"
        guard let strongSelf = self else { return }
        strongSelf.storageRef.child(filePath)
          .putFile(from: imageFile!, metadata: nil) { (metadata, error) in
            if let error = error {
              let nsError = error as NSError
              print("Error uploading: \(nsError.localizedDescription)")
              return
            }
            strongSelf.sendMessage(withData: [Constants.MessageFields.imageURL: strongSelf.storageRef.child((metadata?.path)!).description])
          }
      })
    } else {
      guard let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage else { return }
      let imageData = image.jpegData(compressionQuality: 0.8)
      let imagePath = "\(uid)/\(Int(Date.timeIntervalSinceReferenceDate * 1000)).jpg"
      let metadata = StorageMetadata()
      metadata.contentType = "image/jpeg"
      self.storageRef.child(imagePath)
        .putData(imageData!, metadata: metadata) { [weak self] (metadata, error) in
          if let error = error {
            print("Error uploading: \(error)")
            return
          }
          guard let strongSelf = self else { return }
          strongSelf.sendMessage(withData: [Constants.MessageFields.imageURL: strongSelf.storageRef.child((metadata?.path)!).description])
      }
    }
  }

Starter app not working, with error 'You must specify |clientID| for |GIDSignIn|'

Hello @morganchen12 and @ulukaya,

This is a continuation of firebase/codelab-friendlychat-web#156.

I am doing the Firebase authentication tutorial here: https://codelabs.developers.google.com/codelabs/firebase-ios-swift/#4

I see the error:

FriendlyChatSwift[5221:437165] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'You must specify |clientID| for |GIDSignIn|'

I read the messages in #156 and inserted the code

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        FirebaseApp.configure();
        GIDSignIn.sharedInstance().clientID = FirebaseApp.app()?.options.clientID
        return true
    }

in the AppDelegate.swift file, but still see the error.

Would you know why?

Google Ad Error

I got to the end of step 4, and am seeing this:

Error Error Domain=com.google.GIDSignIn Code=-4 "(null)"
2019-03-18 22:15:52.750922-0700 FriendlyChatSwift[51767:742091] *** Terminating app due to uncaught exception 'GADInvalidInitializationException', reason: 'The Google Mobile Ads SDK was initialized incorrectly. Google AdMob publishers should follow instructions here: https://googlemobileadssdk.page.link/admob-ios-update-plist to include the AppMeasurement framework, set the -ObjC linker flag, and set GADApplicationIdentifier with a valid App ID. Google Ad Manager publishers should follow instructions here: https://googlemobileadssdk.page.link/ad-manager-ios-update-plist'

Multiple build issues

Hi
I am trying to follow this tutorial but there have been multiple issues:

  • The Firebase/AdMob pod results in two conflicting installations for both Firebase and GoogleUtilities
  • (you get Firebase 3.6.0 as well as latest Firebase, and you get GoogleUtilities 1.3.2 and 7.13.0)
  • This results in license errors during pod installation ("eg Unable to read the license file LICENSE for the spec Firebase (9.6.0)") and build errors when building (eg says it can't find the GoogleUtilities import)
  • Some Googling suggested I swap the Firebase/AdMob pod for the Google-Mobile-Ads-SDK pod, but this resulted in various build errors because this code is using GIDSignInDelegate, which is now deprecated. I tried following the migration guide (https://developers.google.com/identity/sign-in/ios/quick-migration-guide) but I didn't understand this code well enough to be able to do this. I did manage to finally get the code to build by simply commenting out some code and changing some other bits, but once the project was finally running, I got an error "The Google Mobile Ads SDK was initialized without an application ID. Google AdMob publishers, follow instructions at https://googlemobileadssdk.page.link/admob-ios-update-plist to set a valid application ID. Google Ad Manager publishers, follow instructions at https://googlemobileadssdk.page.link/ad-manager-ios-update-plist." 0x000000010e307c40" and at this point I gave up as I really only want to follow a simple Firebase tutorial rather than address all these issues, and I know nothing about Google Ad Manager or AdMob.

Build Failures

I'm trying to follow this code lab and have encountered the following build errors:

  • File not found: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphonesimulator.a
  • Linker command failed with exit code 1 (use -v to see invocation)

I tried loading my iPhone 14 Pro simulator prior to building the project and it still failed to build.

I'm using an M1 Pro Mac with Xcode 14.3.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.