App store app submission issue in ios - ios

My app got rejected from app store with a reason that it crashes on launch screen. However, I've searched tremendously for any possibility that could cause the crash on launch, but unfortunately I am not able to reproduce the issue at all.
I've tried all steps mentioned by apple's team: symbolicated the crash logs, changed region of the device from India to US, tried keep the internet connection off/on while launching and so many things.
I have successfully uploaded more than 30 apps on app store and dealt with rejection several times... this time it is really killing me. I would really appreciate any help in this matter.
UPDATE
one thing I just noticed in the log: the app crashed when it was using 9.0.2 and now I've upgraded to 9.1 and it looks impossible to degrade again to 9.0.2 so is there any possibility that issue only occurs in 9.0.2 and if so, how can I resolve it without being able to reproduce it?

You should analyze the crash reports before submitting the app to app store.
You can find the guidelines to submit crash reports in Apple's documentation.
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/AnalyzingCrashReports/AnalyzingCrashReports.html

Related

iOS App Crashing on launch when users updated to iOS 13.6

I have an iOS app in the store written in Swift that seemed to be working fine for the last 2 years. However, in the recent past, users reported that the app was crashing after they updated to iOS 13.5.1.
During this time, several other notable apps like Spotify, Pinterest, Tiktok ad Instagram were crashing as well due to some Facebook SDK bug which they claimed to have fixed.
None the less, I removed the Facebook SDK from the app and resubmitted the app as an update hoping to fix this issue.
Users have installed the new updated and some users have even updated to iOS 13.6. A few users have reported crashes again on app launch.
The problem is I am unable to reproduce the crash on a device or a simulator.
I was wondering and hoping someone ran into this issue and has any ideas on how to resolve this ?
Edit
Here are the crash logs I see from the app store after the advice from Benjamin below: https://pastebin.com/BPbn77T8 - when I click open in project: http://prntscr.com/tpnxp1 - it leads me to this line of code in the project
let classification = aDecoder.decodeObject(forKey: "classification") as! String
I know it is not a lot of code to work with but this issue never occurred before the latest iOS 13.4 update that I know off.
Thanks
Issues like this - where a user reports a crash that you cannot replicate locally - are why remote logging is important.
The best way to solve an issue like this is to enable remote logging/crash reporting BEFORE the issue arises. That way you have logs and stack traces that can help you see what caused the crash.
For more info, take a look at services like Google Crashlytics, Datadog, or New Relic. I’m not advocating for any. There are many services out there. But those are some common examples.

iOS 13 TestFlight not reporting crash, only feedback.json

With the new feature of iOS 13 to report crashes for TestFlight builds, on some apps I have a problem that only feedback.json is reported without actual crash report.
Is there anything to enable?
Worth to mention that crashalitics is enabled and not reporting any of the crash.
Update: so after some investigation, I found that reports without a crash logs are system terminations. In my case when I extracted device logs from the phone and it was 0xbadf000d, one of the meanings is system terminated a long process in the background. Seems it was always there, but with iOS13 Testflight feedback it becomes visible with popups.
By the wat, somehow logs from Xcode "Devices and simulators" are not in sync with logs directly on the phone.
Takeaway: Faced a need to manually simbolicate a crash report, so found super useful stackoferlow post: https://stackoverflow.com/a/45207863/3032917
This happens when the watchdog kills the application due to some reason. we can check the logs in the Analytic & Improvement section
I am facing the same issue, the system terminates the network extension due to some reason. And, many users has downloaded the app from test-flight and they are seeing the default crash alert from OS. since test-flight feedback does't contain crash logs, i am not able to identify the problem.
Encountered the same behaviour when the specific device was on low storage. The device has less than 50 MB remaining from 30GB of storage.
You mixed up the crash log and crash feedback of TestFlight.
What you see in JSON format is Crash Feedback. It is available since iOS 13 devices and can be obtained by App Store Connect > TestFlight.
For Crash Log, it can be found in Xcode > Organizer > Crashes. If you cannot see the logs, it will appear few hours later (but please make sure dSYM is enabled when you're uploading the archive to the App Store Connect).

Apple's answer to my app: App rejected because it crashed but I can't find the crash

I received an App Submission Feedback from Apple:
Thank you for your resubmission.
We were unable to review your app as it crashed on launch. We have
attached detailed crash logs to help troubleshoot this issue.
Next Steps
To resolve this issue, please revise your app and test it on a device
to ensure it will launch without crashing.
I'm unable to find the crash reason, It seems like an unsymbolicated crash, which are often useless. My app doesn't crash when I test it, not even in release mode. It works perfectly in emulator as well as other real devices I have tested (Such as iPhone 4s, 5, 7 and also an iPad, iOS 9 and 10)
Here is the crash log
Please let me know if you have any idea what I can do to see what is the problem or if you know what is the problem, I would really appreciate your help, I can't submit my app to app store until this problem is resolved.
Note: The application was created with react native.
I have the same problem and rejected 2 time. My app created by React Native and have Facebook Login using FBSDK. It work fine on iOS Simulator and Testflight, but Apple reject and said it crash on startup up, they unable to test.
On the first time, i'm just rebuild, increase the version, submit again, and Apple accept it.
The second time is just yesterday and going to submit again.

App Crashes When Downloaded From App Store But Not When Testing

I have a serious issue which I cannot seem to solve.
Recently I have made an update to an IOS app, and when testing in XCODE as both Ad-Hoc, Debug, and installing via the .IPA on a device the issue cannot be replicated. However when I download the app from the App Store, it crashes.
Does anyone know how this could happen, and any potential solutions? I am getting lots of complaints from users, and not sure what to do?
Could part of the binary upload have got corrupted?
Probably you always compiled your app in debug mode. But when sent to App Store you made a release compile. click the arrow in the run button select scheme and chose "release mode" and run your app it will probably crash.
check if you used NSParameterAssert as they are not called in release mode
I cannot say why your live App Store application is crashing and the debug version is not. Two possible solutions:
Crash reports:
To find out why your application crashed, you might want to check if there are any crash reports available on iTunes Connect. Log in on iTunes Connect and click on your application. Scroll down to Crash Reports. You will find out more about why your application is crashing here.
More information about crash reports here at Apple's own iOS Developer Library.
Prerelease your app with TestFlight: For in the future: test your application by uploading it on iTunes Connect and testing it with TestFlight first before submitting the application to the iTunes Store. This will save you a lot of (review) time if you find a error.
I realize this is an old thread but I had the same issue with my App that I released. Meaning it worked fine in testing, but when I released it it would crash. The culprit ended up being the fact that I am using In App Purchases. I have two items that can be "bought" but I had only enabled one of them. In testing it was able to read both of them, but with the release version, it was only pulling the one that was enabled down, creating the crash. The fix was simply enabling the disabled item. I didn't even have to redistribute the app, though I had to wait for it to "percolate" through... Anyway this may help someone in the future.
Check if your app is looking for too many IAPs.
I just had this problem and my problem was I had deleted an IAP from the App Store, but didn't remove it from the app code.
For some reason it only crashed when downloaded; I used a promo code to do this before launching my app.
Thanks to Tornado for the inspiration to try this variation.

App rejected by App Store due to some unknown bugs

My app got rejected and it is showing this message:
It says it has bugs in iPad running, but I have only built the app for iPhone and not for iPad.
When I'm testing it on iPhone 5s having the same function it is working fine and in live tv I'm giving a url which gets down from the server some times and shows the message this event is currently not working.
How can these issues be resolved.
We found that your app exhibited one or more bugs, when reviewed oniPad running iOS 7.1.1 and iPhone 5s running iOS 7.1.1, on both Wi-Fi and cellular networks, which is not in compliance with the App Store Review Guidelines.
The Live TV features does not work.
For discrete code-level questions, you may wish to consult with Apple Developer Technical Support. When the DTS engineer follows up with you, please be ready to provide:
- complete details of your rejection issue(s)
- screenshots
- steps to reproduce the issue(s)
- symbolicated crash logs - if your issue results in a crash log
If you have difficulty reproducing a reported issue, please try testing the workflow as described in <https://developer.apple.com/library/ios/qa/qa1764/>Technical Q&A QA1764: How to reproduce a crash or bug that only App Review or users are seeing.
Follow the information in the tech note that was mentioned in your rejection. This makes sure that you are testing the identical app that was sent to Apple. Debug builds may behave differently from Release builds for all kinds of reasons.
There may be something in your local environment that makes things work only on your network. Go to the nearest Starbucks and try the app there.
Your app may do things that crash when it is run first but fix things for the second run. Erase the app from your device before trying it.
You may know weak points of your app and avoid them subconsciously. Apple's testers don't. They try to break your app. Get someone to try out your app and pay them money for problems found so they try to find the problems.

Resources