Reputation: 229
I have Build webRTC and My App Accessing WebRTC API through another static library viz. LibB When I link LibB with my application and build it , it fails with below log: **** I have build WebRTC against AMD64/ARMv7** Undefined symbols for architecture arm64:
Undefined symbols for architecture arm64:
"webrtc::FIRFilterNEON::FIRFilterNEON(float const*, unsigned long, unsigned long)", referenced from:
webrtc::FIRFilter::Create(float const*, unsigned long, unsigned long) in LibB.a(fir_filter.o)
"vtable for webrtc::DenoiserFilterNEON", referenced from:
webrtc::DenoiserFilterNEON::DenoiserFilterNEON() in LibB.a(denoiser_filter.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"webrtc::SincResampler::Convolve_NEON(float const*, float const*, float const*, double)", referenced from:
webrtc::SincResampler::Resample(unsigned long, float*) in LibB.a(sinc_resampler.o)
"_WebRtcNsx_NoiseEstimationNeon", referenced from:
l008 in LibB.a(nsx_core.o)
"_SHA1_Final", referenced from:
_sctp_sha1_final in LibB.a(sctp_sha1.o)
"_EVP_MD_CTX_copy", referenced from:
_hmac_start in LibB.a(hmac_ossl.o)
"_EVP_DigestInit", referenced from:
l002 in LibB.a(hmac_ossl.o)
"_EVP_EncryptUpdate", referenced from:
_aes_icm_openssl_encrypt in LibB.a(aes_icm_ossl.o)
"_EVP_EncryptFinal_ex", referenced from:
_aes_icm_openssl_encrypt in LibB.a(aes_icm_ossl.o)
"_EVP_aes_256_ctr", referenced from:
_aes_icm_openssl_set_iv in LibB.a(aes_icm_ossl.o)
"_EVP_aes_128_ctr", referenced from:
_aes_icm_openssl_set_iv in LibB.a(aes_icm_ossl.o)
"_EVP_EncryptInit_ex", referenced from:
_aes_icm_openssl_set_iv in LibB.a(aes_icm_ossl.o)
"_EVP_aes_256_gcm", referenced from:
_aes_gcm_openssl_set_iv in LibB.a(aes_gcm_ossl.o)
"_EVP_DigestFinal", referenced from:
l004 in LibB.a(hmac_ossl.o)
"_EVP_aes_128_gcm", referenced from:
_aes_gcm_openssl_set_iv in LibB.a(aes_gcm_ossl.o)
"_EVP_CIPHER_CTX_cleanup", referenced from:
_aes_gcm_openssl_dealloc in LibB.a(aes_gcm_ossl.o)
_aes_gcm_openssl_context_init in LibB.a(aes_gcm_ossl.o)
_aes_icm_openssl_dealloc in LibB.a(aes_icm_ossl.o)
_aes_icm_openssl_context_init in LibB.a(aes_icm_ossl.o)
"_EVP_CIPHER_CTX_init", referenced from:
_aes_gcm_openssl_alloc in LibB.a(aes_gcm_ossl.o)
_aes_icm_openssl_alloc in LibB.a(aes_icm_ossl.o)
"google::protobuf::internal::WireFormatLite::WriteBytes(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::audioproc::ReverseStream::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(debug.pb.o)
webrtc::audioproc::Stream::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(debug.pb.o)
"google::protobuf::io::CodedInputStream::PopLimit(int)", referenced from:
bool google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline<unsigned int, (google::protobuf::internal::WireFormatLite::FieldType)13>(google::protobuf::io::CodedInputStream*, google::protobuf::RepeatedField<unsigned int>*) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::internal::WireFormatLite::WriteStringMaybeAliased(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::rtclog::DecoderConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpHeaderExtension::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::EncoderConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::audioproc::Config::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(debug.pb.o)
"google::protobuf::internal::WireFormatLite::WriteInt32(int, int, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::rtclog::BwePacketLossEvent::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::DecoderConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpHeaderExtension::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtxConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtxMap::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoSendConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::EncoderConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::internal::WireFormatLite::WriteUInt32(int, unsigned int, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::rtclog::RtpPacket::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::BwePacketLossEvent::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoReceiveConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtxConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoSendConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioReceiveConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::internal::WireFormatLite::ReadBytes(google::protobuf::io::CodedInputStream*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)", referenced from:
webrtc::rtclog::RtpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
google::protobuf::internal::WireFormatLite::ReadString(google::protobuf::io::CodedInputStream*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*) in LibB.a(rtc_event_log.pb.o)
webrtc::audioproc::ReverseStream::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(debug.pb.o)
webrtc::audioproc::Stream::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(debug.pb.o)
"google::protobuf::MessageLite::InitializationErrorString() const", referenced from:
vtable for webrtc::rtclog::EventStream in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::Event in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::RtpPacket in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::RtcpPacket in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::AudioPlayoutEvent in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::BwePacketLossEvent in LibB.a(rtc_event_log.pb.o)
vtable for webrtc::rtclog::VideoReceiveConfig in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::internal::ArenaStringPtr::AssignWithDefault(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*, google::protobuf::internal::ArenaStringPtr)", referenced from:
webrtc::rtclog::RtpPacket::MergeFrom(webrtc::rtclog::RtpPacket const&) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::MergeFrom(webrtc::rtclog::RtcpPacket const&) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::DecoderConfig::MergeFrom(webrtc::rtclog::DecoderConfig const&) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpHeaderExtension::MergeFrom(webrtc::rtclog::RtpHeaderExtension const&) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::EncoderConfig::MergeFrom(webrtc::rtclog::EncoderConfig const&) in LibB.a(rtc_event_log.pb.o)
webrtc::audioproc::ReverseStream::MergeFrom(webrtc::audioproc::ReverseStream const&) in LibB.a(debug.pb.o)
webrtc::audioproc::Stream::MergeFrom(webrtc::audioproc::Stream const&) in LibB.a(debug.pb.o)
...
"google::protobuf::internal::WireFormatLite::WriteInt64(int, long long, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::rtclog::Event::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
"google::protobuf::io::CodedInputStream::DecrementRecursionDepthAndPopLimit(int)", referenced from:
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::RtpPacket>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtpPacket*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::RtcpPacket>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtcpPacket*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::AudioPlayoutEvent>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::AudioPlayoutEvent*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::BwePacketLossEvent>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::BwePacketLossEvent*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::VideoReceiveConfig>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::VideoReceiveConfig*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::VideoSendConfig>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::VideoSendConfig*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual<webrtc::rtclog::AudioReceiveConfig>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::AudioReceiveConfig*) in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::io::CodedInputStream::PushLimit(int)", referenced from:
bool google::protobuf::internal::WireFormatLite::ReadPackedPrimitiveNoInline<unsigned int, (google::protobuf::internal::WireFormatLite::FieldType)13>(google::protobuf::io::CodedInputStream*, google::protobuf::RepeatedField<unsigned int>*) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::io::CodedOutputStream::VarintSize64(unsigned long long)", referenced from:
google::protobuf::internal::WireFormatLite::Int64Size(long long) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::io::CodedOutputStream::WriteVarint32SlowPath(unsigned int)", referenced from:
google::protobuf::io::CodedOutputStream::WriteVarint32(unsigned int) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::internal::ArenaStringPtr::MutableNoArena(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*)", referenced from:
webrtc::rtclog::EventStream::mutable_unknown_fields() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::Event::mutable_unknown_fields() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::mutable_header() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::mutable_unknown_fields() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::mutable_packet_data() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::mutable_unknown_fields() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::mutable_unknown_fields() in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::io::CodedOutputStream::WriteRaw(void const*, int)", referenced from:
webrtc::rtclog::EventStream::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::Event::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::BwePacketLossEvent::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoReceiveConfig::SerializeWithCachedSizes(google::protobuf::io::CodedOutputStream*) const in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::io::CodedInputStream::ReadLengthAndPushLimit()", referenced from:
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::Event>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::Event*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::RtxMap>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtxMap*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::RtpHeaderExtension>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtpHeaderExtension*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::DecoderConfig>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::DecoderConfig*) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::internal::LogMessage::operator<<(int)", referenced from:
l003 in LibB.a(rtc_event_log.pb.o)
l003 in LibB.a(debug.pb.o)
"google::protobuf::io::CodedInputStream::CheckEntireMessageConsumedAndPopLimit(int)", referenced from:
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::Event>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::Event*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::RtxMap>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtxMap*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::RtpHeaderExtension>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::RtpHeaderExtension*) in LibB.a(rtc_event_log.pb.o)
bool google::protobuf::internal::WireFormatLite::ReadMessageNoVirtualNoRecursionDepth<webrtc::rtclog::DecoderConfig>(google::protobuf::io::CodedInputStream*, webrtc::rtclog::DecoderConfig*) in LibB.a(rtc_event_log.pb.o)
"google::protobuf::io::CodedOutputStream::CodedOutputStream(google::protobuf::io::ZeroCopyOutputStream*, bool)", referenced from:
webrtc::rtclog::EventStream::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::Event::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::BwePacketLossEvent::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoReceiveConfig::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
...
"google::protobuf::internal::ArenaStringPtr::DestroyNoArena(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const*)", referenced from:
webrtc::rtclog::EventStream::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::Event::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::BwePacketLossEvent::SharedDtor() in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoReceiveConfig::SharedDtor() in LibB.a(rtc_event_log.pb.o)
...
"_SHA1_Init", referenced from:
_sctp_sha1_init in LibB.a(sctp_sha1.o)
"vtable for google::protobuf::MessageLite", referenced from:
google::protobuf::MessageLite::MessageLite() in LibB.a(rtc_event_log.pb.o)
NOTE: a missing vtable usually means the first non-inline virtual member function has no definition.
"google::protobuf::GoogleOnceInit(long*, void (*)())", referenced from:
webrtc::rtclog::protobuf_AddDesc_rtc_5fevent_5flog_2eproto() in LibB.a(rtc_event_log.pb.o)
webrtc::audioproc::protobuf_AddDesc_debug_2eproto() in LibB.a(debug.pb.o)
"google::protobuf::internal::OnShutdown(void (*)())", referenced from:
webrtc::rtclog::protobuf_AddDesc_rtc_5fevent_5flog_2eproto_impl() in LibB.a(rtc_event_log.pb.o)
webrtc::audioproc::protobuf_AddDesc_debug_2eproto_impl() in LibB.a(debug.pb.o)
"google::protobuf::MessageLite::SerializeAsString() const", referenced from:
webrtc::AudioProcessingImpl::WriteConfigMessage(bool) in LibB.a(audio_processing_impl.o)
"google::protobuf::io::CodedOutputStream::VarintSize32Fallback(unsigned int)", referenced from:
google::protobuf::io::CodedOutputStream::VarintSize32(unsigned int) in LibB.a(rtc_event_log.pb.o)
"_WebRtcSpl_CrossCorrelationNeon", referenced from:
l004 in LibB.a(spl_init.o)
"google::protobuf::internal::WireFormatLite::SkipField(google::protobuf::io::CodedInputStream*, unsigned int, google::protobuf::io::CodedOutputStream*)", referenced from:
webrtc::rtclog::EventStream::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::Event::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::RtcpPacket::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::AudioPlayoutEvent::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::BwePacketLossEvent::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
webrtc::rtclog::VideoReceiveConfig::MergePartialFromCodedStream(google::protobuf::io::CodedInputStream*) in LibB.a(rtc_event_log.pb.o)
...
"_X509_set_pubkey", referenced from:
l004 in LibB.a(opensslidentity.o)
"_WebRtcSpl_MinValueW16Neon", referenced from:
l004 in LibB.a(spl_init.o)
I am new to webRTC and spent more time in solving this ..any help would highly be appreciated
Thanks
Upvotes: 0
Views: 1410
Reputation:
Try setting "Enable Bitcode" = "No"
Goto Targers-> Setting ->Build Options ->Enable BitCode = No
Upvotes: 3
Reputation: 2460
Have you tried using CocoaPods? In my project I'm using CocoaPods for WebRTC.
Simply put that in your Podfile and follow by pod install
and you are good to go!
Upvotes: 0
Reputation: 1639
You have to generate the framework for arm64 and arm at the same time
Use these commands:
gn gen out/Debug-device --args='target_os="ios" target_cpu="x64" is_component_build=false additional_target_cpus=["arm", "arm64"] enable_dsyms=true ios_enable_code_signing = false'
ninja -C out/Debug-device rtc_sdk_framework_objc
Upvotes: 0
Reputation: 2643
You can generate WebRTC Framework with "webrtc/build/ios/build_ios_libs.sh" script.
Or you can try my framework
You need to link this framework to Xcode project, in Embedded Binaries.
Upvotes: 0