I currently try to use Reachability in iOS 5.1 on iPad.
There is a modification by Tony Million on Github which I tried to use.
Unfortunately in my project it didn't work!
I compared his project to mine and didn't find any differences. I also tried to hardcopy his example code But it still doesn't work!!! (Yes, I added SystemConfiguration.framework)
Every time I try to compile I get a Undefined symbols for architecture i386 error.
Here my complete error message:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_Reachability", referenced from:
objc-class-ref in ViewController.o
"_kReachabilityChangedNotification", referenced from:
-[ViewController viewDidLoad] in ViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Does anybody know about this issue? Can anybody help me?
Thanks a lot, greetings, Julian
This usually means you didn't add to the target either the header file in the copy headers section in the build phases or the implementation file in the compile sources.
You need to link Reachability to your target.
Related
I'm trying to the Xcode Tutorial on a iOS ToDoApp. I've done all the steps and certainly I've got compile errors.
I've searched around and I've seen that I'm not the only one with this problem, and I have tried peoples solutions but with no success.
This is my error message:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_ToDoItem", referenced from:
objc-class-ref in ToDoListTableViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
It seems you are missing ToDoItem.m (or better said the #implementation ToDoItem) in your project. Either it's not there at all or the file is not included in the build target.
Try to search #implementation ToDoItem in your project. If it's missing, you have to add it. If it's not missing, make sure that the file is added to the target you are trying to build.
I've followed this bar code scanner tutorial http://rdcworld-iphone.blogspot.com.au/2013/03/how-to-use-barcode-scanner-br-and-qr-in.html which runs fine in the simulator. However it says "Build Failed" when I connect my iPhone and attempt to build it. There are no errors. My phone version is 7.1.2 if that helps.
What process should I follow to find what the cause/s of the failure are?
Edit:
I am not using an _ or space in the project name.
Edit:
Error log for iPhone:
ld: file is universal (3 slices) but does not contain a(n) armv7s slice: /Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a file '/Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a' for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
The error log for iPhone 4 64 bit simulator:
ld: warning: ignoring file /Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a, missing required architecture x86_64 in file /Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a (3 slices)
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
objc-class-ref in ViewController.o
"_ZBarReaderControllerResults", referenced from:
-[ViewController imagePickerController:didFinishPickingMediaWithInfo:] in ViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
(null): Ignoring file /Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a, missing required architecture x86_64 in file /Users/airefrig/Documents/BarcodeScannerDemo/BarcodeScannerDemo/ZBarSDK/libzbar.a (3 slices)
(null): "_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
(null): Objc-class-ref in ViewController.o
(null): "_ZBarReaderControllerResults", referenced from:
(null): -[ViewController imagePickerController:didFinishPickingMediaWithInfo:] in ViewController.o
(null): Symbol(s) not found for architecture x86_64
(null): Linker command failed with exit code 1 (use -v to see invocation)
Edit:
I've got it to work fine on the iPhone by downloading and using the latest zbar sdk framework. Now however the simulator doesn't build as it wants the old one!
Anyone have an idea how to make both the phone and simulator happy?
Edit 2:
I got it working use the old libraries, but not the latest which is what I have to do for work. For the old libraries I did the following:
1) Create a new app and make it universal.
2) Follow the normal tutorial steps except use a storyboard not a xib file and set the project to use that for both iphone and ipad. Also don't put in the code near the end of the tute which specifies which Xib to use since I'm not using one!
3) In build settings set the Architectures and Valid Architectures to "armv7"
4) In build settings set Build Active architecture only to YES
What I've done just recently is to remove the old ZBar libraries and replace them which these http://www.nerdvision.net/app-development/ios/zbar-sdk
It gives me this error though:
ld: warning: ignoring file /blahblah/BarcodeScannerNew/BarcodeScannerNew/zbar_iOS7_Fix/libzbar.a, missing required architecture i386 in file /blahblah/BarcodeScannerNew/BarcodeScannerNew/zbar_iOS7_Fix/libzbar.a (3 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_ZBarReaderViewController", referenced from:
objc-class-ref in AACsViewController.o
"_ZBarReaderControllerResults", referenced from:
-[AACsViewController imagePickerController:didFinishPickingMediaWithInfo:] in AACsViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I think what that means is it wants the old (I presume 32 bit) libraries, not the latest ones. Not sure how to fix it though as I can't include both old and new Zbar files because it gives an error about duplicate files.
Doesn't look like ZBar is supported on iOS7. Last update was around iOS4 since when a lot has changed.
Source ZBar FAQ
Error says that zBar library isn't compiled for 64-bit simulators. So you'd either build library from sources with this support or wait for somebody to do it. Or just don't use 64-bit simulator for this. :)
This answer may help you to get this working on 64-bit simulator.
Also if you can support only iOS 7+, you can use system built-in code scanning capabilities.
I am getting these 4 errors when trying to compile. I've tried some of the other solutions and none of them seem to work. Below is the error log:
Thanks for the help!
Undefined symbols for architecture i386:
"_kJAHeadlineViewHeight", referenced from:
-[MasterViewController minimizeTableView] in MasterViewController-A88C42CB51855C04.o
-[MasterViewController scrollViewDidScroll:] in MasterViewController-A88C42CB51855C04.o
"_kJAMinimizedVisibleTopHeight", referenced from:
-[MasterViewController minimizeTableView] in MasterViewController-A88C42CB51855C04.o
"_kJATableViewAnimationSpeed", referenced from:
-[MasterViewController minimizeTableView] in MasterViewController-A88C42CB51855C04.o
-[MasterViewController maximizeTableView] in MasterViewController-A88C42CB51855C04.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
It sounds like you're including a third party code library? If so, it may not be built to run on the simulator. You may have to test on an iOS device only.
I've seen messages like that when I forget to include all my .m files in the target.
Those are defined in JAConstants.m. Make sure in your project compile files list in your project build settings that you have JAConstants.m listed. If it's not being compiled but you are still referencing against JAConstants.h then you will get that error.
I just add library and framework of PJSIP to my XCODE project such as Simulator, Device and Third Party but when I build my project it show error:
Undefined symbols for architecture armv7:
"_pjmedia_get_video_format_info", referenced from:
_ios_factory_create_stream in libpjmedia-videodev-arm-apple-darwin9.a(ios_dev.o)
"_pjmedia_format_get_video_format_detail", referenced from:
_ios_factory_create_stream in libpjmedia-videodev-arm-apple-darwin9.a(ios_dev.o)
"_pjmedia_format_init_video", referenced from:
_ios_factory_init in libpjmedia-videodev-arm-apple-darwin9.a(ios_dev.o)
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I try to Google the solution but it seem not help. Please share your idea, I think i miss some configuration or library. Thanks in advance.
You should take a look in to this question asked on SO earlier
Trouble of compilation on xcode4.2 for pjsip
I'm using Reachability on my project to get the type of connection used, but an error has ocurred.
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_Reachability", referenced from:
objc-class-ref in ContributionViewController.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I don't know what to do... my project is for iOS 4.3 and I've never had this kind of problem before.
Thx
Did you include the reachability framework in your projects linked libraries ? You can confirm by clicking on your project file on the file list and checking the build phases tab. It should be listed in the linked library section,