Thomas Joos
Thomas Joos

Reputation: 2451

iPhone Simulator vs iPhone OS testing: file is not of required architecture

i'm working on an iphone app ( sdk 3.1.3 ) and I have added the corelocation and mapkit framework. I used the iphonesimulator package, but added them using 'relative to current sdk'. When I test my app in the iphone simulatore everything works. But when I switch to iphone device 3.1.3 i'm getting 2 warnings and 4 build errors:

warnings:

.../corelocation file is not of required architecture
.../mapkit file is not of required architecture

errors:

"_OBJC_CLASS_$_MKReverseGeocoder", referenced from:<br />
__objc_classrefs__DATA@0 in VMLViewController.o<br />
"_OBJC_CLASS_$_MKPinAnnotationView", referenced from:<br />
__objc_classrefs__DATA@0 in VMLViewController.o<br />
"_OBJC_CLASS_$_CLLocationManager", referenced from:<br />
__objc_classrefs__DATA@0 in VMLViewController.o<br />
"_kCLLocationAccuracyBest", referenced from:<br />
_kCLLocationAccuracyBest$non_lazy_ptr in VMLViewController.o<br />
ld: symbol(s) not found<br />

collect2: ld returned 1 exit status<br />
Build failed (4 errors, 2 warnings)<br />

I right-clicked on the mapkit framework package, checked get info and the path is set as: System/Library/Frameworks/MapKit.framework

I have basic iphone dev knowledge, but i don't know what the problem is... Can anyone help me out?

Greets,

Thomas

Upvotes: 4

Views: 6824

Answers (3)

Hemant Singh Rathore
Hemant Singh Rathore

Reputation: 2139

Go to Targets -> Build Phases -> Add CoreLocation Framework.

Upvotes: 0

Prabhu G
Prabhu G

Reputation: 161

I too have same problem, I've resolved it by adding CoreLocation.framework inside the Frameworks folder.

Upvotes: 16

David Gelhar
David Gelhar

Reputation: 27900

In that get info window, check the "full path" of the MapKit.framework package, then in a Terminal window use the "file" command to verify what architecture the library is. Should see something like:

file /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk/System/Library/Frameworks/MapKit.framework/MapKit
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk/System/Library/Frameworks/MapKit.framework/MapKit: Mach-O universal binary with 2 architectures
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk/System/Library/Frameworks/MapKit.framework/MapKit (for architecture armv6): Mach-O dynamically linked shared library arm
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.1.2.sdk/System/Library/Frameworks/MapKit.framework/MapKit (for architecture armv7): Mach-O dynamically linked shared library arm

Upvotes: 0

Related Questions