Undefined symbols for architecture arm64 error

164 views
Skip to first unread message

automation

unread,
Nov 4, 2015, 7:33:52 PM11/4/15
to KIF iOS Automated Testing Framework
Hi,

I'm able to successfully build and run tests on simulator however getting "Undefined symbols for architecture arm64:" error when running tests on an actual device.  

I've added IOkit.framework to linked libraries but still seeing the same error.

Running KIF with Xcode version 7.1

Is there another setting that i need to configure for tests to run on device?

thanks

Michael Lupo

unread,
Nov 5, 2015, 5:19:17 AM11/5/15
to kif-fr...@googlegroups.com
Are you calling a method in the UIAutomation library? If so, that's why.
--
You received this message because you are subscribed to the Google Groups "KIF iOS Automated Testing Framework" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kif-framewor...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

automation

unread,
Nov 5, 2015, 3:09:03 PM11/5/15
to KIF iOS Automated Testing Framework
I just tried on another device and getting a "Undefined symbols for architecture armv7:" error 
These tests are in Objective-C++ and are running fine on simulator but failing to build for device.

How can I verify if I'm calling UIAutomation library?

Undefined symbols for architecture armv7:

  "Parameter::AtTime(long long)", referenced from:

      ParametertestAction<FPoint, Parameter>::test() in TestParameter.o

  “testParameter::NextkTime(long long, float&, long long&)", referenced from:

      testA<float, Parameter>::Create(std::__1::shared_ptr<Parameter>&, float const&, long long) in TestParameter.o

mike...@aol.com

unread,
Nov 5, 2015, 3:57:39 PM11/5/15
to kif-fr...@googlegroups.com
Let's try something overly simplistic.
i.e. Create a file called FooTests.m and throw the following code into it (Disclaimer: I didn't compile this, but you get the gist)
----------------------------
#import “KIF.h” //or perhaps <KIF/KIF.h> depending on how you integrated KIF. 
@interface FooTests : KIFTestCase
@end
@implementation ListViewTests


/*Watch where you walk*/
- (void) test000FooBar
{
    NSLog(@“Stepped in Foo”);
}
@end
-----------------------------------------
If you are still having this issue, then I'm going to suggest that it's your project or target settings. 
If this does NOT have the issue, then I'm going to suggest that the issue is in one of the libraries that you're making calls into. Probably that it does not have a compilation for ARMV7 or ARM64.

Which is it?

automation

unread,
Nov 5, 2015, 6:13:06 PM11/5/15
to KIF iOS Automated Testing Framework
Thanks for the feedback.  Added that test and was able to run on device, also went through each of my existing tests and looks like some tests are passing whereas others are failing.

As you pointed out it must be due to not supporting ARMV7 or ARM64.

automation

unread,
Nov 6, 2015, 3:58:05 PM11/6/15
to KIF iOS Automated Testing Framework

Another question related to this issue...


how do tests running in KIF automation link to the symbols from the .exe

I’m trying to figure out why one tests is passing and the other is failing?

how are symbols getting exported for one test and not the other?

mike...@aol.com

unread,
Nov 6, 2015, 5:05:47 PM11/6/15
to kif-fr...@googlegroups.com
Without seeing the code, I'm guessing that the test that is failing is making a call for which the method is defined in a library? And that Library isn't being linked in OR it's being linked in, but fails when you call it (for some odd reason) 

Also, make sure you are linking in UIKit.framework in your build phases.  If I recall correctly, this is something that you encountered earlier and you've since resolved. Just mentioned it just incase for some reason it's gone missing the build phase for your target.

Now, if that don't solve it, I'm going to ask Tony or Brian to Chime in because at this point, I'm only making guesses and I want you to have a better community support experience than that. 

Mike

automation

unread,
Nov 6, 2015, 7:21:10 PM11/6/15
to KIF iOS Automated Testing Framework
not much difference between the two tests, they are calling the same libraries - both are calling methods in a c++ class.  

automation

unread,
Nov 9, 2015, 3:25:20 PM11/9/15
to KIF iOS Automated Testing Framework
This was resolved by disabling dead code stripping in build settings for the app for tests to run on device.

Michael Lupo

unread,
Nov 9, 2015, 3:48:36 PM11/9/15
to kif-fr...@googlegroups.com
Thanks for the follow up. It means a lot to the next person who encounters this issue.
Reply all
Reply to author
Forward
0 new messages