Linker error after upgrading Xcode 7.3 to 8.3.1 - swift

I am facing linker error after upgrading Xcode from 7.3 to 8.3.1,
below is the error coming at the time of project build:
Undefined symbols for architecture x86_64:
"_OBJC_CLASS_$__TtCC13Test11AppDelegate12loggedinUser", referenced from:
objc-class-ref in UIView+Toast.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Architecture Settings in Build Setting:
Compile Sources:
Please help. Thanks in advance.

Check your TestAppDelegate class, especially property loggedinUser. There should be some clues.
This may be a problem, that the target you are compiling is using the UIView+Toast file, which requires the TestAppDelegate to also be compiled.
Check your project settings -> build phases -> compile sources and check if any entries are colored red (missing under the path) or are just not there, and readd them.

Related

error on AdMob integration

I Have added Addmob sdk in my project and even added all framework needed. But m getting below error for StoreKit framework even i have added it in my project but still getting error..
ld: warning: directory not found for option '- L/Users/company/Downloads/projectname/GoogleAdMobAdsSdkiOS-6.4.2/Add- ons/GoogleAnalyticsiOS_2.0beta4/Library'
ld: warning: directory not found for option '-L/Users/company/Downloads/projectname/GoogleAdMobAdsSdkiOS-6.4.2'
ld: warning: ignoring file /Users/company/Downloads/StoreKit.framework/StoreKit, missing required architecture i386 in file /Users/company/Downloads/StoreKit.framework/StoreKit (2 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_SKStoreProductViewController", referenced from:
objc-class-ref in libGoogleAdMobAds.a(GADOpener.o)
"_SKStoreProductParameterITunesItemIdentifier", referenced from:
-[GADOpener openInAppStore:fallbackURLString:] in libGoogleAdMobAds.a(GADOpener.o)
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I search a lot but in every post its sid to add Storkit.. but i have already added it but still getting error. even i have cleaned the project a lot of time.
Just ensure that you have added the following libraries,
1.AudioToolbox
2.MessageUI
3.SystemConfiguration
4.CoreGraphics
Also the frameworks,
1.MessageUI.framework
2.StoreKit.framework
3.SystemConfiguration.framework
According to your error message there is a problem with StoreKit.framework...Please verify that...
Refer: build error when add Admob in iOS app
Add AdSupport.framework, also make it as optional
It says that your StoreKit binary is not build for i386. This should not happen with the default one. Did you download if separately from somewhere? You can find the default here:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer‌​/SDKs/iPhoneOS6.1.sdk/System/Library/Frameworks/StoreKit.framework
Use that.

ignoring file [path] missing required architecture i386 in file

I'm quite new to Xcode and Iphone development and ran into the following problem:
I opened a new project and added *.h and a *.a files (which I recived from a certain device vendor).
I get the following warning:
ld: warning: ignoring file /Users/udi/Desktop/Xcode/Xcode Projects/Scosche/libmyTrekSDK_armv7.a, missing required architecture i386 in file /Users/udi/Desktop/Xcode/Xcode Projects/Scosche/libmyTrekSDK_armv7.a (2 slices)
If I ignore the warning, and try to instanciate the class that is given to me in the header file, I get these errors:
ld: warning: ignoring file [Path/FileName.a], missing required architecture i386 in file [Path/FileName.a] (2 slices)
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_HRMonitor", referenced from:
objc-class-ref 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)
I've checked the Framework Search Pathes (as mantioned in many other posts) and it clear.
More info:
I'm Using Xcode 4.6.1
The files are currently located at project's root folder.
I'm using a Single View Application tamplate.
Appreciate any help
This warning means that you're trying to use library made for Device (ARM) with your Simulator (i386).
You can use this terminal command to create a universal library:
lipo -create lib_arm.a lib_i386.a -output lib_universal.a
More info about lipo command here.
Change your target's "Build Settings > Build Active Architectures Only" to "No"
This is doing the same thing as Dmitry Zhukov's answer but doing it thru Xcode instead of going around its back.
If you are working with a 3rd party code, keep in mind that some SDKs may not work on the simulator. The same build error I have encountered vanished, when I ran the project on the device.

Static library issue

I'm creating a static library with some class files, and the library is creating well but if I install to library to another new Xcode project it showing error and the error is as follows ,
ld: warning: ignoring file /Users/rajesh/Desktop/Quntiles/01-03-2013/ConnectionExample-1/libAVTEmployee.a, file was built for archive which is not the architecture being linked (armv7s): /Users/rajesh/Desktop/Quntiles/01-03-2013/ConnectionExample-1/libAVTEmployee.a
Undefined symbols for architecture armv7s:
"_OBJC_CLASS_$_AVTEmployee", referenced from:
objc-class-ref in XMLParser-E51A1142A3EEED70.o
ld: symbol(s) not found for architecture armv7s
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Can any one please help me, how can I fix this issue so that I can use the my static library in my new project ,
I'm using Xcode 4.6 version.
Thanks in advance.
Probably your static library was created or compiled using an older version of XCode that didn't support armv7s architecture. Open the static library project and make sure that Architectures contains armv7 and armv7s architectures and Build Active Architectures Only is set to No under Build Settings.

Ar metio build error

When I'm trying to run the project i receive the following errors
Here is the log.
Undefined symbols for architecture armv7: __ZN6metaio40getScreenRotationForInterfaceOrientationE22UIInterfaceOrientation", referenced from: -[MetaioSDKViewController viewDidLoad] in MetaioSDKViewController.o -[MetaioSDKViewController willAnimateRotationToInterfaceOrientation:duration:] in MetaioSDKViewController.o -[ARELViewController willAnimateRotationToInterfaceOrientation:duration:] in ARELViewController.o ld: symbol(s) not found for architecture armv7 clang: error: linker command failed with exit code 1 (use -v to see invocation)
Does any one knows what the reason might be.
This project has bind with the Metio . AR framework.
Thanks
Click on your Project and go to Build Settings and change the value of Build Active Architecture only to yes.
Let me know if it solves the error:)

Linker command failed with exit code 1 - not sure why

I'm not sure exactly why i'm getting this. It usually comes because of a missing framework, except its mentioning a class I already have in my project, and imported into the file it's saying the error is on. It says...
Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_ELCImagePickerController", referenced from:
objc-class-ref in JCreateViewController.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)
JCreateViewController.m had this in the imports:
#import "ELCImagePickerController.h"
So i don't really know why it's giving me this error.
Any ideas?
In the interest of providing an acceptable answer, from the comments:
Make sure ELCImagePickerController is included in your project's Compile Sources build phase.
you can add resources to your projects build phases by simple select and add see this link