Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FindCertFileInResourceBundle crashes when [NSBundle bundleIdentifier] is nil #3184

Closed
hanumanAbacus opened this issue Jun 13, 2019 · 6 comments
Closed
Assignees
Milestone

Comments

@hanumanAbacus
Copy link

@hanumanAbacus hanumanAbacus commented Jun 13, 2019

[REQUIRED] Step 2: Describe your environment

  • Xcode version: 10.2.1
  • Firebase SDK version: 6.2.1
  • Firebase Component: _____ (Auth, Core, Database, Firestore, Messaging, Storage, etc)
  • Component version: _____

[REQUIRED] Step 3: Describe the problem

The problem occurs only when we enable log
[[FIRConfiguration sharedInstance] setLoggerLevel:FIRLoggerLevelDebug];

Carthage:
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAuthBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseDatabaseBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json"

Steps to reproduce:

The app crashes with the below log

#12. Crashed: com.google.firebase.firestore.GoogleService-Info-Ent-Develop
0  CoreFoundation                 0x10f85eeb9 CFStringGetLength + 9
1  Posski                         0x1060c6f37 firebase::firestore::util::MakeString(__CFString const*)
2  Posski                         0x10608826a firebase::firestore::remote::(anonymous namespace)::FindCertFileInResourceBundle(NSBundle*, NSBundle*)
3  Posski                         0x106087e04 firebase::firestore::remote::LoadGrpcRootCertificate()
4  Posski                         0x106085f07 firebase::firestore::remote::GrpcConnection::CreateChannel() const
5  Posski                         0x106085bb3 firebase::firestore::remote::GrpcConnection::EnsureActiveStub()
6  Posski                         0x1060863d9 firebase::firestore::remote::GrpcConnection::CreateStream(absl::string_view, firebase::firestore::auth::Token const&, firebase::firestore::remote::GrpcStreamObserver*)
7  Posski                         0x1060d5ee7 firebase::firestore::remote::WriteStream::CreateGrpcStream(firebase::firestore::remote::GrpcConnection*, firebase::firestore::auth::Token const&)
8  Posski                         0x1060c5a4c firebase::firestore::remote::Stream::ResumeStartWithCredentials(firebase::firestore::util::StatusOr<firebase::firestore::auth::Token> const&)
9  Posski                         0x1060c6b70 std::__1::__function::__func<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(firebase::firestore::util::StatusOr<firebase::firestore::auth::Token> const&) const::'lambda'(), std::__1::allocator<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(firebase::firestore::util::StatusOr<firebase::firestore::auth::Token> const&) const::'lambda'()>, void ()>::operator()()
10 Posski                         0x105ff12a0 firebase::firestore::util::AsyncQueue::ExecuteBlocking(std::__1::function<void ()> const&)
11 Posski                         0x1060046f8 firebase::firestore::util::internal::DispatchAsync(NSObject<OS_dispatch_queue>*, std::__1::function<void ()>&&)::$_0::__invoke(void*)
12 libdispatch.dylib              0x11036554b _dispatch_client_callout + 8
13 libdispatch.dylib              0x11036c01c _dispatch_lane_serial_drain + 720
14 libdispatch.dylib              0x11036cb5f _dispatch_lane_invoke + 401
15 libdispatch.dylib              0x1103759a8 _dispatch_workloop_worker_thread + 645
16 libsystem_pthread.dylib        0x110741611 _pthread_wqthread + 421
17 libsystem_pthread.dylib        0x1107413fd start_wqthread + 13
18 (Missing)                      0x12ab2bc58 (Missing)

Relevant Code:

// TODO(you): code here to reproduce the problem
@ryanwilson
Copy link
Member

@ryanwilson ryanwilson commented Jun 13, 2019

Thanks for the report - it looks like somewhere around this line is causing an issue - potentially because bundle could be nil?

absl::StrCat("roots.pem ", path ? "found " : "not found ", "in bundle ",

@wilhuff wilhuff changed the title We recently updated to Carthage from cocoa pods and receiving crash FindCertFileInResourceBundle crashes when [NSBundle bundleIdentifier] is nil Jun 13, 2019
@wilhuff
Copy link
Contributor

@wilhuff wilhuff commented Jun 13, 2019

bundle can't be nil at that location because of the early exit above (line 50). That means that this could only happen if [bundle bundleIdentifier] returned nil. Looking back at the docs for NSBundle this does seem like a valid outcome (at least in the swift version of the docs).

@hanumanAbacus
Copy link
Author

@hanumanAbacus hanumanAbacus commented Jun 13, 2019

@wilhuff I checked the GoogleService-Info.plist, it got value for BUNDLE_ID

also just to mention, it worked when we commented out in app delegate,
[[FIRConfiguration sharedInstance] setLoggerLevel:FIRLoggerLevelDebug];

@hanumanAbacus
Copy link
Author

@hanumanAbacus hanumanAbacus commented Jun 13, 2019

full crash log, if it could be useful

# Crashlytics - plaintext stacktrace downloaded by Hanuman Kachwa at Thu, 13 Jun 2019 08:25:43 GMT
# Organization: Kinnov
# Platform: ios
# Application: Abacus
# Version: 2.7 (20181121.1201)
# Bundle Identifier: com.****
# Issue ID: 7cdc8ce7a62e9edd83bb07cad546c022
# Session ID: 70fbf2f983d5438ba2f2953b132194ff_DNE_0_v2
# Date: 2019-06-12T02:56:00Z
# OS Version: 12.1.0 (18E226)
# Device: iOS (Simulator)
# RAM Free: 9.4%
# Disk Free: 42%

#12. Crashed: com.google.firebase.firestore.GoogleService-Info-Ent-Develop
0  CoreFoundation                 0x10f85eeb9 CFStringGetLength + 9
1  Posski                         0x1060c6f37 firebase::firestore::util::MakeString(__CFString const*)
2  Posski                         0x10608826a firebase::firestore::remote::(anonymous namespace)::FindCertFileInResourceBundle(NSBundle*, NSBundle*)
3  Posski                         0x106087e04 firebase::firestore::remote::LoadGrpcRootCertificate()
4  Posski                         0x106085f07 firebase::firestore::remote::GrpcConnection::CreateChannel() const
5  Posski                         0x106085bb3 firebase::firestore::remote::GrpcConnection::EnsureActiveStub()
6  Posski                         0x1060863d9 firebase::firestore::remote::GrpcConnection::CreateStream(absl::string_view, firebase::firestore::auth::Token const&, firebase::firestore::remote::GrpcStreamObserver*)
7  Posski                         0x1060d5ee7 firebase::firestore::remote::WriteStream::CreateGrpcStream(firebase::firestore::remote::GrpcConnection*, firebase::firestore::auth::Token const&)
8  Posski                         0x1060c5a4c firebase::firestore::remote::Stream::ResumeStartWithCredentials(firebase::firestore::util::StatusOr<firebase::firestore::auth::Token> const&)
9  Posski                         0x1060c6b70 std::__1::__function::__func<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(firebase::firestore::util::StatusOr<firebase::firestore::auth::Token> const&) const::'lambda'(), std::__1::allocator<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(firebase::firestore::util::StatusOr<firebase::firestore::auth::Token> const&) const::'lambda'()>, void ()>::operator()()
10 Posski                         0x105ff12a0 firebase::firestore::util::AsyncQueue::ExecuteBlocking(std::__1::function<void ()> const&)
11 Posski                         0x1060046f8 firebase::firestore::util::internal::DispatchAsync(NSObject<OS_dispatch_queue>*, std::__1::function<void ()>&&)::$_0::__invoke(void*)
12 libdispatch.dylib              0x11036554b _dispatch_client_callout + 8
13 libdispatch.dylib              0x11036c01c _dispatch_lane_serial_drain + 720
14 libdispatch.dylib              0x11036cb5f _dispatch_lane_invoke + 401
15 libdispatch.dylib              0x1103759a8 _dispatch_workloop_worker_thread + 645
16 libsystem_pthread.dylib        0x110741611 _pthread_wqthread + 421
17 libsystem_pthread.dylib        0x1107413fd start_wqthread + 13
18 (Missing)                      0x12ab2bc58 (Missing)

--

#0. com.apple.main-thread
0  libsystem_kernel.dylib         0x1106eb22a mach_msg_trap + 10
1  libsystem_kernel.dylib         0x1106eb76c mach_msg + 60
2  CoreFoundation                 0x10f8371b4 __CFRunLoopServiceMachPort + 212
3  CoreFoundation                 0x10f8317e9 __CFRunLoopRun + 1689
4  CoreFoundation                 0x10f830e11 CFRunLoopRunSpecific + 625
5  GraphicsServices               0x1113e31dd GSEventRunModal + 62
6  UIKitCore                      0x11820181d UIApplicationMain + 140
7  Posski                         0x10529dd72 main (main.m:16)
8  libdyld.dylib                  0x1103d5575 start + 1

#1. com.google.firebase.firestore.rpc
0  libsystem_kernel.dylib         0x1106f336e poll + 10
1  Posski                         0x1061cd5de pollset_work(grpc_pollset*, grpc_pollset_worker**, long long)
2  Posski                         0x1061cf3b4 pollset_work(grpc_pollset*, grpc_pollset_worker**, long long)
3  Posski                         0x1061c3b3c cq_next(grpc_completion_queue*, gpr_timespec, void*)
4  Posski                         0x1060dab32 grpc_impl::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec)
5  Posski                         0x105ff6737 firebase::firestore::remote::Datastore::PollGrpcQueue()
6  Posski                         0x1060046f8 firebase::firestore::util::internal::DispatchAsync(NSObject<OS_dispatch_queue>*, std::__1::function<void ()>&&)::$_0::__invoke(void*)
7  libdispatch.dylib              0x11036554b _dispatch_client_callout + 8
8  libdispatch.dylib              0x11036c01c _dispatch_lane_serial_drain + 720
9  libdispatch.dylib              0x11036cb5f _dispatch_lane_invoke + 401
10 libdispatch.dylib              0x1103759a8 _dispatch_workloop_worker_thread + 645
11 libsystem_pthread.dylib        0x110741611 _pthread_wqthread + 421
12 libsystem_pthread.dylib        0x1107413fd start_wqthread + 13

#2. Thread
0  libsystem_kernel.dylib         0x1106ecbfe __workq_kernreturn + 10
1  libsystem_pthread.dylib        0x110741636 _pthread_wqthread + 458
2  libsystem_pthread.dylib        0x1107413fd start_wqthread + 13
3  (Missing)                      0x12ab2a000 (Missing)

#3. com.bugfender.BugfenderSDK.sessions
0  libsystem_kernel.dylib         0x1106eb266 semaphore_wait_trap + 10
1  libdispatch.dylib              0x110365aeb _dispatch_sema4_wait + 16
2  libdispatch.dylib              0x1103662fc _dispatch_semaphore_wait_slow + 101
3  Posski                         0x1057ed04f __63-[BFLoggerManager bgf_sendPreviousSessionsWithCompletionBlock:]_block_invoke (BFLoggerManager.m:575)
4  libdispatch.dylib              0x1103644e1 _dispatch_call_block_and_release + 12
5  libdispatch.dylib              0x11036554b _dispatch_client_callout + 8
6  libdispatch.dylib              0x11036c01c _dispatch_lane_serial_drain + 720
7  libdispatch.dylib              0x11036cb5f _dispatch_lane_invoke + 401
8  libdispatch.dylib              0x1103759a8 _dispatch_workloop_worker_thread + 645
9  libsystem_pthread.dylib        0x110741611 _pthread_wqthread + 421
10 libsystem_pthread.dylib        0x1107413fd start_wqthread + 13
11 (Missing)                      0x10f600ea0 (Missing)

#4. com.apple.uikit.eventfetch-thread
0  libsystem_kernel.dylib         0x1106eb22a mach_msg_trap + 10
1  libsystem_kernel.dylib         0x1106eb76c mach_msg + 60
2  CoreFoundation                 0x10f8371b4 __CFRunLoopServiceMachPort + 212
3  CoreFoundation                 0x10f8317e9 __CFRunLoopRun + 1689
4  CoreFoundation                 0x10f830e11 CFRunLoopRunSpecific + 625
5  Foundation                     0x10c1e9322 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 277
6  Foundation                     0x10c1e9534 -[NSRunLoop(NSRunLoop) runUntilDate:] + 143
7  UIKitCore                      0x1182f8bcb -[UIEventFetcher threadMain] + 118
8  Foundation                     0x10c1fe732 __NSThread__start__ + 1221
9  libsystem_pthread.dylib        0x1107422eb _pthread_body + 126
10 libsystem_pthread.dylib        0x110745249 _pthread_start + 66
11 libsystem_pthread.dylib        0x11074140d thread_start + 13

#5. NSOperationQueue 0x600001dda400 (QOS: UNSPECIFIED)
0  libsystem_kernel.dylib         0x1106eb266 semaphore_wait_trap + 10
1  libdispatch.dylib              0x110365aeb _dispatch_sema4_wait + 16
2  libdispatch.dylib              0x1103662fc _dispatch_semaphore_wait_slow + 101
3  Posski                         0x1057e4b9c -[BFStorageItem bf_sendLogsAndWait:error:] (BFStorageItem.m:749)
4  Posski                         0x1057e4a00 -[BFStorageItem bf_processLogFiles:error:] (BFStorageItem.m:712)
5  Posski                         0x1057e4303 -[BFStorageItem bf_sendLogsForSessionId:batchSize:withError:] (BFStorageItem.m:635)
6  Posski                         0x1057e3573 __41-[BFStorageItem sendWithCompletionBlock:]_block_invoke (BFStorageItem.m:426)
7  Foundation                     0x10c1d2f9e __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ + 7
8  Foundation                     0x10c1d2ea5 -[NSBlockOperation main] + 68
9  Foundation                     0x10c1cfc14 -[__NSOperationInternal _start:] + 689
10 Foundation                     0x10c1d5c4b __NSOQSchedule_f + 227
11 libdispatch.dylib              0x1103644e1 _dispatch_call_block_and_release + 12
12 libdispatch.dylib              0x11036554b _dispatch_client_callout + 8
13 libdispatch.dylib              0x110367f70 _dispatch_continuation_pop + 453
14 libdispatch.dylib              0x1103675dd _dispatch_async_redirect_invoke + 827
15 libdispatch.dylib              0x110374491 _dispatch_root_queue_drain + 355
16 libdispatch.dylib              0x110374cfb _dispatch_worker_thread2 + 97
17 libsystem_pthread.dylib        0x1107416b3 _pthread_wqthread + 583
18 libsystem_pthread.dylib        0x1107413fd start_wqthread + 13
19 (Missing)                      0x54485244 (Missing)

#6. Thread
0  libsystem_kernel.dylib         0x1106ecbfe __workq_kernreturn + 10
1  libsystem_pthread.dylib        0x1107416e6 _pthread_wqthread + 634
2  libsystem_pthread.dylib        0x1107413fd start_wqthread + 13
3  (Missing)                      0x54485244 (Missing)

#7. com.twitter.crashlytics.ios.MachExceptionServer
0  libsystem_kernel.dylib         0x1106eb22a mach_msg_trap + 10
1  libsystem_kernel.dylib         0x1106eb76c mach_msg + 60
2  Posski                         0x105cb5302 CLSMachExceptionServer
3  libsystem_pthread.dylib        0x1107422eb _pthread_body + 126
4  libsystem_pthread.dylib        0x110745249 _pthread_start + 66
5  libsystem_pthread.dylib        0x11074140d thread_start + 13

#8. Thread
0  libsystem_kernel.dylib         0x1106ecbfe __workq_kernreturn + 10
1  libsystem_pthread.dylib        0x110741636 _pthread_wqthread + 458
2  libsystem_pthread.dylib        0x1107413fd start_wqthread + 13
3  (Missing)                      0x12ab2a000 (Missing)

#9. Thread
0  libsystem_kernel.dylib         0x1106eef32 __semwait_signal + 10
1  libsystem_c.dylib              0x1104d2e28 nanosleep + 199
2  libsystem_c.dylib              0x1104d2c8a sleep + 41
3  Posski                         0x1057f94d8 monitorCachedData (BFSDK_KSCrashCachedData.c:148)
4  libsystem_pthread.dylib        0x1107422eb _pthread_body + 126
5  libsystem_pthread.dylib        0x110745249 _pthread_start + 66
6  libsystem_pthread.dylib        0x11074140d thread_start + 13

#10. com.apple.NSURLConnectionLoader
0  libsystem_kernel.dylib         0x1106eb22a mach_msg_trap + 10
1  libsystem_kernel.dylib         0x1106eb76c mach_msg + 60
2  CoreFoundation                 0x10f8371b4 __CFRunLoopServiceMachPort + 212
3  CoreFoundation                 0x10f8317e9 __CFRunLoopRun + 1689
4  CoreFoundation                 0x10f830e11 CFRunLoopRunSpecific + 625
5  CFNetwork                      0x10b43a939 -[__CoreSchedulingSetRunnable runForever] + 195
6  Foundation                     0x10c1fe732 __NSThread__start__ + 1221
7  libsystem_pthread.dylib        0x1107422eb _pthread_body + 126
8  libsystem_pthread.dylib        0x110745249 _pthread_start + 66
9  libsystem_pthread.dylib        0x11074140d thread_start + 13

#11. Thread
0  libsystem_kernel.dylib         0x1106ecbfe __workq_kernreturn + 10
1  libsystem_pthread.dylib        0x110741636 _pthread_wqthread + 458
2  libsystem_pthread.dylib        0x1107413fd start_wqthread + 13

#12. Crashed: com.google.firebase.firestore.GoogleService-Info-Ent-Develop
0  CoreFoundation                 0x10f85eeb9 CFStringGetLength + 9
1  Posski                         0x1060c6f37 firebase::firestore::util::MakeString(__CFString const*)
2  Posski                         0x10608826a firebase::firestore::remote::(anonymous namespace)::FindCertFileInResourceBundle(NSBundle*, NSBundle*)
3  Posski                         0x106087e04 firebase::firestore::remote::LoadGrpcRootCertificate()
4  Posski                         0x106085f07 firebase::firestore::remote::GrpcConnection::CreateChannel() const
5  Posski                         0x106085bb3 firebase::firestore::remote::GrpcConnection::EnsureActiveStub()
6  Posski                         0x1060863d9 firebase::firestore::remote::GrpcConnection::CreateStream(absl::string_view, firebase::firestore::auth::Token const&, firebase::firestore::remote::GrpcStreamObserver*)
7  Posski                         0x1060d5ee7 firebase::firestore::remote::WriteStream::CreateGrpcStream(firebase::firestore::remote::GrpcConnection*, firebase::firestore::auth::Token const&)
8  Posski                         0x1060c5a4c firebase::firestore::remote::Stream::ResumeStartWithCredentials(firebase::firestore::util::StatusOr<firebase::firestore::auth::Token> const&)
9  Posski                         0x1060c6b70 std::__1::__function::__func<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(firebase::firestore::util::StatusOr<firebase::firestore::auth::Token> const&) const::'lambda'(), std::__1::allocator<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(firebase::firestore::util::StatusOr<firebase::firestore::auth::Token> const&) const::'lambda'()>, void ()>::operator()()
10 Posski                         0x105ff12a0 firebase::firestore::util::AsyncQueue::ExecuteBlocking(std::__1::function<void ()> const&)
11 Posski                         0x1060046f8 firebase::firestore::util::internal::DispatchAsync(NSObject<OS_dispatch_queue>*, std::__1::function<void ()>&&)::$_0::__invoke(void*)
12 libdispatch.dylib              0x11036554b _dispatch_client_callout + 8
13 libdispatch.dylib              0x11036c01c _dispatch_lane_serial_drain + 720
14 libdispatch.dylib              0x11036cb5f _dispatch_lane_invoke + 401
15 libdispatch.dylib              0x1103759a8 _dispatch_workloop_worker_thread + 645
16 libsystem_pthread.dylib        0x110741611 _pthread_wqthread + 421
17 libsystem_pthread.dylib        0x1107413fd start_wqthread + 13
18 (Missing)                      0x12ab2bc58 (Missing)

#13. Thread
0  libsystem_kernel.dylib         0x1106ee86a __psynch_cvwait + 10
1  libsystem_pthread.dylib        0x11074556e _pthread_cond_wait + 722
2  Posski                         0x10622c978 gpr_cv_wait
3  Posski                         0x1061d052f grpc_core::Executor::ThreadMain(void*)
4  Posski                         0x1062326c5 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*)
5  libsystem_pthread.dylib        0x1107422eb _pthread_body + 126
6  libsystem_pthread.dylib        0x110745249 _pthread_start + 66
7  libsystem_pthread.dylib        0x11074140d thread_start + 13

#14. Thread
0  libsystem_kernel.dylib         0x1106ee86a __psynch_cvwait + 10
1  libsystem_pthread.dylib        0x11074556e _pthread_cond_wait + 722
2  Posski                         0x10622c978 gpr_cv_wait
3  Posski                         0x1061d052f grpc_core::Executor::ThreadMain(void*)
4  Posski                         0x1062326c5 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*)
5  libsystem_pthread.dylib        0x1107422eb _pthread_body + 126
6  libsystem_pthread.dylib        0x110745249 _pthread_start + 66
7  libsystem_pthread.dylib        0x11074140d thread_start + 13

#15. Thread
0  libsystem_kernel.dylib         0x1106ee86a __psynch_cvwait + 10
1  libsystem_pthread.dylib        0x11074556e _pthread_cond_wait + 722
2  Posski                         0x10622c96b gpr_cv_wait
3  Posski                         0x1062350b5 timer_thread(void*)
4  Posski                         0x1062326c5 grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*)
5  libsystem_pthread.dylib        0x1107422eb _pthread_body + 126
6  libsystem_pthread.dylib        0x110745249 _pthread_start + 66
7  libsystem_pthread.dylib        0x11074140d thread_start + 13


@wilhuff
Copy link
Contributor

@wilhuff wilhuff commented Jun 13, 2019

Sorry, I should have been clear: I’m putting together a fix.

wilhuff added a commit that referenced this issue Jun 14, 2019
This fixes #3184, where under some circumestances some bundles have no
CFBundleIdentifier in their Info.plist.
wilhuff added a commit that referenced this issue Jun 14, 2019
This fixes #3184, where under some circumstances some bundles have no
CFBundleIdentifier in their Info.plist.
@wilhuff
Copy link
Contributor

@wilhuff wilhuff commented Jun 14, 2019

Fix is available for testing. If you were using CocoaPods, the way to test this out would be to add these lines to your Podfile:

pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'pull/3188/head'
pod 'FirebaseFirestore', :git => 'https://github.com/firebase/firebase-ios-sdk.git', :branch => 'pull/3188/head'

Unfortunately this fix has missed the release train for the release that's currently in progress so a binary drop from us is more than two weeks away. The carthage equivalent is likely to clone our project and build binaries from it. pod install in Firestore/Example to get a working workspace.

wilhuff added a commit that referenced this issue Jun 14, 2019
This fixes #3184, where under some circumstances some bundles have no
CFBundleIdentifier in their Info.plist.
wilhuff added a commit that referenced this issue Jun 14, 2019
This fixes #3184, where under some circumstances some bundles have no
CFBundleIdentifier in their Info.plist.
@morganchen12 morganchen12 added this to the M51 milestone Jun 14, 2019
@firebase firebase locked and limited conversation to collaborators Oct 13, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

5 participants