When running carthage update we get an error saying: "Failed to read file or folder at
Looking at the release notes:
"Moved from Objective-C gRPC framework to gRPC C++. If you're manually tracking dependencies, the gRPC, gRPC-ProtoRPC, and gRPC-RxLibrary frameworks have been replaced with gRPC-C++."
Seems like something is not linked correctly?
Just run "carthage update".
Make sure that the frameworks that have been deleted in this release are no longer in your project.
The easiest approach might be to delete the Carthage directory before doing a clean carthage update
Deleted Carthage directory, but carthage update still stops at Failed to read file or folder at /Users/xxx/Carthage/Build/iOS/gRPC.framework.
Facing the same issue. Any solution?
Same issue here. Any idea how to fix it?
We're currently working with our release team to figure out the issue with the build.
I updated FirebaseFirestoreBinary.json with a 5.13.1 version that properly puts gRPCCertificates.bundle in its new FirebaseFirestore.framework location instead of the no longer used gRPC.framework.
Please update and let us know if it works.
Same error… :-(
I downgraded it to 5.12 and it worked. 👍
Same error… :-(
Is this happening with 5.13.1 as well?
I still get the same error
Cartfile
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json"
Log
> carthage update --no-use-binaries --platform iOS --cache-builds
*** Downloading binary-only framework FirebaseFirestoreBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json"
*** Downloading binary-only framework FirebaseAnalyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
*** Downloading binary-only framework FirebaseMessagingBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json"
*** Downloading binary-only framework FirebaseStorageBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json"
*** xcodebuild output can be found in /var/folders/y2/s8dpwncd1218nbnssnz92xt1rb51pv/T/carthage-xcodebuild.3OrR9K.log
*** Invalid cache found for FirebaseAnalyticsBinary, rebuilding with all downstream dependencies
*** No cache found for FirebaseFirestoreBinary, building with all downstream dependencies
*** No cache found for FirebaseMessagingBinary, building with all downstream dependencies
*** Invalid cache found for FirebaseStorageBinary, rebuilding with all downstream dependencies
*** Downloading binary-only framework FirebaseAnalyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
*** Downloading binary-only framework FirebaseFirestoreBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json"
*** Downloading binary-only framework FirebaseMessagingBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json"
*** Downloading FirebaseMessagingBinary.framework binary at "5.13.0"
*** Downloading binary-only framework FirebaseStorageBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json"
Failed to read file or folder at <redacted>Carthage/Build/iOS/gRPC.framework
@sauravexodus How do you downgrade? I've tried binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json" "5.12" but got Parse error: binary dependencies cannot have a git reference for the version specifier.
@jdanthinne Remove the version from Cartfile
Change in your Cartfile.resolved instead and then run carthage build FirebaseFirestoreBinary and so on.
I still get the same error
Cartfile
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json" binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json" binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json"Log
> carthage update --no-use-binaries --platform iOS --cache-builds *** Downloading binary-only framework FirebaseFirestoreBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json" *** Downloading binary-only framework FirebaseAnalyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" *** Downloading binary-only framework FirebaseMessagingBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json" *** Downloading binary-only framework FirebaseStorageBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json" *** xcodebuild output can be found in /var/folders/y2/s8dpwncd1218nbnssnz92xt1rb51pv/T/carthage-xcodebuild.3OrR9K.log *** Invalid cache found for FirebaseAnalyticsBinary, rebuilding with all downstream dependencies *** No cache found for FirebaseFirestoreBinary, building with all downstream dependencies *** No cache found for FirebaseMessagingBinary, building with all downstream dependencies *** Invalid cache found for FirebaseStorageBinary, rebuilding with all downstream dependencies *** Downloading binary-only framework FirebaseAnalyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" *** Downloading binary-only framework FirebaseFirestoreBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json" *** Downloading binary-only framework FirebaseMessagingBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json" *** Downloading FirebaseMessagingBinary.framework binary at "5.13.0" *** Downloading binary-only framework FirebaseStorageBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json" Failed to read file or folder at <redacted>Carthage/Build/iOS/gRPC.framework
@rs-georg Can you show me your Cartfile.resolved?
@sauravexodus
Good point! In the Cartfile.resolved it says 5.13.0 and not 5.13.1
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json" "5.13.0"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json" "5.13.0"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseMessagingBinary.json" "5.13.0"
binary "https://dl.google.com/dl/firebase/ios/carthage/FirebaseStorageBinary.json" "5.13.0"
Update
When I manually set it to 5.13.1 in the Cartfile.resolved and execute Carthage again the version is reset to 5.13.0 in the Cartfile.resolved.
@rs-georg Don't run carthage update then. Just run carthage build FirebaseAnalyticsBinary --platform iOS
I finally deleted my Carthage folder, then the Cartfile.resolved, and it's now taking the correct and latest version, and although it is a bit different (binary instead of binary-only) when loading.
*** Downloading binary-only framework FirebaseAuthBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAuthBinary.json"
*** Downloading binary-only framework FirebaseAnalyticsBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseAnalyticsBinary.json"
*** Downloading binary-only framework FirebaseFirestoreBinary at "https://dl.google.com/dl/firebase/ios/carthage/FirebaseFirestoreBinary.json"
*** Downloading FirebaseFirestoreBinary.framework binary at "5.13.1"
But still not building… Carthage is ok, but Xcode not (even after Clean Build):
error: /Users/xxx/Carthage/Build/iOS/gRPC.framework/gRPCCertificates.bundle: No such file or directory
It's because they removed the gRPC framework. Make sure you also remove its reference in the frameworks folder.
Is this gRPCCertificates.bundle still needed then (found it in the FirebaseFirestore.framework)?
Now I got a Could not find auto-linked framework 'Firebase'…
I think you should do a git reset --hard and go back to 5.12. I have verified that it works 👍
@jdanthinne Yes, the bundle is still necessary, please refer to the updated Carthage instructions. (To give some background on this, the certificates file is necessary for SSL to work. Previously, Firestore relied on Objective-C gRPC framework, which bundled that file. Now that Firestore switched to C++ gRPC framework, which for the time being doesn't bundle the certificates, the certificates are bundled with FirebaseFirestore.framework. Once gRPC-C++.framework bundles the certificates, we will use them and no longer bundle them with FIrestore).
Is this
gRPCCertificates.bundlestill needed then (found it in theFirebaseFirestore.framework)?
Now I got aCould not find auto-linked framework 'Firebase'…
Can you clarify, does this happen when you manually add that bundle to resources?
@var-const Sorry, that was 2 questions... the certificates file problem is ok. I’ve used the updated instructions.
But the auto-linked framework is not...
The auto-linked framework question sounds like a configuration issue. Make sure that Firebase.framework is deleted from the Link Binary With Libraries Build Phase.
It is deleted. It was already before updating to 5.13.0, and everything was compiling fine.
Anything in the log to indicate where the reference to the auto-linked 'Firebase' is coming from?
Ld /Users/jdanthinne/Développement/Swift/Apps/GroomService\ -\ Lab/build/GroomService.build/Release-iphoneos/Collecto.build/Objects-normal/armv7/Collecto normal armv7 (in target: Collecto)
cd /Users/jdanthinne/Développement/Swift/Apps/GroomService\ -\ Lab
export IPHONEOS_DEPLOYMENT_TARGET=9.0
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -L/Users/jdanthinne/Développement/Swift/Apps/GroomService\ -\ Lab/build/Release-iphoneos -F/Users/jdanthinne/Développement/Swift/Apps/GroomService\ -\ Lab/build/Release-iphoneos -F/Users/jdanthinne/Développement/Swift/Apps/GroomService\ -\ Lab -F/Users/jdanthinne/Développement/Swift/Apps/GroomService\ -\ Lab/Carthage/Build/iOS -filelist /Users/jdanthinne/Développement/Swift/Apps/GroomService\ -\ Lab/build/GroomService.build/Release-iphoneos/Collecto.build/Objects-normal/armv7/Collecto.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -miphoneos-version-min=9.0 -dead_strip -Xlinker -object_path_lto -Xlinker /Users/jdanthinne/Développement/Swift/Apps/GroomService\ -\ Lab/build/GroomService.build/Release-iphoneos/Collecto.build/Objects-normal/armv7/Collecto_lto.o -fembed-bitcode-marker -fobjc-link-runtime -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos -Xlinker -add_ast_path -Xlinker /Users/jdanthinne/Développement/Swift/Apps/GroomService\ -\ Lab/build/GroomService.build/Release-iphoneos/Collecto.build/Objects-normal/armv7/Collecto.swiftmodule -ObjC -framework CoreLocation -framework Moya -framework GSKStretchyHeaderView -framework Crashlytics -framework Siren -framework GoogleUtilities -framework Fabric -framework KDCircularProgress -framework Alamofire -framework OneSignal -framework RealmSwift -framework Result -framework GeoQueries -framework MapKit -framework GooglePlacesSearchController -framework SwiftRichString -framework FSPagerView -framework SwiftyJSON -framework SwiftSoup -framework CommonExtensions -framework Reachability -framework Realm -framework TTGTagCollectionView -framework FirebaseAnalytics -framework PhoneNumberKit -framework SKPhotoBrowser -framework FirebaseFirestore -framework GoogleAppMeasurement -framework FirebaseCore -framework Stripe -framework FirebaseAuth -framework FirebaseMessaging -framework FirebaseInstanceID -framework nanopb -framework BoringSSL -framework GTMSessionFetcher -framework leveldb-library -framework Protobuf -framework ESTabBarController -framework PKHUD -framework gRPC-Core -framework AlamofireImage -Xlinker -dependency_info -Xlinker /Users/jdanthinne/Développement/Swift/Apps/GroomService\ -\ Lab/build/GroomService.build/Release-iphoneos/Collecto.build/Objects-normal/armv7/Collecto_dependency_info.dat -o /Users/jdanthinne/Développement/Swift/Apps/GroomService\ -\ Lab/build/GroomService.build/Release-iphoneos/Collecto.build/Objects-normal/armv7/Collecto
ld: warning: Could not find auto-linked framework 'Firebase'
Undefined symbols for architecture armv7:
"grpc::ByteBuffer::Dump(std::__1::vector<grpc::Slice, std::__1::allocator<grpc::Slice> >*) const", referenced from:
firebase::firestore::remote::bridge::(anonymous namespace)::ConvertToNsData(grpc::ByteBuffer const&, NSError* __autoreleasing*) in FirebaseFirestore(remote_objc_bridge.o)
firebase::firestore::remote::bridge::(anonymous namespace)::ToHexString(grpc::ByteBuffer const&) in FirebaseFirestore(remote_objc_bridge.o)
"grpc::GenericStub::PrepareUnaryCall(grpc::ClientContext*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, grpc::ByteBuffer const&, grpc::CompletionQueue*)", referenced from:
firebase::firestore::remote::GrpcConnection::CreateUnaryCall(absl::string_view, firebase::firestore::auth::Token const&, grpc::ByteBuffer const&) in FirebaseFirestore(grpc_connection.o)
"grpc::CompletionQueue::AsyncNextInternal(void**, bool*, gpr_timespec)", referenced from:
grpc::CompletionQueue::Next(void**, bool*) in FirebaseFirestore(datastore.o)
"grpc::CompletionQueue::Shutdown()", referenced from:
firebase::firestore::remote::Datastore::Shutdown() in FirebaseFirestore(datastore.o)
"grpc::CreateChannel(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<grpc::ChannelCredentials> const&)", referenced from:
firebase::firestore::remote::GrpcConnection::CreateChannel() const in FirebaseFirestore(grpc_connection.o)
"grpc::Status::OK", referenced from:
grpc::Status grpc::internal::CallOpSendMessage::SendMessage<grpc::ByteBuffer>(grpc::ByteBuffer const&, grpc::WriteOptions) in FirebaseFirestore(grpc_stream.o)
"grpc::ChannelArguments::SetSslTargetNameOverride(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
firebase::firestore::remote::GrpcConnection::CreateChannel() const in FirebaseFirestore(grpc_connection.o)
"grpc::ChannelArguments::~ChannelArguments()", referenced from:
firebase::firestore::remote::GrpcConnection::CreateChannel() const in FirebaseFirestore(grpc_connection.o)
"grpc::InsecureChannelCredentials()", referenced from:
firebase::firestore::remote::GrpcConnection::CreateChannel() const in FirebaseFirestore(grpc_connection.o)
"grpc::ChannelArguments::ChannelArguments()", referenced from:
firebase::firestore::remote::GrpcConnection::CreateChannel() const in FirebaseFirestore(grpc_connection.o)
"grpc::GenericStub::PrepareCall(grpc::ClientContext*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, grpc::CompletionQueue*)", referenced from:
firebase::firestore::remote::GrpcConnection::CreateStream(absl::string_view, firebase::firestore::auth::Token const&, firebase::firestore::remote::GrpcStreamObserver*) in FirebaseFirestore(grpc_connection.o)
firebase::firestore::remote::GrpcConnection::CreateStreamingReader(absl::string_view, firebase::firestore::auth::Token const&, grpc::ByteBuffer const&) in FirebaseFirestore(grpc_connection.o)
"grpc::Channel::GetState(bool)", referenced from:
firebase::firestore::remote::GrpcConnection::EnsureActiveStub() in FirebaseFirestore(grpc_connection.o)
"grpc::CreateCustomChannel(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<grpc::ChannelCredentials> const&, grpc::ChannelArguments const&)", referenced from:
firebase::firestore::remote::GrpcConnection::CreateChannel() const in FirebaseFirestore(grpc_connection.o)
"grpc::ClientContext::AddMetadata(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
firebase::firestore::remote::GrpcConnection::CreateContext(firebase::firestore::auth::Token const&) const in FirebaseFirestore(grpc_connection.o)
"grpc::ClientContext::TryCancel()", referenced from:
firebase::firestore::remote::GrpcStream::Shutdown() in FirebaseFirestore(grpc_stream.o)
firebase::firestore::remote::GrpcUnaryCall::Shutdown() in FirebaseFirestore(grpc_unary_call.o)
"grpc::ByteBuffer::operator=(grpc::ByteBuffer const&)", referenced from:
firebase::firestore::remote::GrpcStream::MaybeWrite(absl::optional<firebase::firestore::remote::internal::BufferedWrite>) in FirebaseFirestore(grpc_stream.o)
firebase::firestore::remote::GrpcStream::WriteAndFinish(grpc::ByteBuffer&&) in FirebaseFirestore(grpc_stream.o)
grpc::Status grpc::internal::CallOpSendMessage::SendMessage<grpc::ByteBuffer>(grpc::ByteBuffer const&, grpc::WriteOptions) in FirebaseFirestore(grpc_stream.o)
"grpc::ByteBuffer::ByteBuffer(grpc::ByteBuffer const&)", referenced from:
std::__1::vector<grpc::ByteBuffer, std::__1::allocator<grpc::ByteBuffer> >::vector(std::__1::vector<grpc::ByteBuffer, std::__1::allocator<grpc::ByteBuffer> > const&) in FirebaseFirestore(datastore.o)
firebase::firestore::remote::internal::BufferedWriter::EnqueueWrite(grpc::ByteBuffer&&, grpc::WriteOptions const&) in FirebaseFirestore(grpc_stream.o)
firebase::firestore::remote::internal::BufferedWriter::TryStartWrite() in FirebaseFirestore(grpc_stream.o)
firebase::firestore::remote::GrpcStream::MaybeWrite(absl::optional<firebase::firestore::remote::internal::BufferedWrite>) in FirebaseFirestore(grpc_stream.o)
firebase::firestore::remote::GrpcStream::WriteAndFinish(grpc::ByteBuffer&&) in FirebaseFirestore(grpc_stream.o)
std::__1::deque<firebase::firestore::remote::internal::BufferedWrite, std::__1::allocator<firebase::firestore::remote::internal::BufferedWrite> >::push_back(firebase::firestore::remote::internal::BufferedWrite&&) in FirebaseFirestore(grpc_stream.o)
firebase::firestore::remote::GrpcUnaryCall::GrpcUnaryCall(std::__1::unique_ptr<grpc::ClientContext, std::__1::default_delete<grpc::ClientContext> >, std::__1::unique_ptr<grpc::ClientAsyncResponseReader<grpc::ByteBuffer>, std::__1::default_delete<grpc::ClientAsyncResponseReader<grpc::ByteBuffer> > >, firebase::firestore::util::AsyncQueue*, firebase::firestore::remote::GrpcConnection*, grpc::ByteBuffer const&) in FirebaseFirestore(grpc_unary_call.o)
...
"grpc::ClientContext::ClientContext()", referenced from:
absl::memory_internal::MakeUniqueResult<grpc::ClientContext>::scalar absl::make_unique<grpc::ClientContext>() in FirebaseFirestore(grpc_connection.o)
"grpc::AccessTokenCredentials(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
firebase::firestore::remote::GrpcConnection::CreateContext(firebase::firestore::auth::Token const&) const in FirebaseFirestore(grpc_connection.o)
"grpc::SslCredentials(grpc::SslCredentialsOptions const&)", referenced from:
firebase::firestore::remote::(anonymous namespace)::CreateSslCredentials(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in FirebaseFirestore(grpc_connection.o)
"grpc::ClientContext::~ClientContext()", referenced from:
firebase::firestore::remote::GrpcConnection::CreateContext(firebase::firestore::auth::Token const&) const in FirebaseFirestore(grpc_connection.o)
firebase::firestore::remote::GrpcConnection::CreateStream(absl::string_view, firebase::firestore::auth::Token const&, firebase::firestore::remote::GrpcStreamObserver*) in FirebaseFirestore(grpc_connection.o)
absl::memory_internal::MakeUniqueResult<firebase::firestore::remote::GrpcStream>::scalar absl::make_unique<firebase::firestore::remote::GrpcStream, std::__1::unique_ptr<grpc::ClientContext, std::__1::default_delete<grpc::ClientContext> >, std::__1::unique_ptr<grpc::ClientAsyncReaderWriter<grpc::ByteBuffer, grpc::ByteBuffer>, std::__1::default_delete<grpc::ClientAsyncReaderWriter<grpc::ByteBuffer, grpc::ByteBuffer> > >, firebase::firestore::util::AsyncQueue*&, firebase::firestore::remote::GrpcConnection*, firebase::firestore::remote::GrpcStreamObserver*&>(std::__1::unique_ptr<grpc::ClientContext, std::__1::default_delete<grpc::ClientContext> >&&, std::__1::unique_ptr<grpc::ClientAsyncReaderWriter<grpc::ByteBuffer, grpc::ByteBuffer>, std::__1::default_delete<grpc::ClientAsyncReaderWriter<grpc::ByteBuffer, grpc::ByteBuffer> > >&&, firebase::firestore::util::AsyncQueue*&&&, firebase::firestore::remote::GrpcConnection*&&, firebase::firestore::remote::GrpcStreamObserver*&&&) in FirebaseFirestore(grpc_connection.o)
firebase::firestore::remote::GrpcConnection::CreateUnaryCall(absl::string_view, firebase::firestore::auth::Token const&, grpc::ByteBuffer const&) in FirebaseFirestore(grpc_connection.o)
absl::memory_internal::MakeUniqueResult<firebase::firestore::remote::GrpcUnaryCall>::scalar absl::make_unique<firebase::firestore::remote::GrpcUnaryCall, std::__1::unique_ptr<grpc::ClientContext, std::__1::default_delete<grpc::ClientContext> >, std::__1::unique_ptr<grpc::ClientAsyncResponseReader<grpc::ByteBuffer>, std::__1::default_delete<grpc::ClientAsyncResponseReader<grpc::ByteBuffer> > >, firebase::firestore::util::AsyncQueue*&, firebase::firestore::remote::GrpcConnection*, grpc::ByteBuffer const&>(std::__1::unique_ptr<grpc::ClientContext, std::__1::default_delete<grpc::ClientContext> >&&, std::__1::unique_ptr<grpc::ClientAsyncResponseReader<grpc::ByteBuffer>, std::__1::default_delete<grpc::ClientAsyncResponseReader<grpc::ByteBuffer> > >&&, firebase::firestore::util::AsyncQueue*&&&, firebase::firestore::remote::GrpcConnection*&&, grpc::ByteBuffer const&&&) in FirebaseFirestore(grpc_connection.o)
firebase::firestore::remote::GrpcConnection::CreateStreamingReader(absl::string_view, firebase::firestore::auth::Token const&, grpc::ByteBuffer const&) in FirebaseFirestore(grpc_connection.o)
absl::memory_internal::MakeUniqueResult<firebase::firestore::remote::GrpcStreamingReader>::scalar absl::make_unique<firebase::firestore::remote::GrpcStreamingReader, std::__1::unique_ptr<grpc::ClientContext, std::__1::default_delete<grpc::ClientContext> >, std::__1::unique_ptr<grpc::ClientAsyncReaderWriter<grpc::ByteBuffer, grpc::ByteBuffer>, std::__1::default_delete<grpc::ClientAsyncReaderWriter<grpc::ByteBuffer, grpc::ByteBuffer> > >, firebase::firestore::util::AsyncQueue*&, firebase::firestore::remote::GrpcConnection*, grpc::ByteBuffer const&>(std::__1::unique_ptr<grpc::ClientContext, std::__1::default_delete<grpc::ClientContext> >&&, std::__1::unique_ptr<grpc::ClientAsyncReaderWriter<grpc::ByteBuffer, grpc::ByteBuffer>, std::__1::default_delete<grpc::ClientAsyncReaderWriter<grpc::ByteBuffer, grpc::ByteBuffer> > >&&, firebase::firestore::util::AsyncQueue*&&&, firebase::firestore::remote::GrpcConnection*&&, grpc::ByteBuffer const&&&) in FirebaseFirestore(grpc_connection.o)
...
"grpc::g_glip", referenced from:
grpc::GrpcLibraryCodegen::~GrpcLibraryCodegen() in FirebaseFirestore(FSTDatastore.o)
grpc::GrpcLibraryCodegen::GrpcLibraryCodegen(bool) in FirebaseFirestore(datastore.o)
"grpc::g_core_codegen_interface", referenced from:
grpc::CompletionQueue::~CompletionQueue() in FirebaseFirestore(FSTDatastore.o)
grpc::GrpcLibraryCodegen::~GrpcLibraryCodegen() in FirebaseFirestore(FSTDatastore.o)
grpc::ByteBuffer::~ByteBuffer() in FirebaseFirestore(write_stream.o)
grpc::CompletionQueue::Next(void**, bool*) in FirebaseFirestore(datastore.o)
grpc::CompletionQueue::CompletionQueue(grpc_completion_queue_attributes const&) in FirebaseFirestore(datastore.o)
grpc::GrpcLibraryCodegen::GrpcLibraryCodegen(bool) in FirebaseFirestore(datastore.o)
grpc::ClientAsyncReaderWriter<grpc::ByteBuffer, grpc::ByteBuffer>::Write(grpc::ByteBuffer const&, grpc::WriteOptions, void*) in FirebaseFirestore(grpc_stream.o)
...
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Here's my take on the current state of this bug:
1) The binary build of Firestore from Firebase 5.13.0 included a bad gRPC.framework that just included just a roots.pem file but no actual framework binary, which caused the error in the title.
2) The binary build of Firestore from Firebase 5.13.1 corrected this issue.
3) The autolink problem may remain, but I can't see any trace of it in the frameworks we're shipping. There must be some configuration problem with the project or with other frameworks you're including. I'm looking at this:
otool -arch armv7 -l FirebaseFirestore.framework/FirebaseFirestore | less
then looking for LC_LINKER_OPTION in that output. Here are the autolinked frameworks for the FirebaseFirestore framework:
Load command 4
cmd LC_LINKER_OPTION
cmdsize 36
count 2
string #1 -framework
string #2 Foundation
Load command 5
cmd LC_LINKER_OPTION
cmdsize 36
count 2
string #1 -framework
string #2 CFNetwork
Load command 6
cmd LC_LINKER_OPTION
cmdsize 32
count 2
string #1 -framework
string #2 Security
Load command 7
cmd LC_LINKER_OPTION
cmdsize 40
count 2
string #1 -framework
string #2 CoreFoundation
(i.e. Firestore autolinks Foundation, CFNetwork, Security, and CoreFoundation)
If this is still an issue, please let us know, but for now I think we've addressed the packaging problem at the root of this issue.
Most helpful comment