Closed sergiofresneda closed 11 months ago
Finally applying this PR to my project, now I can compile the project, but it crash and throw next error:
[FBLPromise firebaseInstallationID]: unrecognized selector sent to instance 0x6000003e3630
Hello Sergio! Thank you for reaching out to us about this issue. We are currently investigating solutions to support a wider variety of FirebaseSDK versions.
We are also trying to reproduce your runtime crash. Could you send us what dependencies you currently have? The Package.resolved
file or a screenshot of the Package Dependencies
tab would be great.
Hi @pontusj-bambuser, this is the Package.resolved
file:
{
"object": {
"pins": [
{
"package": "abseil",
"repositoryURL": "https://github.com/google/abseil-cpp-binary.git",
"state": {
"branch": null,
"revision": "bfc0b6f81adc06ce5121eb23f628473638d67c5c",
"version": "1.2022062300.0"
}
},
{
"package": "AppCenter",
"repositoryURL": "https://github.com/microsoft/appcenter-sdk-apple.git",
"state": {
"branch": null,
"revision": "5756ddb0f09041e91bdb3b73c17296ac005ad11a",
"version": "5.0.3"
}
},
{
"package": "CS_iOS_SDK",
"repositoryURL": "https://github.com/ContentSquare/CS_iOS_SDK.git",
"state": {
"branch": null,
"revision": "6b431882be9886e27993cb5e38c41a1a4d1ff7f0",
"version": "4.24.0"
}
},
{
"package": "CwlCatchException",
"repositoryURL": "https://github.com/mattgallagher/CwlCatchException.git",
"state": {
"branch": null,
"revision": "682841464136f8c66e04afe5dbd01ab51a3a56f2",
"version": "2.1.0"
}
},
{
"package": "CwlPreconditionTesting",
"repositoryURL": "https://github.com/mattgallagher/CwlPreconditionTesting.git",
"state": {
"branch": null,
"revision": "02b7a39a99c4da27abe03cab2053a9034379639f",
"version": "2.0.0"
}
},
{
"package": "Firebase",
"repositoryURL": "https://github.com/firebase/firebase-ios-sdk.git",
"state": {
"branch": null,
"revision": "e700a8f40c87c31cab7984875fcc1225d96b25bf",
"version": "10.11.0"
}
},
{
"package": "FMDB",
"repositoryURL": "https://github.com/ccgus/fmdb",
"state": {
"branch": null,
"revision": "61e51fde7f7aab6554f30ab061cc588b28a97d04",
"version": "2.7.7"
}
},
{
"package": "GoogleAppMeasurement",
"repositoryURL": "https://github.com/google/GoogleAppMeasurement.git",
"state": {
"branch": null,
"revision": "62e3a0c09a75e2637f5300d46f05a59313f1c286",
"version": "10.11.0"
}
},
{
"package": "GoogleDataTransport",
"repositoryURL": "https://github.com/google/GoogleDataTransport.git",
"state": {
"branch": null,
"revision": "cc7265b8e3906304e6e81f32c1662a94bbae2357",
"version": "9.2.2"
}
},
{
"package": "GoogleUtilities",
"repositoryURL": "https://github.com/google/GoogleUtilities.git",
"state": {
"branch": null,
"revision": "871d43135925cde39ef7421d8723ce47edfdcc39",
"version": "7.11.1"
}
},
{
"package": "gRPC",
"repositoryURL": "https://github.com/google/grpc-binary.git",
"state": {
"branch": null,
"revision": "f1b366129d1125be7db83247e003fc333104b569",
"version": "1.50.2"
}
},
{
"package": "GTMSessionFetcher",
"repositoryURL": "https://github.com/google/gtm-session-fetcher.git",
"state": {
"branch": null,
"revision": "d415594121c9e8a4f9d79cecee0965cf35e74dbd",
"version": "3.1.1"
}
},
{
"package": "ImglyKit",
"repositoryURL": "https://github.com/imgly/imglykit-sp.git",
"state": {
"branch": null,
"revision": "aaeab421d096d317102648766bacc9c1ef8dcf09",
"version": "10.29.0"
}
},
{
"package": "Kingfisher",
"repositoryURL": "https://github.com/onevcat/Kingfisher",
"state": {
"branch": null,
"revision": "af4be924ad984cf4d16f4ae4df424e79a443d435",
"version": "7.6.2"
}
},
{
"package": "KlarnaMobileSDK",
"repositoryURL": "https://github.com/klarna/klarna-mobile-sdk-spm",
"state": {
"branch": null,
"revision": "bd2d6b532d71f72c7ed25ce138dfa3f99bcd77ba",
"version": "2.6.8"
}
},
{
"package": "leveldb",
"repositoryURL": "https://github.com/firebase/leveldb.git",
"state": {
"branch": null,
"revision": "0706abcc6b0bd9cedfbb015ba840e4a780b5159b",
"version": "1.22.2"
}
},
{
"package": "Lottie",
"repositoryURL": "https://github.com/airbnb/lottie-ios",
"state": {
"branch": null,
"revision": "79a0b70547f7c40ea54c67487f935fa2f2eaaadc",
"version": "3.2.3"
}
},
{
"package": "nanopb",
"repositoryURL": "https://github.com/firebase/nanopb.git",
"state": {
"branch": null,
"revision": "819d0a2173aff699fb8c364b6fb906f7cdb1a692",
"version": "2.30909.0"
}
},
{
"package": "Nimble",
"repositoryURL": "https://github.com/Quick/Nimble.git",
"state": {
"branch": null,
"revision": "af1730dde4e6c0d45bf01b99f8a41713ce536790",
"version": "9.2.0"
}
},
{
"package": "PLCrashReporter",
"repositoryURL": "https://github.com/microsoft/PLCrashReporter.git",
"state": {
"branch": null,
"revision": "1aed8f7dc79ce8e674c61e430ef51ca3db18cea9",
"version": "1.11.1"
}
},
{
"package": "Promises",
"repositoryURL": "https://github.com/google/promises.git",
"state": {
"branch": null,
"revision": "ec957ccddbcc710ccc64c9dcbd4c7006fcf8b73a",
"version": "2.2.0"
}
},
{
"package": "Resolver",
"repositoryURL": "https://github.com/hmlongco/Resolver.git",
"state": {
"branch": null,
"revision": "97de0b0320036607564af4a60025b48f8d041221",
"version": "1.5.0"
}
},
{
"package": "RiskifiedBeacon",
"repositoryURL": "https://github.com/Riskified/riskified-ios-beacon",
"state": {
"branch": null,
"revision": "bdb2fb65e63cc53be15451bb19f2d15fa0efe8b8",
"version": "1.3.3"
}
},
{
"package": "SnowplowTracker",
"repositoryURL": "https://github.com/snowplow/snowplow-ios-tracker.git",
"state": {
"branch": null,
"revision": "1f76199fb4015d6722ffd10b56b197cf2abba42b",
"version": "5.4.2"
}
},
{
"package": "SwiftProtobuf",
"repositoryURL": "https://github.com/apple/swift-protobuf.git",
"state": {
"branch": null,
"revision": "0af9125c4eae12a4973fb66574c53a54962a9e1e",
"version": "1.21.0"
}
},
{
"package": "Optimizely",
"repositoryURL": "https://github.com/optimizely/swift-sdk.git",
"state": {
"branch": null,
"revision": "193cc00e1004d29f16f7b32e5b6787199760c482",
"version": "3.10.1"
}
},
{
"package": "Trackingplan",
"repositoryURL": "https://github.com/trackingplan/trackingplan-ios",
"state": {
"branch": null,
"revision": "5049ab6db8dfd64b92aa32a949a60acdb5ce524f",
"version": "1.0.29"
}
},
{
"package": "VideoEditorSDK",
"repositoryURL": "https://github.com/imgly/vesdk-ios-build",
"state": {
"branch": null,
"revision": "b0244465df00c4b420b72c9cba024399d3d921ec",
"version": "10.29.0"
}
},
{
"package": "ZIPFoundation",
"repositoryURL": "https://github.com/weichsel/ZIPFoundation.git",
"state": {
"branch": null,
"revision": "cf10bbff6ac3b873e97b36b9784c79866a051a8e",
"version": "0.9.12"
}
}
]
},
"version": 1
}
BTW: I'm not sure why the SDK needs this Firebase dependency, I guess internally is used because of Bambuser needs analytics data or crashlogs…, but it force the apps to add this Google Service explicitly even if they are not agree with (is not our case), but countries such as CN could have different points of view for Google Services.
Thanks
Thank you Sergio! We will look into it.
Yes, we are working on moving away from firebase. For now it is needed as the SDK has deep integration with Firebase Firestore. One of the key improvement points we have planned for the future is to use no external libraries for the SDK, but it will take some time and we have no date when that will be done.
We are still having trouble reproducing the runtime crash. Do you use any third party framework installed in some other way than SPM, like trough cocoa pods? That is a known issue with firebase.
What happens if you change your own dependency to firebase to 10.7.0?
If possible, could you send the compiled app to us (from Build/Products/Debug-iphoneos directory)? If you feel uneasy to upload it to GitHub you can mail it to me at pontus.jacobsson@bambuser.com. Otherwise it would be great if we could have a quick meeting to try and debug it together.
We just use SPM for dependencies, I'll send you more information about the issue on Monday. BTW I did test (and got the crash) on Simulator iOS 16.6.x.
I can't change my dependecy version to a lower one, because of some parts of the app uses the last framework functionalities.
I'll talk with our architecture team to send you the compiled app into your mail.
Log when the app crash on launch, seems an issue having two Firebase instances ~and SnowplowTracker
~
2023-09-18 08:33:50.380693+0200 App[28364:185924] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[FBLPromise firebaseInstallationID]: unrecognized selector sent to instance 0x600001a2e460'
*** First throw call stack:
(
0 CoreFoundation 0x000000012566e78b __exceptionPreprocess + 242
1 libobjc.A.dylib 0x000000011a95bb73 objc_exception_throw + 48
2 CoreFoundation 0x000000012567d8c4 +[NSObject(NSObject) instanceMethodSignatureForSelector:] + 0
3 CoreFoundation 0x0000000125672c66 ___forwarding___ + 1443
4 CoreFoundation 0x0000000125674e08 _CF_forwarding_prep_0 + 120
5 App 0x000000010317784f -[FIRInstallationsItem updateWithStoredItem:] + 79
6 App 0x0000000103186531 __54-[FIRInstallationsStore installationForAppID:appName:]_block_invoke.23 + 209
7 App 0x00000001031ad0b1 __56-[FBLPromise chainOnQueue:chainedFulfill:chainedReject:]_block_invoke.67 + 113
8 App 0x00000001031ac8af __44-[FBLPromise observeOnQueue:fulfill:reject:]_block_invoke_2 + 159
9 libdispatch.dylib 0x000000012ab2554f _dispatch_call_block_and_release + 12
10 libdispatch.dylib 0x000000012ab267ec _dispatch_client_callout + 8
11 libdispatch.dylib 0x000000012ab377e9 _dispatch_main_queue_drain + 1725
12 libdispatch.dylib 0x000000012ab3711e _dispatch_main_queue_callback_4CF + 31
13 CoreFoundation 0x00000001255cc6cc __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
14 CoreFoundation 0x00000001255c6fbe __CFRunLoopRun + 2429
15 CoreFoundation 0x00000001255c6264 CFRunLoopRunSpecific + 560
16 GraphicsServices 0x000000012c30a24e GSEventRunModal + 139
17 UIKitCore 0x000000014ba2f7bf -[UIApplication _run] + 994
18 UIKitCore 0x000000014ba345de UIApplicationMain + 123
19 App 0x0000000101a26464 main + 276
20 dyld 0x0000000115d49384 start_sim + 10
21 ??? 0x000000020d7d941f 0x0 + 8816268319
)
Message from debugger: Terminated due to signal 6
I sent you the compiled file to your mail
EDIT:
I was talking with architecture team and they explain me how fix snowplow issue, with this already fixed the issue seems not be related with it.
Hello again Sergio. We received the compiled app and has investigated it some.
What we found is that you also have the legacy PlayerSDK. Please remove it from the app, as it will create duplicated frameworks for BambuserLiveVideoShoppingPlayer.framework. After doing this we recommend cleaning the DerivedData
folder, as there might still be multiple references in the cache.
Also, please try changing the C compiler optimization level to "none [-O0]" in Xcode build settings (Build Settings-> Apple Clang - Code Generation-> Optimization Level)
If none of these works, please reach out to us and we will try to push a new release with a newer firebase version so we can try. The whole binary is actually also compiled with an exact version of firebase-iOS-SDK, which is what might be the problem when you change it only in the package.swift file.
Hi @pontusj-bambuser, I also moved the module which manage Bambuser SDK, from XCProject to a SPM and now seems to work.
Thanks! now just with the active PR seems to work all fine.
Great to hear Sergio. I will close this now, but feel free to contact us or open another issue if you have any future problems.
@sergiofresneda We have now updated this project to support higher versions of firebase. So now you can use tag "1.1.1" instead of your own fork.
I'm trying to integrate this Bambuser SDK but I got the next error:
As far as I figure out, this is a conflict between Bambuser SDK dependency (Firebase exact v 10.7.0) and my project dependency (Firebase v 10.11.0).
So changing Firebase dependency version it solves the issue.
Firebase iOS SDK Changelog