Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: Crash on OneSignal.initWithLaunchOptions(_:) #1310

Closed
1 task done
djtarazona opened this issue Sep 1, 2023 · 7 comments · Fixed by #1311
Closed
1 task done

[Bug]: Crash on OneSignal.initWithLaunchOptions(_:) #1310

djtarazona opened this issue Sep 1, 2023 · 7 comments · Fixed by #1311

Comments

@djtarazona
Copy link

djtarazona commented Sep 1, 2023

What happened?

Our app, which uses the OneSignal iOS SDK, is reportedly crashing on launch. I believe I've found the crash reports from Apple in Xcode Organizer.

Screenshot 2023-09-01 at 05 03 10

We aren't aware of any code changes made to introduce this crash. It did not begin with a new build/release - suddenly the build we have had on the App Store for 5 days began crashing.

The only thing I've found so far that may be related: We created an In-App Message the day the crash began. 👀

Opening the crash report in Xcode gives some more detail. It is crashing when initializing an array: [__NSPlaceholderArray initWithObjects:count:]

Screenshot 2023-09-01 at 05 07 39

Note we are initializing OneSignal on the main thread with the code:

OneSignal.setLogLevel(.LL_WARN, visualLevel: .LL_NONE)
OneSignal.setLocationShared(false)
OneSignal.initWithLaunchOptions(launchOptions)
OneSignal.setAppId("<app_id>")

Here is a full crash report: OneSignalLaunchCrash.txt

Steps to reproduce?

Our users are reporting the app is crashing on launch. I have been unable to reproduce.

What did you expect to happen?

App should launch normally with no crash

OneSignal iOS SDK version

3.11.5

iOS version

16

Specific iOS version

* iOS 16.6

Relevant log output

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct
@djtarazona djtarazona changed the title [Bug]: Crash on [Bug]: Crash on OneSignal.initWithLaunchOptions(_:) Sep 1, 2023
@emawby
Copy link
Contributor

emawby commented Sep 1, 2023

@djtarazona Thank you for reporting are you able to reproduce this issue when debugging? I noticed that you are also using version 3.11.5. This issue could already have been fixed so you could try updating to 3.12.6 or to the new major version 5.0.1

@djtarazona
Copy link
Author

I will update to 3.12.6 and see if that solves the issue.

Our engineering team still cannot reproduce the issue. We're going to rely on our external TestFlight beta testers for now. We're waiting for Beta App Review at the moment. I will report back. Thanks!

@djtarazona
Copy link
Author

I'm curious if setting the App ID before calling OneSignal.initWithLaunchOptions()will solve the issue? Any thoughts on trying that as well?

OneSignal.setAppId("<app_id>")
OneSignal.initWithLaunchOptions(launchOptions)

@djtarazona
Copy link
Author

@emawby We updated to the OneSignal SDK to 3.12.6 and that did not fix the issue.

Last Exception Backtrace:
0   CoreFoundation                	       0x187154cb4 __exceptionPreprocess + 164
1   libobjc.A.dylib               	       0x1801e83d0 objc_exception_throw + 60
2   CoreFoundation                	       0x1872faf84 -[__NSCFString characterAtIndex:].cold.1 + 0
3   CoreFoundation                	       0x1872f79c4 -[__NSPlaceholderArray initWithCapacity:].cold.1 + 0
4   CoreFoundation                	       0x1871500a8 -[__NSPlaceholderArray initWithObjects:count:] + 252
5   CoreFoundation                	       0x1871513e8 __createArray + 48
6   CoreFoundation                	       0x1872075f8 +[NSArray arrayWithObject:] + 32
7   OneSignalOutcomes             	       0x105ece00c -[OSChannelTracker currentSessionInfluence] + 104
8   OneSignalOutcomes             	       0x105ecf22c -[OSTrackerFactory influences] + 184
9   OneSignalOutcomes             	       0x105ecb458 -[OSSessionManager initSessionFromCache] + 76
10  OneSignalOutcomes             	       0x105ecb3d0 -[OSSessionManager init:withTrackerFactory:] + 128
11  OneSignalOutcomes             	       0x105ecb314 +[OSSessionManager sharedSessionManager] + 84
12  OneSignal                     	       0x105f32614 +[OneSignal init] + 68
13  OneSignal                     	       0x105f313b8 +[OneSignal setAppId:] + 236
14  OneSignal                     	       0x105f3161c +[OneSignal initWithLaunchOptions:] + 560
...

OneSignalLaunchCrash-SDK3.12.6.txt

We'd appreciate anything you can do to expedite a resolution to this issue as our app is crashing on launch and unusable for thousands of users. 🙏

@djtarazona
Copy link
Author

I was able to fix the crash! But I'm not sure if this breaks anything else.

Saturn-Technologies@b5d13e3

With some debug code, I got this output of [OSChannelTracker description] from a user who was crashing:

OSChannelTracker tag: iam_id influenceType: UNATTRIBUTED indirectIds: (null) directIds: (null)
OSChannelTracker tag: notification_id influenceType: DIRECT indirectIds: (null) directIds: (null)

If you review the code, the crash makes sense.

if (_influenceType == DIRECT) {
if ([self isDirectSessionEnabled]) {
NSArray *ids = [NSArray arrayWithObject:_directId];
builder.ids = ids;
builder.influenceType = DIRECT;
}
} else if (_influenceType == INDIRECT) {

The code was hitting this line, trying to initialize an array with nil.

My "fix" is to not enter that code block if _directId is nil.

Hopefully this is enough information for a proper fix. Please let me know if you need anything else. Thanks!

@emawby
Copy link
Contributor

emawby commented Sep 5, 2023

@djtarazona Thank you for investigating that is very helpful we will work on implementing the fix! You are also welcome to submit a PR if you would like

@djtarazona
Copy link
Author

djtarazona commented Sep 5, 2023

@emawby We'll leave getting a proper fix implemented in your hands, as I'm not sure how Outcomes / attribution is supposed to work and worry while this code may fix the crash, it may break something else in OneSignal. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants