I've inherited an old Objective C project which is marking use of the Doubango SIP library. After spending several days updating the project to support ARC (yes, that old), Doubango has started crashing when an outgoing call is ended (because it could not be connected or went unanswered).
This happens across multiple iOS versions (9, 10 & 11) and handsets. If you're interested:
I thought I would attempt to update and re-build the library, just to make sure it wasn't a pre-existing issue.
I checked out the source (for doubango and idoubs), updated the "Active Architecture", made sure "bit code" was turned off (project dependency requirement) and was successful in building both projects.
When I copied the library binaries over to my existing project and tried building it, I got:
Undefined symbols for architecture arm64:
"_opus_decoder_destroy", referenced from:
_tdav_codec_opus_dtor in libtinyDAV.a(tdav_codec_opus.o)
"_opus_decode", referenced from:
_tdav_codec_opus_decode in libtinyDAV.a(tdav_codec_opus.o)
"_WelsDestroyDecoder", referenced from:
tdav_codec_h264_cisco_close_decoder(tdav_codec_h264_cisco_s*) in libtinyDAV.a(tdav_codec_h264_cisco.o)
"_opus_decoder_create", referenced from:
_tdav_codec_opus_open in libtinyDAV.a(tdav_codec_opus.o)
"_opus_encode", referenced from:
_tdav_codec_opus_encode in libtinyDAV.a(tdav_codec_opus.o)
"_WelsCreateDecoder", referenced from:
tdav_codec_h264_cisco_open_decoder(tdav_codec_h264_cisco_s*) in libtinyDAV.a(tdav_codec_h264_cisco.o)
"_gsm_decode", referenced from:
_tdav_codec_gsm_decode in libtinyDAV.a(tdav_codec_gsm.o)
(maybe you meant: _tdav_codec_gsm_decode)
"_opus_encoder_ctl", referenced from:
_tdav_codec_opus_open in libtinyDAV.a(tdav_codec_opus.o)
"_WelsCreateSVCEncoder", referenced from:
tdav_codec_h264_cisco_open_encoder(tdav_codec_h264_cisco_s*) in libtinyDAV.a(tdav_codec_h264_cisco.o)
"_gsm_destroy", referenced from:
_tdav_codec_gsm_close in libtinyDAV.a(tdav_codec_gsm.o)
_tdav_codec_gsm_dtor in libtinyDAV.a(tdav_codec_gsm.o)
"_opus_encoder_create", referenced from:
_tdav_codec_opus_open in libtinyDAV.a(tdav_codec_opus.o)
"_gsm_create", referenced from:
_tdav_codec_gsm_open in libtinyDAV.a(tdav_codec_gsm.o)
"_WelsDestroySVCEncoder", referenced from:
tdav_codec_h264_cisco_close_encoder(tdav_codec_h264_cisco_s*, int) in libtinyDAV.a(tdav_codec_h264_cisco.o)
"_opus_encoder_destroy", referenced from:
_tdav_codec_opus_dtor in libtinyDAV.a(tdav_codec_opus.o)
"_gsm_encode", referenced from:
_tdav_codec_gsm_encode in libtinyDAV.a(tdav_codec_gsm.o)
(maybe you meant: _tdav_codec_gsm_encode)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I have updated the "Base SDK" and "Active Architecture" settings for all targets in the idoubs project
I have verified that libtinyDAV.a is getting built with both armv7 and arm64 when building the from the idoubs project
CreateUniversalBinary /Users/.../Library/Developer/Xcode/DerivedData/ios-ngn-stack-ekcojqjweqqhsdgsteplgzfeikck/Build/Products/Debug-iphoneos/libtinyDAV.a normal armv7\ arm64
cd /Users/.../Development/MaxwellSIP/idoubs/ios-ngn-stack
export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/libtool -static /Users/.../Library/Developer/Xcode/DerivedData/ios-ngn-stack-ekcojqjweqqhsdgsteplgzfeikck/Build/Intermediates.noindex/ios-ngn-stack.build/Debug-iphoneos/tinyDAV.build/Objects-normal/armv7/libtinyDAV.a /Users/.../Library/Developer/Xcode/DerivedData/ios-ngn-stack-ekcojqjweqqhsdgsteplgzfeikck/Build/Intermediates.noindex/ios-ngn-stack.build/Debug-iphoneos/tinyDAV.build/Objects-normal/arm64/libtinyDAV.a -o /Users/.../Library/Developer/Xcode/DerivedData/ios-ngn-stack-ekcojqjweqqhsdgsteplgzfeikck/Build/Products/Debug-iphoneos/libtinyDAV.a
At this point in time, I'm out of ideas of what do try to solve the issue, any help would be greatly appreciated
I have tried perform clean and builds on my project and the idoubs project; deleting the "derived data"; restarting Xcode; restarting the Mac and various combinations of the aforementioned.
I've inherited an old Objective C project which is marking use of the Doubango SIP library. After spending several days updating the project to support ARC (yes, that old), Doubango has started crashing when an outgoing call is ended (because it could not be connected or went unanswered).
This happens across multiple iOS versions (9, 10 & 11) and handsets. If you're interested:
Thread 23: EXC_BAD_ACCESS (code=1, address=0xf000000c)
I thought I would attempt to update and re-build the library, just to make sure it wasn't a pre-existing issue.
I checked out the source (for doubango and idoubs), updated the "Active Architecture", made sure "bit code" was turned off (project dependency requirement) and was successful in building both projects.
When I copied the library binaries over to my existing project and tried building it, I got:
I have updated the "Base SDK" and "Active Architecture" settings for all targets in the idoubs project
I have verified that
libtinyDAV.a
is getting built with both armv7 and arm64 when building the from the idoubs projectAt this point in time, I'm out of ideas of what do try to solve the issue, any help would be greatly appreciated
I have tried perform clean and builds on my project and the idoubs project; deleting the "derived data"; restarting Xcode; restarting the Mac and various combinations of the aforementioned.