Sanjay Shrivastava
Sanjay Shrivastava

Reputation: 229

WebRTC Integration with iOS App

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

Answers (4)

user1512157
user1512157

Reputation:

Try setting "Enable Bitcode" = "No"

Goto Targers-> Setting ->Build Options ->Enable BitCode = No

Upvotes: 3

Fan Jin
Fan Jin

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

Pablo Martinez
Pablo Martinez

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

Ajay
Ajay

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

Related Questions