firebase / firebase-ios-sdk

Firebase SDK for Apple App Development
https://firebase.google.com
Apache License 2.0
5.66k stars 1.49k forks source link

Crash for Firestore, iOS Simulator 14.3, Xcode 15 #11829

Closed thomasdao closed 1 year ago

thomasdao commented 1 year ago

Description

On latest Xcode 15, iOS simulator 14.3, I found the app crashes almost immediately when app starts. When run on iOS simulator 17.0, the app does not crash. When run on Xcode 14.2, the app does not crash.

Reproducing the issue

Compile app on Xcode 15 and run on simulator 14.3

Firebase SDK Version

10.15.0

Xcode Version

15

Installation Method

CocoaPods

Firebase Product(s)

Firestore

Targeted Platforms

iOS

Relevant Log Output

* thread #12, queue = 'com.google.firebase.firestore', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x0000000000000000
  * frame #1: 0x000000010458589c grpc`std::__1::pair<grpc_core::ChannelInit::Builder::Slot*, long> std::__1::get_temporary_buffer[abi:v160006]<grpc_core::ChannelInit::Builder::Slot>(__n=2) at temporary_buffer.h:57:39
    frame #2: 0x00000001045856d4 grpc`void std::__1::__stable_sort_impl[abi:v160006]<std::__1::_ClassicAlgPolicy, std::__1::__wrap_iter<grpc_core::ChannelInit::Builder::Slot*>, grpc_core::ChannelInit::Builder::Build()::$_0>(__first=__wrap_iter<grpc_core::ChannelInit::Builder::Slot *> @ 0x000000016fc6da38, __last=__wrap_iter<grpc_core::ChannelInit::Builder::Slot *> @ 0x000000016fc6da30, __comp=0x000000016fc6da6f) at stable_sort.h:225:15
    frame #3: 0x0000000104582eac grpc`void std::__1::stable_sort[abi:v160006]<std::__1::__wrap_iter<grpc_core::ChannelInit::Builder::Slot*>, grpc_core::ChannelInit::Builder::Build()::$_0>(__first=__wrap_iter<grpc_core::ChannelInit::Builder::Slot *> @ 0x000000016fc6da78, __last=__wrap_iter<grpc_core::ChannelInit::Builder::Slot *> @ 0x000000016fc6da70, __comp=(unnamed class) @ 0x000000016fc6da6f) at stable_sort.h:236:3
    frame #4: 0x0000000104582d40 grpc`grpc_core::ChannelInit::Builder::Build(this=0x000000016fc6dcb8) at channel_init.cc:36:5
    frame #5: 0x0000000104661338 grpc`grpc_core::CoreConfiguration::CoreConfiguration(this=0x00000001392e6de0, builder=0x000000016fc6dca0) at core_configuration.cc:42:44
    frame #6: 0x00000001046612ec grpc`grpc_core::CoreConfiguration::CoreConfiguration(this=0x00000001392e6de0, builder=0x000000016fc6dca0) at core_configuration.cc:50:60
    frame #7: 0x0000000104661290 grpc`grpc_core::CoreConfiguration::Builder::Build(this=0x000000016fc6dca0) at core_configuration.cc:36:14
    frame #8: 0x0000000104661a40 grpc`grpc_core::CoreConfiguration::BuildNewAndMaybeSet() at core_configuration.cc:87:34
    frame #9: 0x000000010453dc50 grpc`grpc_core::CoreConfiguration::Get() at core_configuration.h:151:12
    frame #10: 0x00000001045adb5c grpc`grpc_channel_create(target="firestore.googleapis.com", creds=0x0000600002eee350, c_args=0x000000016fc6e078) at chttp2_connector.cc:357:33
    frame #11: 0x0000000106491254 grpcpp`grpc::SecureChannelCredentials::CreateChannelWithInterceptors(this=0x0000600000d7aa00, target="firestore.googleapis.com", args=0x000000016fc6e358, interceptor_creators=size=0) at secure_credentials.cc:83:7
    frame #12: 0x00000001064911b8 grpcpp`grpc::SecureChannelCredentials::CreateChannelImpl(this=0x0000600000d7aa00, target="firestore.googleapis.com", args=0x000000016fc6e358) at secure_credentials.cc:67:10
    frame #13: 0x0000000106456c0c grpcpp`grpc::CreateCustomChannel(target="firestore.googleapis.com", creds=std::__1::shared_ptr<grpc::ChannelCredentials>::element_type @ 0x0000600000d7aa00 strong=1 weak=1, args=0x000000016fc6e358) at create_channel.cc:49:25
    frame #14: 0x0000000101d67088 FirebaseFirestore`firebase::firestore::remote::GrpcConnection::CreateChannel(this=0x00000001392e48c8) const at grpc_connection.cc:312:12
    frame #15: 0x0000000101d66f0c FirebaseFirestore`firebase::firestore::remote::GrpcConnection::EnsureActiveStub(this=0x00000001392e48c8) at grpc_connection.cc:295:21
    frame #16: 0x0000000101d67894 FirebaseFirestore`firebase::firestore::remote::GrpcConnection::CreateStream(this=0x00000001392e48c8, rpc_name=(ptr_ = "/google.firestore.v1.Firestore/Listen", length_ = 37), auth_token=0x0000600002382aa0, app_check_token="", observer=0x00000001386dc1d8) at grpc_connection.cc:341:3
    frame #17: 0x000000010200542c FirebaseFirestore`firebase::firestore::remote::WatchStream::CreateGrpcStream(this=0x00000001386dc1d8, grpc_connection=0x00000001392e48c8, auth_token=0x0000600002382aa0, app_check_token="") at watch_stream.cc:83:27
    frame #18: 0x0000000101f7d8c4 FirebaseFirestore`firebase::firestore::remote::Stream::ResumeStartWithCredentials(this=0x00000001386dc1d8, auth_token=0x0000600002382a98, app_check_token="") at stream.cc:179:18
    frame #19: 0x0000000101f83770 FirebaseFirestore`firebase::firestore::remote::Stream::RequestCredentials(this=0x0000600002382a88)::$_0::operator()(absl::lts_20220623::optional<firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>> const&, absl::lts_20220623::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&) const::'lambda'()::operator()() const at stream.cc:154:24
    frame #20: 0x0000000101f836e8 FirebaseFirestore`decltype(std::declval<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(absl::lts_20220623::optional<firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>> const&, absl::lts_20220623::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&) const::'lambda'()&>()()) std::__1::__invoke[abi:v160006]<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(absl::lts_20220623::optional<firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>> const&, absl::lts_20220623::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&) const::'lambda'()&>(__f=0x0000600002382a88) at invoke.h:394:23
    frame #21: 0x0000000101f836a0 FirebaseFirestore`void std::__1::__invoke_void_return_wrapper<void, true>::__call<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(absl::lts_20220623::optional<firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>> const&, absl::lts_20220623::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&) const::'lambda'()&>(__args=0x0000600002382a88) at invoke.h:487:9
    frame #22: 0x0000000101f8367c FirebaseFirestore`std::__1::__function::__alloc_func<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(absl::lts_20220623::optional<firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>> const&, absl::lts_20220623::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&) const::'lambda'(), std::__1::allocator<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(absl::lts_20220623::optional<firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>> const&, absl::lts_20220623::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&) const::'lambda'()>, void ()>::operator()[abi:v160006](this=0x0000600002382a88) at function.h:185:16
    frame #23: 0x0000000101f82358 FirebaseFirestore`std::__1::__function::__func<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(absl::lts_20220623::optional<firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>> const&, absl::lts_20220623::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&) const::'lambda'(), std::__1::allocator<firebase::firestore::remote::Stream::RequestCredentials()::$_0::operator()(absl::lts_20220623::optional<firebase::firestore::util::StatusOr<firebase::firestore::credentials::AuthToken>> const&, absl::lts_20220623::optional<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>> const&) const::'lambda'()>, void ()>::operator()(this=0x0000600002382a80) at function.h:356:12
    frame #24: 0x0000000101b893a4 FirebaseFirestore`std::__1::__function::__value_func<void ()>::operator()[abi:v160006](this=0x00006000002d4040) const at function.h:510:16
    frame #25: 0x0000000101b86a94 FirebaseFirestore`std::__1::function<void ()>::operator()(this= Lambda in File stream.cc at Line 146) const at function.h:1156:12
    frame #26: 0x0000000101b86a54 FirebaseFirestore`firebase::firestore::util::AsyncQueue::ExecuteBlocking(this=0x00006000023b2680, operation= Lambda in File stream.cc at Line 146) at async_queue.cc:89:3
    frame #27: 0x0000000101b8b580 FirebaseFirestore`firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0::operator()(this=0x00006000002d4038) const at async_queue.cc:144:36
    frame #28: 0x0000000101b8b554 FirebaseFirestore`decltype(std::declval<firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0&>()()) std::__1::__invoke[abi:v160006]<firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0&>(__f=0x00006000002d4038) at invoke.h:394:23
    frame #29: 0x0000000101b8b50c FirebaseFirestore`void std::__1::__invoke_void_return_wrapper<void, true>::__call<firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0&>(__args=0x00006000002d4038) at invoke.h:487:9
    frame #30: 0x0000000101b8b4e8 FirebaseFirestore`std::__1::__function::__alloc_func<firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0, std::__1::allocator<firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0>, void ()>::operator()[abi:v160006](this=0x00006000002d4038) at function.h:185:16
    frame #31: 0x0000000101b8a27c FirebaseFirestore`std::__1::__function::__func<firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0, std::__1::allocator<firebase::firestore::util::AsyncQueue::Wrap(std::__1::function<void ()> const&)::$_0>, void ()>::operator()(this=0x00006000002d4030) at function.h:356:12
    frame #32: 0x0000000101b893a4 FirebaseFirestore`std::__1::__function::__value_func<void ()>::operator()[abi:v160006](this=0x00006000038ad7e0) const at function.h:510:16
    frame #33: 0x0000000101b86a94 FirebaseFirestore`std::__1::function<void ()>::operator()(this= Lambda in File async_queue.cc at Line 144) const at function.h:1156:12
    frame #34: 0x0000000101fc51f8 FirebaseFirestore`firebase::firestore::util::Task::ExecuteAndRelease(this=0x00006000038ad740) at task.cc:102:9
    frame #35: 0x0000000101c70fc0 FirebaseFirestore`firebase::firestore::util::ExecutorLibdispatch::InvokeAsync(raw_task=0x00006000038ad740) at executor_libdispatch.mm:237:9
    frame #36: 0x0000000106ff4f34 libdispatch.dylib`_dispatch_client_callout + 16
    frame #37: 0x0000000106ffbfbc libdispatch.dylib`_dispatch_lane_serial_drain + 720
    frame #38: 0x0000000106ffcc70 libdispatch.dylib`_dispatch_lane_invoke + 440
    frame #39: 0x0000000107008af4 libdispatch.dylib`_dispatch_workloop_worker_thread + 1636
    frame #40: 0x00000001bd322878 libsystem_pthread.dylib`_pthread_wqthread + 284

If using Swift Package Manager, the project's Package.resolved

Expand Package.resolved snippet
```json Replace this line with the contents of your Package.resolved. ```

If using CocoaPods, the project's Podfile.lock

Expand Podfile.lock snippet
```yml PODS: - abseil/algorithm (1.20220623.0): - abseil/algorithm/algorithm (= 1.20220623.0) - abseil/algorithm/container (= 1.20220623.0) - abseil/algorithm/algorithm (1.20220623.0): - abseil/base/config - abseil/algorithm/container (1.20220623.0): - abseil/algorithm/algorithm - abseil/base/core_headers - abseil/meta/type_traits - abseil/base (1.20220623.0): - abseil/base/atomic_hook (= 1.20220623.0) - abseil/base/base (= 1.20220623.0) - abseil/base/base_internal (= 1.20220623.0) - abseil/base/config (= 1.20220623.0) - abseil/base/core_headers (= 1.20220623.0) - abseil/base/dynamic_annotations (= 1.20220623.0) - abseil/base/endian (= 1.20220623.0) - abseil/base/errno_saver (= 1.20220623.0) - abseil/base/fast_type_id (= 1.20220623.0) - abseil/base/log_severity (= 1.20220623.0) - abseil/base/malloc_internal (= 1.20220623.0) - abseil/base/prefetch (= 1.20220623.0) - abseil/base/pretty_function (= 1.20220623.0) - abseil/base/raw_logging_internal (= 1.20220623.0) - abseil/base/spinlock_wait (= 1.20220623.0) - abseil/base/strerror (= 1.20220623.0) - abseil/base/throw_delegate (= 1.20220623.0) - abseil/base/atomic_hook (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/base (1.20220623.0): - abseil/base/atomic_hook - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/log_severity - abseil/base/raw_logging_internal - abseil/base/spinlock_wait - abseil/meta/type_traits - abseil/base/base_internal (1.20220623.0): - abseil/base/config - abseil/meta/type_traits - abseil/base/config (1.20220623.0) - abseil/base/core_headers (1.20220623.0): - abseil/base/config - abseil/base/dynamic_annotations (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/errno_saver (1.20220623.0): - abseil/base/config - abseil/base/fast_type_id (1.20220623.0): - abseil/base/config - abseil/base/log_severity (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/malloc_internal (1.20220623.0): - abseil/base/base - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/raw_logging_internal - abseil/base/prefetch (1.20220623.0): - abseil/base/config - abseil/base/pretty_function (1.20220623.0) - abseil/base/raw_logging_internal (1.20220623.0): - abseil/base/atomic_hook - abseil/base/config - abseil/base/core_headers - abseil/base/errno_saver - abseil/base/log_severity - abseil/base/spinlock_wait (1.20220623.0): - abseil/base/base_internal - abseil/base/core_headers - abseil/base/errno_saver - abseil/base/strerror (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/errno_saver - abseil/base/throw_delegate (1.20220623.0): - abseil/base/config - abseil/base/raw_logging_internal - abseil/cleanup/cleanup (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/cleanup/cleanup_internal - abseil/cleanup/cleanup_internal (1.20220623.0): - abseil/base/base_internal - abseil/base/core_headers - abseil/utility/utility - abseil/container/common (1.20220623.0): - abseil/meta/type_traits - abseil/types/optional - abseil/container/compressed_tuple (1.20220623.0): - abseil/utility/utility - abseil/container/container_memory (1.20220623.0): - abseil/base/config - abseil/memory/memory - abseil/meta/type_traits - abseil/utility/utility - abseil/container/fixed_array (1.20220623.0): - abseil/algorithm/algorithm - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/throw_delegate - abseil/container/compressed_tuple - abseil/memory/memory - abseil/container/flat_hash_map (1.20220623.0): - abseil/algorithm/container - abseil/base/core_headers - abseil/container/container_memory - abseil/container/hash_function_defaults - abseil/container/raw_hash_map - abseil/memory/memory - abseil/container/flat_hash_set (1.20220623.0): - abseil/algorithm/container - abseil/base/core_headers - abseil/container/container_memory - abseil/container/hash_function_defaults - abseil/container/raw_hash_set - abseil/memory/memory - abseil/container/hash_function_defaults (1.20220623.0): - abseil/base/config - abseil/hash/hash - abseil/strings/cord - abseil/strings/strings - abseil/container/hash_policy_traits (1.20220623.0): - abseil/meta/type_traits - abseil/container/hashtable_debug_hooks (1.20220623.0): - abseil/base/config - abseil/container/hashtablez_sampler (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/debugging/stacktrace - abseil/memory/memory - abseil/profiling/exponential_biased - abseil/profiling/sample_recorder - abseil/synchronization/synchronization - abseil/utility/utility - abseil/container/inlined_vector (1.20220623.0): - abseil/algorithm/algorithm - abseil/base/core_headers - abseil/base/throw_delegate - abseil/container/inlined_vector_internal - abseil/memory/memory - abseil/container/inlined_vector_internal (1.20220623.0): - abseil/base/core_headers - abseil/container/compressed_tuple - abseil/memory/memory - abseil/meta/type_traits - abseil/types/span - abseil/container/layout (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/meta/type_traits - abseil/strings/strings - abseil/types/span - abseil/utility/utility - abseil/container/raw_hash_map (1.20220623.0): - abseil/base/throw_delegate - abseil/container/container_memory - abseil/container/raw_hash_set - abseil/container/raw_hash_set (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/prefetch - abseil/container/common - abseil/container/compressed_tuple - abseil/container/container_memory - abseil/container/hash_policy_traits - abseil/container/hashtable_debug_hooks - abseil/container/hashtablez_sampler - abseil/memory/memory - abseil/meta/type_traits - abseil/numeric/bits - abseil/utility/utility - abseil/debugging/debugging_internal (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/errno_saver - abseil/base/raw_logging_internal - abseil/debugging/demangle_internal (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/debugging/stacktrace (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/debugging/debugging_internal - abseil/debugging/symbolize (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/malloc_internal - abseil/base/raw_logging_internal - abseil/debugging/debugging_internal - abseil/debugging/demangle_internal - abseil/strings/strings - abseil/functional/any_invocable (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/meta/type_traits - abseil/utility/utility - abseil/functional/bind_front (1.20220623.0): - abseil/base/base_internal - abseil/container/compressed_tuple - abseil/meta/type_traits - abseil/utility/utility - abseil/functional/function_ref (1.20220623.0): - abseil/base/base_internal - abseil/base/core_headers - abseil/meta/type_traits - abseil/hash/city (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/hash/hash (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/container/fixed_array - abseil/functional/function_ref - abseil/hash/city - abseil/hash/low_level_hash - abseil/meta/type_traits - abseil/numeric/int128 - abseil/strings/strings - abseil/types/optional - abseil/types/variant - abseil/utility/utility - abseil/hash/low_level_hash (1.20220623.0): - abseil/base/config - abseil/base/endian - abseil/numeric/bits - abseil/numeric/int128 - abseil/memory (1.20220623.0): - abseil/memory/memory (= 1.20220623.0) - abseil/memory/memory (1.20220623.0): - abseil/base/core_headers - abseil/meta/type_traits - abseil/meta (1.20220623.0): - abseil/meta/type_traits (= 1.20220623.0) - abseil/meta/type_traits (1.20220623.0): - abseil/base/config - abseil/numeric/bits (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/numeric/int128 (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/numeric/bits - abseil/numeric/representation (1.20220623.0): - abseil/base/config - abseil/profiling/exponential_biased (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/profiling/sample_recorder (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/synchronization/synchronization - abseil/time/time - abseil/random/distributions (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/meta/type_traits - abseil/numeric/bits - abseil/random/internal/distribution_caller - abseil/random/internal/fast_uniform_bits - abseil/random/internal/fastmath - abseil/random/internal/generate_real - abseil/random/internal/iostream_state_saver - abseil/random/internal/traits - abseil/random/internal/uniform_helper - abseil/random/internal/wide_multiply - abseil/strings/strings - abseil/random/internal/distribution_caller (1.20220623.0): - abseil/base/config - abseil/base/fast_type_id - abseil/utility/utility - abseil/random/internal/fast_uniform_bits (1.20220623.0): - abseil/base/config - abseil/meta/type_traits - abseil/random/internal/traits - abseil/random/internal/fastmath (1.20220623.0): - abseil/numeric/bits - abseil/random/internal/generate_real (1.20220623.0): - abseil/meta/type_traits - abseil/numeric/bits - abseil/random/internal/fastmath - abseil/random/internal/traits - abseil/random/internal/iostream_state_saver (1.20220623.0): - abseil/meta/type_traits - abseil/numeric/int128 - abseil/random/internal/nonsecure_base (1.20220623.0): - abseil/base/core_headers - abseil/container/inlined_vector - abseil/meta/type_traits - abseil/random/internal/pool_urbg - abseil/random/internal/salted_seed_seq - abseil/random/internal/seed_material - abseil/types/span - abseil/random/internal/pcg_engine (1.20220623.0): - abseil/base/config - abseil/meta/type_traits - abseil/numeric/bits - abseil/numeric/int128 - abseil/random/internal/fastmath - abseil/random/internal/iostream_state_saver - abseil/random/internal/platform (1.20220623.0): - abseil/base/config - abseil/random/internal/pool_urbg (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/raw_logging_internal - abseil/random/internal/randen - abseil/random/internal/seed_material - abseil/random/internal/traits - abseil/random/seed_gen_exception - abseil/types/span - abseil/random/internal/randen (1.20220623.0): - abseil/base/raw_logging_internal - abseil/random/internal/platform - abseil/random/internal/randen_hwaes - abseil/random/internal/randen_slow - abseil/random/internal/randen_engine (1.20220623.0): - abseil/base/endian - abseil/meta/type_traits - abseil/random/internal/iostream_state_saver - abseil/random/internal/randen - abseil/random/internal/randen_hwaes (1.20220623.0): - abseil/base/config - abseil/random/internal/platform - abseil/random/internal/randen_hwaes_impl - abseil/random/internal/randen_hwaes_impl (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/numeric/int128 - abseil/random/internal/platform - abseil/random/internal/randen_slow (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/numeric/int128 - abseil/random/internal/platform - abseil/random/internal/salted_seed_seq (1.20220623.0): - abseil/container/inlined_vector - abseil/meta/type_traits - abseil/random/internal/seed_material - abseil/types/optional - abseil/types/span - abseil/random/internal/seed_material (1.20220623.0): - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/raw_logging_internal - abseil/random/internal/fast_uniform_bits - abseil/strings/strings - abseil/types/optional - abseil/types/span - abseil/random/internal/traits (1.20220623.0): - abseil/base/config - abseil/numeric/bits - abseil/numeric/int128 - abseil/random/internal/uniform_helper (1.20220623.0): - abseil/base/config - abseil/meta/type_traits - abseil/numeric/int128 - abseil/random/internal/traits - abseil/random/internal/wide_multiply (1.20220623.0): - abseil/base/config - abseil/numeric/bits - abseil/numeric/int128 - abseil/random/internal/traits - abseil/random/random (1.20220623.0): - abseil/random/distributions - abseil/random/internal/nonsecure_base - abseil/random/internal/pcg_engine - abseil/random/internal/pool_urbg - abseil/random/internal/randen_engine - abseil/random/seed_sequences - abseil/random/seed_gen_exception (1.20220623.0): - abseil/base/config - abseil/random/seed_sequences (1.20220623.0): - abseil/base/config - abseil/random/internal/pool_urbg - abseil/random/internal/salted_seed_seq - abseil/random/internal/seed_material - abseil/random/seed_gen_exception - abseil/types/span - abseil/status/status (1.20220623.0): - abseil/base/atomic_hook - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/base/strerror - abseil/container/inlined_vector - abseil/debugging/stacktrace - abseil/debugging/symbolize - abseil/functional/function_ref - abseil/strings/cord - abseil/strings/str_format - abseil/strings/strings - abseil/types/optional - abseil/status/statusor (1.20220623.0): - abseil/base/base - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/meta/type_traits - abseil/status/status - abseil/strings/strings - abseil/types/variant - abseil/utility/utility - abseil/strings/cord (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/raw_logging_internal - abseil/container/fixed_array - abseil/container/inlined_vector - abseil/functional/function_ref - abseil/meta/type_traits - abseil/numeric/bits - abseil/strings/cord_internal - abseil/strings/cordz_functions - abseil/strings/cordz_info - abseil/strings/cordz_statistics - abseil/strings/cordz_update_scope - abseil/strings/cordz_update_tracker - abseil/strings/internal - abseil/strings/str_format - abseil/strings/strings - abseil/types/optional - abseil/types/span - abseil/strings/cord_internal (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/raw_logging_internal - abseil/base/throw_delegate - abseil/container/compressed_tuple - abseil/container/inlined_vector - abseil/container/layout - abseil/functional/function_ref - abseil/meta/type_traits - abseil/strings/strings - abseil/types/span - abseil/strings/cordz_functions (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/profiling/exponential_biased - abseil/strings/cordz_handle (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/raw_logging_internal - abseil/synchronization/synchronization - abseil/strings/cordz_info (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/container/inlined_vector - abseil/debugging/stacktrace - abseil/strings/cord_internal - abseil/strings/cordz_functions - abseil/strings/cordz_handle - abseil/strings/cordz_statistics - abseil/strings/cordz_update_tracker - abseil/synchronization/synchronization - abseil/types/span - abseil/strings/cordz_statistics (1.20220623.0): - abseil/base/config - abseil/strings/cordz_update_tracker - abseil/strings/cordz_update_scope (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/strings/cord_internal - abseil/strings/cordz_info - abseil/strings/cordz_update_tracker - abseil/strings/cordz_update_tracker (1.20220623.0): - abseil/base/config - abseil/strings/internal (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/raw_logging_internal - abseil/meta/type_traits - abseil/strings/str_format (1.20220623.0): - abseil/strings/str_format_internal - abseil/strings/str_format_internal (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/functional/function_ref - abseil/meta/type_traits - abseil/numeric/bits - abseil/numeric/int128 - abseil/numeric/representation - abseil/strings/strings - abseil/types/optional - abseil/types/span - abseil/utility/utility - abseil/strings/strings (1.20220623.0): - abseil/base/base - abseil/base/config - abseil/base/core_headers - abseil/base/endian - abseil/base/raw_logging_internal - abseil/base/throw_delegate - abseil/memory/memory - abseil/meta/type_traits - abseil/numeric/bits - abseil/numeric/int128 - abseil/strings/internal - abseil/synchronization/graphcycles_internal (1.20220623.0): - abseil/base/base - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/base/malloc_internal - abseil/base/raw_logging_internal - abseil/synchronization/kernel_timeout_internal (1.20220623.0): - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/time/time - abseil/synchronization/synchronization (1.20220623.0): - abseil/base/atomic_hook - abseil/base/base - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/base/dynamic_annotations - abseil/base/malloc_internal - abseil/base/raw_logging_internal - abseil/debugging/stacktrace - abseil/debugging/symbolize - abseil/synchronization/graphcycles_internal - abseil/synchronization/kernel_timeout_internal - abseil/time/time - abseil/time (1.20220623.0): - abseil/time/internal (= 1.20220623.0) - abseil/time/time (= 1.20220623.0) - abseil/time/internal (1.20220623.0): - abseil/time/internal/cctz (= 1.20220623.0) - abseil/time/internal/cctz (1.20220623.0): - abseil/time/internal/cctz/civil_time (= 1.20220623.0) - abseil/time/internal/cctz/time_zone (= 1.20220623.0) - abseil/time/internal/cctz/civil_time (1.20220623.0): - abseil/base/config - abseil/time/internal/cctz/time_zone (1.20220623.0): - abseil/base/config - abseil/time/internal/cctz/civil_time - abseil/time/time (1.20220623.0): - abseil/base/base - abseil/base/core_headers - abseil/base/raw_logging_internal - abseil/numeric/int128 - abseil/strings/strings - abseil/time/internal/cctz/civil_time - abseil/time/internal/cctz/time_zone - abseil/types (1.20220623.0): - abseil/types/any (= 1.20220623.0) - abseil/types/bad_any_cast (= 1.20220623.0) - abseil/types/bad_any_cast_impl (= 1.20220623.0) - abseil/types/bad_optional_access (= 1.20220623.0) - abseil/types/bad_variant_access (= 1.20220623.0) - abseil/types/compare (= 1.20220623.0) - abseil/types/optional (= 1.20220623.0) - abseil/types/span (= 1.20220623.0) - abseil/types/variant (= 1.20220623.0) - abseil/types/any (1.20220623.0): - abseil/base/config - abseil/base/core_headers - abseil/base/fast_type_id - abseil/meta/type_traits - abseil/types/bad_any_cast - abseil/utility/utility - abseil/types/bad_any_cast (1.20220623.0): - abseil/base/config - abseil/types/bad_any_cast_impl - abseil/types/bad_any_cast_impl (1.20220623.0): - abseil/base/config - abseil/base/raw_logging_internal - abseil/types/bad_optional_access (1.20220623.0): - abseil/base/config - abseil/base/raw_logging_internal - abseil/types/bad_variant_access (1.20220623.0): - abseil/base/config - abseil/base/raw_logging_internal - abseil/types/compare (1.20220623.0): - abseil/base/core_headers - abseil/meta/type_traits - abseil/types/optional (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/memory/memory - abseil/meta/type_traits - abseil/types/bad_optional_access - abseil/utility/utility - abseil/types/span (1.20220623.0): - abseil/algorithm/algorithm - abseil/base/core_headers - abseil/base/throw_delegate - abseil/meta/type_traits - abseil/types/variant (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/base/core_headers - abseil/meta/type_traits - abseil/types/bad_variant_access - abseil/utility/utility - abseil/utility/utility (1.20220623.0): - abseil/base/base_internal - abseil/base/config - abseil/meta/type_traits - AppAuth (1.6.2): - AppAuth/Core (= 1.6.2) - AppAuth/ExternalUserAgent (= 1.6.2) - AppAuth/Core (1.6.2) - AppAuth/ExternalUserAgent (1.6.2): - AppAuth/Core - BoringSSL-GRPC (0.0.24): - BoringSSL-GRPC/Implementation (= 0.0.24) - BoringSSL-GRPC/Interface (= 0.0.24) - BoringSSL-GRPC/Implementation (0.0.24): - BoringSSL-GRPC/Interface (= 0.0.24) - BoringSSL-GRPC/Interface (0.0.24) - CocoaLumberjack/Core (3.8.1) - CocoaLumberjack/Swift (3.8.1): - CocoaLumberjack/Core - Firebase/Auth (10.15.0): - Firebase/CoreOnly - FirebaseAuth (~> 10.15.0) - Firebase/CoreOnly (10.15.0): - FirebaseCore (= 10.15.0) - Firebase/Crashlytics (10.15.0): - Firebase/CoreOnly - FirebaseCrashlytics (~> 10.15.0) - Firebase/Firestore (10.15.0): - Firebase/CoreOnly - FirebaseFirestore (~> 10.15.0) - Firebase/Functions (10.15.0): - Firebase/CoreOnly - FirebaseFunctions (~> 10.15.0) - Firebase/Storage (10.15.0): - Firebase/CoreOnly - FirebaseStorage (~> 10.15.0) - FirebaseAppCheckInterop (10.15.0) - FirebaseAuth (10.15.0): - FirebaseAppCheckInterop (~> 10.0) - FirebaseCore (~> 10.0) - GoogleUtilities/AppDelegateSwizzler (~> 7.8) - GoogleUtilities/Environment (~> 7.8) - GTMSessionFetcher/Core (< 4.0, >= 2.1) - RecaptchaInterop (~> 100.0) - FirebaseAuthInterop (10.15.0) - FirebaseCore (10.15.0): - FirebaseCoreInternal (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/Logger (~> 7.8) - FirebaseCoreExtension (10.15.0): - FirebaseCore (~> 10.0) - FirebaseCoreInternal (10.15.0): - "GoogleUtilities/NSData+zlib (~> 7.8)" - FirebaseCrashlytics (10.15.0): - FirebaseCore (~> 10.5) - FirebaseInstallations (~> 10.0) - FirebaseSessions (~> 10.5) - GoogleDataTransport (~> 9.2) - GoogleUtilities/Environment (~> 7.8) - nanopb (< 2.30910.0, >= 2.30908.0) - PromisesObjC (~> 2.1) - FirebaseFirestore (10.15.0): - abseil/algorithm (~> 1.20220623.0) - abseil/base (~> 1.20220623.0) - abseil/container/flat_hash_map (~> 1.20220623.0) - abseil/memory (~> 1.20220623.0) - abseil/meta (~> 1.20220623.0) - abseil/strings/strings (~> 1.20220623.0) - abseil/time (~> 1.20220623.0) - abseil/types (~> 1.20220623.0) - FirebaseCore (~> 10.0) - "gRPC-C++ (~> 1.50.1)" - leveldb-library (~> 1.22) - nanopb (< 2.30910.0, >= 2.30908.0) - FirebaseFunctions (10.15.0): - FirebaseAppCheckInterop (~> 10.10) - FirebaseAuthInterop (~> 10.0) - FirebaseCore (~> 10.0) - FirebaseCoreExtension (~> 10.0) - FirebaseMessagingInterop (~> 10.0) - FirebaseSharedSwift (~> 10.0) - GTMSessionFetcher/Core (< 4.0, >= 2.1) - FirebaseInstallations (10.15.0): - FirebaseCore (~> 10.0) - GoogleUtilities/Environment (~> 7.8) - GoogleUtilities/UserDefaults (~> 7.8) - PromisesObjC (~> 2.1) - FirebaseMessagingInterop (10.15.0) - FirebaseSessions (10.15.0): - FirebaseCore (~> 10.5) - FirebaseCoreExtension (~> 10.0) - FirebaseInstallations (~> 10.0) - GoogleDataTransport (~> 9.2) - GoogleUtilities/Environment (~> 7.10) - nanopb (< 2.30910.0, >= 2.30908.0) - PromisesSwift (~> 2.1) - FirebaseSharedSwift (10.15.0) - FirebaseStorage (10.15.0): - FirebaseAppCheckInterop (~> 10.0) - FirebaseAuthInterop (~> 10.0) - FirebaseCore (~> 10.0) - FirebaseCoreExtension (~> 10.0) - GTMSessionFetcher/Core (< 4.0, >= 2.1) - GCDWebServer (3.5.4): - GCDWebServer/Core (= 3.5.4) - GCDWebServer/Core (3.5.4) - GoogleDataTransport (9.2.5): - GoogleUtilities/Environment (~> 7.7) - nanopb (< 2.30910.0, >= 2.30908.0) - PromisesObjC (< 3.0, >= 1.2) - GoogleSignIn (7.0.0): - AppAuth (~> 1.5) - GTMAppAuth (< 3.0, >= 1.3) - GTMSessionFetcher/Core (< 4.0, >= 1.1) - GoogleUtilities/AppDelegateSwizzler (7.11.5): - GoogleUtilities/Environment - GoogleUtilities/Logger - GoogleUtilities/Network - GoogleUtilities/Environment (7.11.5): - PromisesObjC (< 3.0, >= 1.2) - GoogleUtilities/Logger (7.11.5): - GoogleUtilities/Environment - GoogleUtilities/Network (7.11.5): - GoogleUtilities/Logger - "GoogleUtilities/NSData+zlib" - GoogleUtilities/Reachability - "GoogleUtilities/NSData+zlib (7.11.5)" - GoogleUtilities/Reachability (7.11.5): - GoogleUtilities/Logger - GoogleUtilities/UserDefaults (7.11.5): - GoogleUtilities/Logger - GRDB.swift (6.17.0): - GRDB.swift/standard (= 6.17.0) - GRDB.swift/standard (6.17.0) - "gRPC-C++ (1.50.1)": - "gRPC-C++/Implementation (= 1.50.1)" - "gRPC-C++/Interface (= 1.50.1)" - "gRPC-C++/Implementation (1.50.1)": - abseil/base/base (= 1.20220623.0) - abseil/base/core_headers (= 1.20220623.0) - abseil/cleanup/cleanup (= 1.20220623.0) - abseil/container/flat_hash_map (= 1.20220623.0) - abseil/container/flat_hash_set (= 1.20220623.0) - abseil/container/inlined_vector (= 1.20220623.0) - abseil/functional/any_invocable (= 1.20220623.0) - abseil/functional/bind_front (= 1.20220623.0) - abseil/functional/function_ref (= 1.20220623.0) - abseil/hash/hash (= 1.20220623.0) - abseil/memory/memory (= 1.20220623.0) - abseil/meta/type_traits (= 1.20220623.0) - abseil/random/random (= 1.20220623.0) - abseil/status/status (= 1.20220623.0) - abseil/status/statusor (= 1.20220623.0) - abseil/strings/cord (= 1.20220623.0) - abseil/strings/str_format (= 1.20220623.0) - abseil/strings/strings (= 1.20220623.0) - abseil/synchronization/synchronization (= 1.20220623.0) - abseil/time/time (= 1.20220623.0) - abseil/types/optional (= 1.20220623.0) - abseil/types/span (= 1.20220623.0) - abseil/types/variant (= 1.20220623.0) - abseil/utility/utility (= 1.20220623.0) - "gRPC-C++/Interface (= 1.50.1)" - gRPC-Core (= 1.50.1) - "gRPC-C++/Interface (1.50.1)" - gRPC-Core (1.50.1): - gRPC-Core/Implementation (= 1.50.1) - gRPC-Core/Interface (= 1.50.1) - gRPC-Core/Implementation (1.50.1): - abseil/base/base (= 1.20220623.0) - abseil/base/core_headers (= 1.20220623.0) - abseil/container/flat_hash_map (= 1.20220623.0) - abseil/container/flat_hash_set (= 1.20220623.0) - abseil/container/inlined_vector (= 1.20220623.0) - abseil/functional/any_invocable (= 1.20220623.0) - abseil/functional/bind_front (= 1.20220623.0) - abseil/functional/function_ref (= 1.20220623.0) - abseil/hash/hash (= 1.20220623.0) - abseil/memory/memory (= 1.20220623.0) - abseil/meta/type_traits (= 1.20220623.0) - abseil/random/random (= 1.20220623.0) - abseil/status/status (= 1.20220623.0) - abseil/status/statusor (= 1.20220623.0) - abseil/strings/cord (= 1.20220623.0) - abseil/strings/str_format (= 1.20220623.0) - abseil/strings/strings (= 1.20220623.0) - abseil/synchronization/synchronization (= 1.20220623.0) - abseil/time/time (= 1.20220623.0) - abseil/types/optional (= 1.20220623.0) - abseil/types/span (= 1.20220623.0) - abseil/types/variant (= 1.20220623.0) - abseil/utility/utility (= 1.20220623.0) - BoringSSL-GRPC (= 0.0.24) - gRPC-Core/Interface (= 1.50.1) - gRPC-Core/Interface (1.50.1) - GTMAppAuth (2.0.0): - AppAuth/Core (~> 1.6) - GTMSessionFetcher/Core (< 4.0, >= 1.5) - GTMSessionFetcher/Core (3.1.1) - KeychainAccess (4.2.2) - leveldb-library (1.22.2) - LGSideMenuController (3.1.2) - MBProgressHUD (1.2.0) - MenuItemKit (4.0.1) - nanopb (2.30909.0): - nanopb/decode (= 2.30909.0) - nanopb/encode (= 2.30909.0) - nanopb/decode (2.30909.0) - nanopb/encode (2.30909.0) - PromisesObjC (2.3.1) - PromisesSwift (2.3.1): - PromisesObjC (= 2.3.1) - RecaptchaInterop (100.0.0) - RSKPlaceholderTextView (6.1.0) - SKPhotoBrowser (7.0.0) - StepSlider (1.8.0) - SwiftyStoreKit (0.16.1) - SwipeCellKit (2.7.1) - ToastViewSwift (1.5.0) DEPENDENCIES: - CocoaLumberjack/Swift - Firebase/Auth - Firebase/Crashlytics - Firebase/Firestore - Firebase/Functions - Firebase/Storage - GCDWebServer - GoogleSignIn - GRDB.swift - KeychainAccess - LGSideMenuController (from `https://github.com/thomasdao/LGSideMenuController`, branch `master`) - MBProgressHUD - MenuItemKit - RSKPlaceholderTextView - SKPhotoBrowser (from `https://github.com/thomasdao/SKPhotoBrowser.git`, branch `master`) - StepSlider - SwiftyStoreKit - SwipeCellKit (from `https://github.com/thomasdao/SwipeCellKit.git`, branch `develop`) - ToastViewSwift SPEC REPOS: trunk: - abseil - AppAuth - BoringSSL-GRPC - CocoaLumberjack - Firebase - FirebaseAppCheckInterop - FirebaseAuth - FirebaseAuthInterop - FirebaseCore - FirebaseCoreExtension - FirebaseCoreInternal - FirebaseCrashlytics - FirebaseFirestore - FirebaseFunctions - FirebaseInstallations - FirebaseMessagingInterop - FirebaseSessions - FirebaseSharedSwift - FirebaseStorage - GCDWebServer - GoogleDataTransport - GoogleSignIn - GoogleUtilities - GRDB.swift - "gRPC-C++" - gRPC-Core - GTMAppAuth - GTMSessionFetcher - KeychainAccess - leveldb-library - MBProgressHUD - MenuItemKit - nanopb - PromisesObjC - PromisesSwift - RecaptchaInterop - RSKPlaceholderTextView - StepSlider - SwiftyStoreKit - ToastViewSwift EXTERNAL SOURCES: LGSideMenuController: :branch: master :git: https://github.com/thomasdao/LGSideMenuController SKPhotoBrowser: :branch: master :git: https://github.com/thomasdao/SKPhotoBrowser.git SwipeCellKit: :branch: develop :git: https://github.com/thomasdao/SwipeCellKit.git CHECKOUT OPTIONS: LGSideMenuController: :commit: e1aac2b9b441a81b69a662a22da75456140becbc :git: https://github.com/thomasdao/LGSideMenuController SKPhotoBrowser: :commit: 41c40f9789fa267b6faf6a19bc067411a28d32fd :git: https://github.com/thomasdao/SKPhotoBrowser.git SwipeCellKit: :commit: c7c6789181a890f817e41f8decd15f4002e6ce33 :git: https://github.com/thomasdao/SwipeCellKit.git SPEC CHECKSUMS: abseil: 926fb7a82dc6d2b8e1f2ed7f3a718bce691d1e46 AppAuth: 3bb1d1cd9340bd09f5ed189fb00b1cc28e1e8570 BoringSSL-GRPC: 3175b25143e648463a56daeaaa499c6cb86dad33 CocoaLumberjack: 5c7e64cdb877770859bddec4d3d5a0d7c9299df9 Firebase: 66043bd4579e5b73811f96829c694c7af8d67435 FirebaseAppCheckInterop: a8c555b1c2db1d9445e6c3a08a848167ddb7eb51 FirebaseAuth: a55ec5f7f8a5b1c2dd750235c1bb419bfb642445 FirebaseAuthInterop: b566e21e2bc5e44a4d44babc56d05a7e5c10493b FirebaseCore: 2cec518b43635f96afe7ac3a9c513e47558abd2e FirebaseCoreExtension: d3f1ea3725fb41f56e8fbfb29eeaff54e7ffb8f6 FirebaseCoreInternal: 2f4bee5ed00301b5e56da0849268797a2dd31fb4 FirebaseCrashlytics: a83f26fb922a3fe181eb738fb4dcf0c92bba6455 FirebaseFirestore: b4c0eaaf24efda5732ec21d9e6c788d083118ca6 FirebaseFunctions: e5a95bdd33077eefc3232381d24495ae66d3b1a7 FirebaseInstallations: cae95cab0f965ce05b805189de1d4c70b11c76fb FirebaseMessagingInterop: 83f7b1a363bfe30ec8bbff1aa708d38e9d456373 FirebaseSessions: ee59a7811bef4c15f65ef6472f3210faa293f9c8 FirebaseSharedSwift: 34b11d9e675e14ee55e160cb7645bba30a192d14 FirebaseStorage: 1d4be239ea32fb3c0f3680a6f2b706d6cabe37f2 GCDWebServer: 2c156a56c8226e2d5c0c3f208a3621ccffbe3ce4 GoogleDataTransport: 54dee9d48d14580407f8f5fbf2f496e92437a2f2 GoogleSignIn: b232380cf495a429b8095d3178a8d5855b42e842 GoogleUtilities: 13e2c67ede716b8741c7989e26893d151b2b2084 GRDB.swift: ce9da57719de2b5e786455ed99629506fcb19c98 "gRPC-C++": 0968bace703459fd3e5dcb0b2bed4c573dbff046 gRPC-Core: 17108291d84332196d3c8466b48f016fc17d816d GTMAppAuth: 99fb010047ba3973b7026e45393f51f27ab965ae GTMSessionFetcher: e8647203b65cee28c5f73d0f473d096653945e72 KeychainAccess: c0c4f7f38f6fc7bbe58f5702e25f7bd2f65abf51 leveldb-library: f03246171cce0484482ec291f88b6d563699ee06 LGSideMenuController: 0c7b155b0dbdf14bf8b88d5ac363c5fe1584bb23 MBProgressHUD: 3ee5efcc380f6a79a7cc9b363dd669c5e1ae7406 MenuItemKit: 1459920e984d823e1bcc858b7a964f94e6bfa0f6 nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431 PromisesObjC: c50d2056b5253dadbd6c2bea79b0674bd5a52fa4 PromisesSwift: 28dca69a9c40779916ac2d6985a0192a5cb4a265 RecaptchaInterop: 7d1a4a01a6b2cb1610a47ef3f85f0c411434cb21 RSKPlaceholderTextView: 52f26e643b6f9bbf16f45cd2bbe2181b6dfe090c SKPhotoBrowser: 6aaa8f232752e87c7e76bace183bead0a137097d StepSlider: 890db727e779fa99cb32afffc5887c1109e151f4 SwiftyStoreKit: 6b9c08810269f030586dac1fae8e75871a82e84a SwipeCellKit: 3972254a826da74609926daf59b08d6c72e619ea ToastViewSwift: 496ad7918636e6e275241a93c94d6f0a57d9afb6 PODFILE CHECKSUM: c48fb662ff4328a7bd3765f58731ab3746b2ba30 COCOAPODS: 1.12.1 ```
google-oss-bot commented 1 year ago

I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.

rizafran commented 1 year ago

Hi @thomasdao, it looks like your issue is duplicate of #11509. With this, please see the discussion there.

dconeybe commented 1 year ago

Hi @thomasdao, when you encountered this crash, were you using an Intel or ARM mac?

I'm asking because I'm not convinced that this is a duplicate of https://github.com/firebase/firebase-ios-sdk/issues/11509 since the stack trace, although it includes SecureChannelCredentials, appears to be a different crash. Also, https://github.com/firebase/firebase-ios-sdk/issues/11509 was only reproducible on iOS 12 (not to say that the crash will not occur on newer iOS versions, but we never saw the crash on iOS >12 versions).

dconeybe commented 1 year ago

@thomasdao Also, please tell me if this crash occurs in "Debug" builds, "Release" builds, or both.

thomasdao commented 1 year ago

Hi @dconeybe, the crash occurs on ARM Mac M1, on Debug build.

dconeybe commented 1 year ago

@thomasdao Thank you for the information.

Are you able to downgrade to Firestore 10.9.0? That version uses an older version of grpc any may not suffer from this crash. The newer version of grpc is known to cause a crash in ios 12, and could, theoretically, cause this crash as well.

dconeybe commented 1 year ago

@thomasdao According to Apple's release notes for Xcode 15, this might be a known issue. Could you try the workaround documented there? That is, "Bump the minimum deployment target to iOS 15, macOS 12, watchOS 8 or tvOS 15, or add -Wl,-ld_classic to the OTHER_LDFLAGS build setting."

https://developer.apple.com/documentation/xcode-release-notes/xcode-15-release-notes#Linking

image

thomasdao commented 1 year ago

Hi @dconeybe, I tried downgrading Firebase to 10.9.0 and the crash still occurs. If this is a known issue for Xcode (which is very likely), I'll wait for the next Xcode version and try again. For now, I still use Xcode 14.2 and it works fine with the latest Firebase 10.15.0.

dconeybe commented 1 year ago

Hi @thomasdao. Thanks for letting us know. Based on this information, your crash is definitely not a duplicate of https://github.com/firebase/firebase-ios-sdk/issues/11509. Since you have a workaround, I'm going to close this issue as "resolved". In the meantime, we'll see if we can reproduce on our end. Feel free to leave more comments, re-open the issue, or open a new issue if you run into other problems.

dconeybe commented 1 year ago

I've (finally) been able to reproduce this crash locally. It's also reproducible on an Intel MacBook Pro (not just on ARM). I used Xcode 15 with iOS Simulator of iPhone 6S with iOS 14.3. I've logged b/301426582 (visible to Googlers) to track the investigation. I've re-opened this issue and will close it once a fix is merged.

dconeybe commented 1 year ago

FYI: Specifying -Wl,-ld_classic in OTHER_LDFLAGS, as suggested in https://github.com/firebase/firebase-ios-sdk/issues/11829#issuecomment-1728192758 fixed the crash for me.

dconeybe commented 1 year ago

Also, setting the minimum deployment target to iOS 15, macOS 12, watchOS 8, and tvOS 15 will fix the crash, at the (obvious) cost of precluding running your app on those older OS versions.

dconeybe commented 1 year ago

I'll wait for the next Xcode version and try again.

@thomasdao To me it seems very unlikely that a future Xcode version will "fix" this. Based on the release notes, this breakage is "accepted" and the workaround of specifying -Wl,-ld_classic is only temporary. To adopt xcode 15 or newer you will need to use one of the two workarounds.

thomasdao commented 1 year ago

Thanks for the investigation :). My app currently supports until iOS 13, dropping to iOS 15 maybe a bit too drastic. I guess I can live with the workaround of specifying -Wl,-ld_classic in the Pods.

paulb777 commented 1 year ago

From the Xcode 15.1 beta release note:

ivkim commented 1 year ago

the -ld_classic seemed to work for making an iPad iOS 12.5 not crash when directly connected to Xcode. However, when published to the App Store with this linker flag set, we still encountered the same issue where the app would immediately close out. We had to revert to Xcode 14 to resolve this issue. Xcode 15.1 still seems to have this issue as we were also testing by creating Ad Hoc release builds distributed to ourselves.

paulb777 commented 1 year ago

Does it make a difference to use Firebase 10.16 (and grpc 1.49.1)?

ivkim commented 1 year ago

I tried both 10.16 and 10.9

dconeybe commented 1 year ago

@ivkim This could be a distinct crash from the one reported originally in this issue. Please open a brand new issue and fill out the issue template so that we can treat it as a distinct issue and investigate it accordingly.