Appboy / appboy-ios-sdk

Public repo for the Braze iOS SDK
https://www.braze.com
Other
165 stars 140 forks source link

Class ABKInAppMessageHTMLBase is implemented in both... #327

Closed shahzadmajeed closed 2 years ago

shahzadmajeed commented 2 years ago

Report

Describe your environment.

Info Value
Platform Name iOS
Platform Version 12.0
SDK Version 3.30.0
Integration Method Cocoapods
Xcode Version Xcode 12.5.1.
Computer Processor Intel-based
Repro rate All the time (100%)

What did you do?

What did you expect to happen?

I expect runtime to load Appboy libraries without any issues.

What happened instead?

Runtime library loader throws following warning.

Class ABKAppleClassCategories is implemented in both 

/Users/abc/Library/Developer/CoreSimulator/Devices/33A8DBDB-4663-43CA-AB2B-38EA3E8839BB/data/Containers/Bundle/Application/19B14113-1E06-4AE1-85E6-FBCE5C7F7D15/MyApp.app/Frameworks/Appboy_iOS_SDK.framework/Appboy_iOS_SDK (0x118c9ca18) 

and 

/Users/abc/Library/Developer/CoreSimulator/Devices/33A8DBDB-4663-43CA-AB2B-38EA3E8839BB/data/Containers/Bundle/Application/19B14113-1E06-4AE1-85E6-FBCE5C7F7D15/MyApp.app/MyApp (0x115cb71a8). 

One of the two will be used. Which one is undefined.
Class ABKPushStoryImageLink is implemented in both 

/Users/abc/Library/Developer/CoreSimulator/Devices/33A8DBDB-4663-43CA-AB2B-38EA3E8839BB/data/Containers/Bundle/Application/19B14113-1E06-4AE1-85E6-FBCE5C7F7D15/MyApp.app/Frameworks/Appboy_iOS_SDK.framework/Appboy_iOS_SDK (0x118c9d1c0) 

and 

/Users/abc/Library/Developer/CoreSimulator/Devices/33A8DBDB-4663-43CA-AB2B-38EA3E8839BB/data/Containers/Bundle/Application/19B14113-1E06-4AE1-85E6-FBCE5C7F7D15/MyApp.app/MyApp (0x115cb7220). 

One of the two will be used. Which one is undefined.

AND

Class ABKInAppMessageHTMLBase is implemented in both 
/Users/abc/Library/Developer/Xcode/DerivedData/MyApp-dplbttsrwvxakmcyjcbmjrnmcxnv/Build/Products/Test-iphonesimulator/Framework1.framework/Framework1 (0x11ca89c68) 
and
/Users/abc/Library/Developer/Xcode/DerivedData/MyApp-dplbttsrwvxakmcyjcbmjrnmcxnv/Build/Products/Test-iphonesimulator/Framework2.framework/Framework2 (0x11ab7ac40). 

One of the two will be used. Which one is undefined.

what do you think I'm doing wrong? It's standard cocoapods based integration.

Steps to reproduce

Are you doing any feature customizations that may relate to the issue? Can you share the code snippet?

NO

hokstuff commented 2 years ago

Hi @shahzadmajeed,

Can you try these steps and see if you're still experiencing the issue:

Let me know if any of these help resolve the issue. Since this sounds very specific to your integration and we haven't been able to repro on our end, you can also email support@braze.com to get more help.

Thanks!

shahzadmajeed commented 2 years ago

Hi,

I did a bit more research and found a blog that discusses same issue https://medium.com/@GalvinLi/tinysolution-fix-cocoapods-duplicate-implement-warning-5a2e1a505ea8. The solutions mentioned in these links worked for another pod (GoogleMaps) but not for Appboy SDK.

The issue can happen either because of wrong project setup where app binary target and app frameworks are sharing a library or if 2 or more third party dependencies are using same shared binary internally which I think is happening in this case i.e Appboy-iOS-SDK and Appboy-Push-Story linking AppboyKitLibrary maybe?

I did try deleting DerivedData and relinking pods (with latest versions of both Appboy-iOS-SDK and Appboy-Push-Story) before posting this issue but it didn't work either. I can certainly try Xcode 13 if you think that can help with this.

hokstuff commented 2 years ago

Hi @shahzadmajeed,

We have not been able to reproduce this internally and none of our clients currently using Cocoapods have reached out about this issue either. Can you check if any of the tools in your project are causing these issues and that you are following our Cocoapods integration guide here?

Thanks!

hokstuff commented 2 years ago

Hi @shahzadmajeed,

I'm closing out this issue due to inactivity. If you still are experiencing issues with your integration, please email support@braze.com. Thanks!