Backendless Support
 
Answered

arm64 error when updating to Backendless 4

I am updating an existing iOS app to Backendless 4.0. I have fixed all code issues, but am getting the following build error:

Undefined symbols for architecture arm64:

"_OBJC_CLASS_$_UNNotificationAttachment", referenced from:

objc-class-ref in libbackendless.a(MessagingService.o)

ld: symbol(s) not found for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

I am using cocoapods to manage my dependancies. How can I resolve this issue?

Leave a Comment

Comments (14)

photo
1

Hello,

Please check the version number of the SDK? The latest version is 4.0.6. If it is not 4.0.6, make sure to run "pod update".

Regards,

Mark

photo
1

Hi Mark,

Running

  1. target 'CSCSalesMeeting' do

    pod 'Realm'

    pod 'Backendless', '~>4.0'

    pod 'SDWebImage', '~>3.7'

    pod 'MBProgressHUD'

    end

photo
1

That pod spec may not update the installed pod to the latest version. You can run "pod list" to see what version you have (warning, it will produce a lot of output).

Also, as a point of reference, I recommend going through the steps described at the link below and comparing your project setup with the one downloaded from console: https://backendless.com/docs/ios/doc.html#quick_start_guide

photo
1

I've verified that I have 4.0.6.

I updated another app last week with zero issues except for code corrections to the new api.

I'll step through the quick-start guide, but hmm.

photo
1

I am able to duplicate this problem easily in a new project (Xcode 8.3.3). If I create a new ObjC project, then create a podfile with Backendless as the only pod, and run pod install, I get the following error:

Undefined symbols for architecture x86_64:

"_OBJC_CLASS_$_UNNotificationAttachment", referenced from:

objc-class-ref in libbackendless.a(MessagingService.o)

ld: symbol(s) not found for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)iOS

photo
1

Does the project you download from console work though?

photo
1

Yes, the downloaded project works. But I need to be able to update existing projects. As I said, the Swift project worked fine, while the ObjC project errors as described above. The existing project complains about arm64, while a newly created project complains about x86_64, even though it is an iOS project.

I have tried removing and reinstalling Backendless with cocoapods, to no effect, and cleaning the project and the build folder also have no effect on the error.

photo
1

I just created a new Swift iOS project and installed Backendless 4.0.6 using cocoapods and did not get build errors as I do when doing the same steps with and ObjC project.

photo
1

Would you be able to zip up and upload a problematic project to either google drive or dropbox and share the link with us? It would let us inspect the project and see what goes wrong in there.

Regards,

Mark

photo
1

Hi Mark,

Here is the link to my dropbox folder and the zipped project. Link will expire tomorrow.

Thanks for the great support!

https://www.dropbox.com/sh/b53lrrpbgt1ie7r/AAD21dOB56uGmtrn1Ee__lMfa?dl=0

JK

photo
1

Hello Jay,

please add the UserNotifications.framework to the Link Binary With Libraries section.

Regards, Olga

photo
1

Thanks, Olga. Adding the framework fixed the problem. Your support is awesome!

JK

photo
photo
1

Mark Hi, I'm experiencing the same problem the the automatic code generated from Backendless 4 for both the swift and objective-c files. Please keep the post up-to-date with any resolution

Regards

Jason

photo
1

Hi Jason,

Please create a dedicated topic with a detailed description of your problem so we could better track your request and try to help you.

photo