Closed russellf9 closed 9 years ago
Take 2
I reinstalled the PhoneRTC Plugin
,
cordova plugin add https://github.com/alongubkin/phonertc.git
A bug in my browser app was fixed, so I'm guessing this plug-in is required.
But when build for iOS ( in Xcode ) I had the following failure:
Ld /Users/russellwenban/Library/Developer/Xcode/DerivedData/f9-Ionic-Webrtc-clahytlqpjfccscximpncawjdbez/Build/Products/Debug-iphoneos/f9-Ionic-Webrtc.app/f9-Ionic-Webrtc normal armv7
cd /Users/russellwenban/localhosts/www.factornine.co.uk/development/ionic-webrtc/platforms/ios
export IPHONEOS_DEPLOYMENT_TARGET=7.1
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -arch armv7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk -L/Users/russellwenban/Library/Developer/Xcode/DerivedData/f9-Ionic-Webrtc-clahytlqpjfccscximpncawjdbez/Build/Products/Debug-iphoneos -L/Users/russellwenban/localhosts/www.factornine.co.uk/development/ionic-webrtc/platforms/ios/f9-Ionic-Webrtc/Plugins/com.onsip.cordova -L/Users/russellwenban/localhosts/www.factornine.co.uk/development/ionic-webrtc/platforms/ios/f9-Ionic-Webrtc/Plugins/com.dooble.phonertc -F/Users/russellwenban/Library/Developer/Xcode/DerivedData/f9-Ionic-Webrtc-clahytlqpjfccscximpncawjdbez/Build/Products/Debug-iphoneos -filelist /Users/russellwenban/Library/Developer/Xcode/DerivedData/f9-Ionic-Webrtc-clahytlqpjfccscximpncawjdbez/Build/Intermediates/f9-Ionic-Webrtc.build/Debug-iphoneos/f9-Ionic-Webrtc.build/Objects-normal/armv7/f9-Ionic-Webrtc.LinkFileList -Xlinker -rpath -Xlinker @executable_path/Frameworks -dead_strip -weak_framework CoreFoundation -weak_framework UIKit -weak_framework AVFoundation -weak_framework CoreMedia -weak-lSystem -ObjC -fobjc-arc -fobjc-link-runtime -miphoneos-version-min=7.1 -framework AssetsLibrary /Users/russellwenban/Library/Developer/Xcode/DerivedData/f9-Ionic-Webrtc-clahytlqpjfccscximpncawjdbez/Build/Products/Debug-iphoneos/libCordova.a -framework CoreGraphics -framework MobileCoreServices -lstdc++ -lsqlite3.0 -framework OpenGLES -framework CoreVideo -framework CoreMedia -framework CoreAudio -framework AVFoundation -framework QuartzCore -framework CoreLocation -framework AudioToolbox -framework GLKit -ljingle -ljingle_sound -lwebrtc_base -weak_framework ImageIO -ljingle_p2p -l_core_neon_offsets -laudio_coding_module -laudio_conference_mixer -laudio_device -laudio_processing_neon -laudio_processing -lbitrate_controller -lCNG -lcommon_audio_neon -lcommon_audio -lcommon_video -lcrnspr -lcrnss -lcrnssckbi -lcrssl -lexpat -lfield_trial_default -lG711 -lG722 -licudata -licui18n -licuuc -liLBC -lisac_neon -liSAC -liSACFix -ljingle_media -ljingle_peerconnection_objc -ljingle_peerconnection -ljsoncpp -lmedia_file -lneteq -lnss_static -lmetrics_default -lrtc_p2p -lwebrtc_vp9 -lrtc_xmpp -lopus -lpaced_sender -lPCM16B -lrbe_components -lremote_bitrate_estimator -lrtc_base_approved -lrtc_base -lrtc_sound -lrtc_xmllite -lrtp_rtcp -lsqlite_regexp -lsrtp -lsystem_wrappers -lusrsctplib -lvideo_capture_module_internal_impl -lvideo_capture_module -lvideo_coding_utility -lvideo_engine_core -lvideo_processing -lvideo_render_module_internal_impl -lvideo_render_module -lvoice_engine -lvpx_asm_offsets_vp8 -lvpx_asm_offsets_vpx_scale -lvpx -lwebrtc_common -lwebrtc_i420 -lwebrtc_opus -lwebrtc_utility -lwebrtc_video_coding -lwebrtc_vp8 -lwebrtc -lyuv_neon -lyuv -lc++ -Xlinker -dependency_info -Xlinker /Users/russellwenban/Library/Developer/Xcode/DerivedData/f9-Ionic-Webrtc-clahytlqpjfccscximpncawjdbez/Build/Intermediates/f9-Ionic-Webrtc.build/Debug-iphoneos/f9-Ionic-Webrtc.build/Objects-normal/armv7/f9-Ionic-Webrtc_dependency_info.dat -o /Users/russellwenban/Library/Developer/Xcode/DerivedData/f9-Ionic-Webrtc-clahytlqpjfccscximpncawjdbez/Build/Products/Debug-iphoneos/f9-Ionic-Webrtc.app/f9-Ionic-Webrtc
ld: warning: directory not found for option '-L/Users/russellwenban/localhosts/www.factornine.co.uk/development/ionic-webrtc/platforms/ios/f9-Ionic-Webrtc/Plugins/com.dooble.phonertc'
ld: library not found for -lmetrics_default
clang: error: linker command failed with exit code 1 (use -v to see invocation)
This plugin is forked from phonertc and does not actually require that you include it. You should be able to just follow the instructions in our readme to get yourself setup and started.
Hi Eric thanks for the quick response.
I'm just in the process of removing the PhoneRTC
plugin.
I assume the xcodeproj settings have to be set the same as defined in the Installation from the original PhoneRTC plugin?
Took a bit time to re-install but when I ran 'cordova run` the build failed with errors:
for example:
Undefined symbols for architecture armv7:
"std::_List_node_base::reverse()", referenced from:
std::list<webrtc::Packet*, std::allocator<webrtc::Packet*> >::reverse() in libneteq.a(neteq.payload_splitter.o)
"std::ostream::operator<<(short)", referenced from:
webrtc::NetEqImpl::DecodeLoop(std::list<webrtc::Packet*, std::allocator<webrtc::Packet*> >*, webrtc::Operations*, webrtc::AudioDecoder*, int*, webrtc::AudioDecoder::SpeechType*) in libneteq.a(neteq.neteq_impl.o)
"std::_Rb_tree_decrement(std::_Rb_tree_node_base const*)", referenced from:
std::_Rb_tree_const_iterator<unsigned short>::operator--() in libwebrtc_video_coding.a(webrtc_video_coding.jitter_buffer.o)
std::_Rb_tree_const_iterator<std::pair<unsigned int const, webrtc::VCMFrameBuffer*> >::operator--() in libwebrtc_video_coding.a(webrtc_video_coding.jitter_buffer.o)
"std::string::append(unsigned long, char)", referenced from:
rtc::HttpParseAttributes(char const*, unsigned long, std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >&) in libwebrtc_base.a(webrtc_base.httpcommon.o)
"std::_List_node_base::transfer(std::_List_node_base*, std::_List_node_base*)", referenced from:
std::list<webrtc::RtpRtcp*, std::allocator<webrtc::RtpRtcp*> >::_M_transfer(std::_List_iterator<webrtc::RtpRtcp*>, std::_List_iterator<webrtc::RtpRtcp*>, std::_List_iterator<webrtc::RtpRtcp*>) in libvideo_engine_core.a(video_engine_core.vie_receiver.o)
std::list<webrtc::MixerParticipant*, std::allocator<webrtc::MixerParticipant*> >::_M_transfer(std::_List_iterator<webrtc::MixerParticipant*>, std::_List_iterator<webrtc::MixerParticipant*>, std::_List_iterator<webrtc::MixerParticipant*>) in libaudio_conference_mixer.a(audio_conference_mixer.audio_conference_mixer_impl.o)
std::list<webrtc::VCMPacket, std::allocator<webrtc::VCMPacket> >::_M_transfer(std::_List_iterator<webrtc::VCMPacket>, std::_List_iterator<webrtc::VCMPacket>, std::_List_iterator<webrtc::VCMPacket>) in libwebrtc_video_coding.a(webrtc_video_coding.frame_buffer.o)
std::list<webrtc::FecPacket*, std::allocator<webrtc::FecPacket*> >::_M_transfer(std::_List_iterator<webrtc::FecPacket*>, std::_List_iterator<webrtc::FecPacket*>, std::_List_iterator<webrtc::FecPacket*>) in librtp_rtcp.a(rtp_rtcp.forward_error_correction.o)
std::list<webrtc::ForwardErrorCorrection::RecoveredPacket*, std::allocator<webrtc::ForwardErrorCorrection::RecoveredPacket*> >::_M_transfer(std::_List_iterator<webrtc::ForwardErrorCorrection::RecoveredPacket*>, std::_List_iterator<webrtc::ForwardErrorCorrection::RecoveredPacket*>, std::_List_iterator<webrtc::ForwardErrorCorrection::RecoveredPacket*>) in librtp_rtcp.a(rtp_rtcp.forward_error_correction.o)
std::list<webrtc::DtmfEvent, std::allocator<webrtc::DtmfEvent> >::_M_transfer(std::_List_iterator<webrtc::DtmfEvent>, std::_List_iterator<webrtc::DtmfEvent>, std::_List_iterator<webrtc::DtmfEvent>) in libneteq.a(neteq.dtmf_buffer.o)
std::list<webrtc::Packet*, std::allocator<webrtc::Packet*> >::_M_transfer(std::_List_iterator<webrtc::Packet*>, std::_List_iterator<webrtc::Packet*>, std::_List_iterator<webrtc::Packet*>) in libneteq.a(neteq.payload_splitter.o)
...
"std::istream::get(char&)", referenced from:
cricket::YuvFrameGenerator::DrawBarcode(unsigned int) in libjingle_media.a(libjingle_media.yuvframegenerator.o)
cricket::ComputeBarcodeDigits(unsigned int, std::basic_stringstream<char, std::char_traits<char>, std::allocator<char> >*) in libjingle_media.a(libjingle_media.yuvframegenerator.o)
"std::string::operator+=(char)", referenced from:
cricket::ComputeStunCredentialHash(std::string const&, std::string const&, std::string const&, std::string*) in libjingle_p2p.a(libjingle_p2p.stun.o)
"std::string::insert(unsigned long, std::string const&)", referenced from:
cricket::StunMessage::Read(rtc::ByteBuffer*) in libjingle_p2p.a(libjingle_p2p.stun.o)
"std::string::append(std::string const&)", referenced from:
webrtc::SdpSerialize(webrtc::JsepSessionDescription const&) in libjingle_peerconnection.a(libjingle_peerconnection.webrtcsdp.o)
webrtc::AddLine(std::string const&, std::string*) in libjingle_peerconnection.a(libjingle_peerconnection.webrtcsdp.o)
webrtc::BuildMediaDescription(cricket::ContentInfo const*, cricket::TransportInfo const*, cricket::MediaType, std::vector<cricket::Candidate, std::allocator<cricket::Candidate> > const&, std::string*) in libjingle_peerconnection.a(libjingle_peerconnection.webrtcsdp.o)
webrtc::ParseRtcpFbAttribute(std::string const&, cricket::MediaType, cricket::MediaContentDescription*, webrtc::SdpParseError*) in libjingle_peerconnection.a(libjingle_peerconnection.webrtcsdp.o)
webrtc::UpdateMediaDefaultDestination(std::vector<cricket::Candidate, std::allocator<cricket::Candidate> > const&, std::string, std::string*) in libjingle_peerconnection.a(libjingle_peerconnection.webrtcsdp.o)
rtc::SSLFingerprint::ToString() in libwebrtc_base.a(webrtc_base.sslfingerprint.o)
rtc::Pathname::pathname() const in libwebrtc_base.a(webrtc_base.pathutils.o)
...
(Similar to the examples in my first post ) :-(
I think I have resolved the error.
I removed the plugins using:
cordova plugin remove org.apache.cordova.statusbar com.dooble.phonertc
But when I reset the iOS build by going this:
platform rm ios
platform add ios
The plugins where introduced because they were listed in the package.json
"cordovaPlugins": [
"org.apache.cordova.statusbar",
"https://github.com/alongubkin/phonertc.git",
"org.apache.cordova.console",
"org.apache.cordova.camera"
]
I removed these items from the package.json, then repeated the cordova plugin remove ....
and the plugins weren't re-introduced on platform add ios
!
And ran:
cordova plugin add https://github.com/onsip/onsip-cordova.git
cp plugins/com.onsip.cordova/build platforms/ios/cordova/
I couldn't run
cordova run
but was able to build to an iOS device via Xcode.
Hi just a quick question Eric.
I removed the phonertc
plugin. And now when I call createOffer()
the phonertc Session cannot be created.
( I'm running in the cordova browser platform )
createOffer(): error creating phonertc.Session instance: TypeError: undefined is not a function {stack: (...), message: "undefined is not a function"}
cordova.plugins.phonertc.Session is undefined.
Is there something I'm missing?
This is really a Ionic build issue so I'll close the issue
I installed the plugin as instructed:
To an existing project. ( Which was originally using just the PhoneRTC Plugin which I had previously removed by:
cordova plugin remove com.dooble.phonertc
).I set the Xcode settings as the instructions in: alongubkin/phonertc/installation.
I'm not 100% sure if that step is required.
The build failed after a few warnings with:
Which suggests there are some missing files.
I'm very rusty with x-code so any help would be appreciated.
Thanks.