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?

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

Hi Mark,

Running

 
 
 
 
target 'CSCSalesMeeting' do 
 
 
 
 pod 'Realm' 
 
 pod 'Backendless', '~>4.0' 
 
 pod 'SDWebImage', '~>3.7' 
 
 pod 'MBProgressHUD' 
 
 
 
end 
 
 
 
 



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

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.

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

Does the project you download from console work though?

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.

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.

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

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

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.

Hi Mark,

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

Thanks for the great support!

JK

Hello Jay,

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

Regards, Olga

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

JK

@Olga, Thanks so much for the solution:)