Closed Navdeep2020 closed 1 month ago
Hello, there is a known issue with 6.23.2 which was addressed in 6.23.3 Please upgrade to our latest version. We apologize for the inconvenience.
@KunJeongPark I have upgraded to 6.23.3 but the error is still same at run time, Please look at the issue more carefully.
Getting the same issue. The error states that it can not find BTVenmoClient, see the error below:
Symbol not found: _$s9Braintree13BTVenmoClientC018openVenmoAppPageInF5StoreyyFTj Referenced from: <2B225D39-25E0-3718-A3E1-A2EBE0B88B67> /Users/xyz/Library/Developer/Xcode/DerivedData/CustomerPortal-bjcrubavwaoeufgtdntitbgnmgae/Build/Products/Debug-iphonesimulator/Payin.framework/Payin Expected in: <FE2F0A00-1848-377C-A648-CC9B2871C27D> /Users/xyz/Library/Developer/CoreSimulator/Devices/D8A27BCA-7988-4634-A049-D08D641675AA/data/Containers/Bundle/Application/F64561D8-30E5-46C2-B76C-DBC9D8F31FE7/Customer Portal.app/Frameworks/Braintree.framework/Braintree
I have an xcframework which uses Braintree as a dependency/cocoapods. The app is responsible to provide the pod to my framework. But after migration to 6.23.3 I am getting the above issue.
Also note that when I migrated, all the BTVenmoDriver class names were replaced by BTVenmoClient which is the exact name being printed in the console.
Please assist at the earliest !
+1, found the same issue at my side too and it is blocking my current release @KunJeongPark can you create new framework project and add braintree dependencies and add the framework in new application with same dependencies through cocoa pods. You will get the crash.
Below code contains the error @KunJeongPark Steps :
Thank you for the further information. First thing I want to do is make sure that these are not different issues. Addressing @Navdeep2020 's first message, it seems like some issue with some symbol not being found.
For @himandhawan001 and @nrajput05, if it's not the same issue, if we have more information regarding which version worked for you, and which one you are having trouble with now, it would help us identify the issue. And also which Xcode version, iOS version you are testing with. There have been a lot of updates between 5.2 => 6.23.2 reported by Navdeep, so I am trying to figure out which change, from which version is causing this issue by getting that info from both of you.
I think it might be related to our switch to static version of the data collector in Braintree SDK version 5.8. . Looking at @himandhawan001 's project, both the framework and the app have same Braintree SDK dependencies. Since data collector is now linked statically, this could be causing a conflict.
We will investigate this more thoroughly next week. We are back to work hours next Tuesday and we will investigate the issue. Thank you for your patience.
@KunJeongPark To address your questions:
I was not able to recreate this issue with Xcode 15.3 I will try to test with Xcode 15.4 and Xcode 15.2 as soon as I can.
Steps I took using our SDK version 6.23.3 and Xcode 15.3:
Note: I used pod install with Podfiles to manage dependencies. Have you tried to clean the build folder and reinstalling the pods?
@KunJeongPark I have already tried reinstalling the pods and cleaning the build folder, but the issue persists. I have tested the project on Xcode 15.3, and the problem still occurs on my end. It would be great if you could try running my demo project as well, which is quite small and easy to set up. This way, you can reproduce the issue on your machine.
Additionally, we are seeing the same error when using PayPal (without Venmo), specifically when accessing BTPayPalVaultRequest. The issue occurs if the following line is included:
req.offerCredit = true
When we comment this line, the project works fine.
The overall error that we get in the console is
dyld[58658]: Symbol not found: _$s9Braintree24BTPayPalVaultBaseRequestC11offerCreditSbvsTj
Referenced from: <30AAA43D-16D7-31B2-AB8A-9878BC91C355> /Users/xyz/Library/Developer/CoreSimulator/Devices/51135919-7D72-4FE7-9CF9-3740E1D79569/data/Containers/Bundle/Application/5FE89493-5227-4882-886F-2A299DDF6206/xc15testApp.app/Frameworks/xc15testframework.framework/xc15testframework
Expected in: <7C87D6B3-3E20-33A4-BA7A-54AE843AC03F> /Users/xyz/Library/Developer/CoreSimulator/Devices/51135919-7D72-4FE7-9CF9-3740E1D79569/data/Containers/Bundle/Application/5FE89493-5227-4882-886F-2A299DDF6206/xc15testApp.app/Frameworks/Braintree.framework/Braintree
@Navdeep2020 Thank you for providing me with the project. I do see the crash with your projects but I am not able to recreate it with project I am building in a similar manner. I am comparing settings, etc.
So just to clarify, you had this same issue with our SDK 6.20.0, 6.23.2, 6.23.3 and last working version for your application was 5.2 as mentioned in the original post? or 5.21 as mentioned in more recent post?
I will continue to investigate this with my team next week.
Hi @KunJeongPark 5.21 was the last working version for us. We shifted from 5.21 to 6.23.2,6.23.3(all non-working versions) etc
We were able to successfully compile your app by adding these lines in the Podfile of your app project.
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['BUILD_LIBRARY_FOR_DISTRIBUTION'] = 'YES'
end
end
end
There must be something different about how we built our frameworks because I couldn't recreate the crash on my end building project similar to yours. But the above lines fixed your sample project so it doesn't crash.
Hey all -
Just checking to see if the solution @KunJeongPark provided resolved the issue you all were seeing.
Yes, it worked, @KunJeongPark . However, our SDK, which includes Braintree 6.23.2, is used by company billers, meaning all billers would need to update their pod files on the app side. Could you implement this change on your end to prevent each biller from having to do it manually?
Hey @Navdeep2020 -
You should be able to set this up in the framework you are building that wraps the Braintree SDK. On the SDK side we are setting this value to true, but since you are building a framework that wraps the Braintree SDK you'd need to set it at that level as well. You may find this cocoapods GitHub issue helpful as it lists some solutions for building frameworks with dependencies with this flag.
Braintree SDK Version
6.23.2
Environment
Both
Xcode Version
15.4
OS Version & Device
ios 16
Integration type
CocoaPods
Development Processor
Apple Silicon (M-series chips)
Describe the bug
I recently updated the Braintree SDK in my iOS project from version 5.21 to 6.23.2. After making the necessary changes in the Podfile, AppDelegate, and other integration points, the application worked fine during the initial testing.
However, after integrating the SDK into our Customer Portal (CP) and completing all required updates (including pod updates and version upgrades), the app crashes on the launch screen.
Error in console is:
To reproduce
Steps to Reproduce:
Expected behavior
The app should not crash. Bit confused that line 28 is correct or not.
Screenshots
No response