Crash when building iOS app - ios

We made an app in Unity for a client as following:
Little logo animation as start - works fine
Introduction video which starts automatically - works fine
Overview with START button - iPhone crashes
After the START there is supposed to be an overview with 4 mini games: one Augmented reality figure, 360 degrees video with VR glasses, VR shooting game with glasses and a simple memory game.
First we build the app in 32 bit, which worked fine. Apple only allows 64 bit in App Store, so we changed it. It still worked. Then Apple gave us this feedback:
Oct 3, 2017 at 4:02 PM
From Apple
Guideline 2.1 - Performance - App Completeness
Thank you for your resubmission. After further review we found that your app still crashed on iPad running iOS 11.0.1 connected to an IPv6 network when we:
Launch the app
Skip the intro
Tap on the start button
App crashes
This occurred when your app was used:
On Wi-Fi
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 that it runs as expected.
Oct 4, 2017 at 2:59 PM
From jvandijk#ic-space.com (IC Space B.V.)
Dear Sir,
Thanks for quick update regarding issue in application.
As we submitted recent version for only iPhone as deployment target so can you please review it for iPhone only?
Or is there any specific step we need to follow to use this application only for iPhone.
Thanks
Angela
Oct 4, 2017 at 3:04 PM
From Apple
Hello Angela,
Thank you for your response.
Regarding the 2.1 issue, while we understand that your application is designed specifically for iPhone, we require all applications to run properly at iPhone resolution when viewed on iPad.
It would be appropriate to address this issue and make sure that your app displays and runs properly at iPhone resolution on iPad.
We are looking forward to reviewing your resubmission.
Best regards,
App Store Review
So what we did change is:
Put target device on iPhone Only and Architecture on Universal.
After that we got the crash and before all the games worked fine!
We run the crash report, but we do not see any problems.
I also check with iOS 10 apart from 11 and then I got the same issue, so it is something wrong in sources of unity I think.

Related

Firebase Crashlytics falsely reporting crashes?

I have an iPhone app where I use Firebase Crashlytics.
The following happened:
I build a new version of my app and uploaded it to Testflight.
After that I stopped working for the day :)
The next day I saw a crash report in crashlytics for this new app version, dating to approx. 15 min after my upload the previous day. The data says the crash was recorded on an iPhone 7.
So at this point, this specific app version was only available to me and Apple.
I am sure, that I did not open the app (or experienced a crash) at this time AND I do not even own an iPhone 7.
I highly doubt that Apple Beta-Reviewers are using an iPhone 7 to review an app, after all it's 2021. Also a review 15 min after upload seems not very likely.
Does anyone have an explanation for this? Is the crash even real?
Is it possible that crashes are falsely reported to/by Crashlytics? If so, how?
I've never heard of such a thing tbh.
No, Crashlytics can’t generate crash reports when no one has run the app. Someone ran it.
The fact that you just uploaded it for review makes it very likely that Apple did run it. We have a collection of old devices with various iOS versions for testing our apps in real world scenarios, on less capable devices. I would not be at all surprised if Apple does the same thing.

How can I run my hybrid mobile app in debug/development mode on an iPhone?

TL;DR: I can run our app in development mode through VS2015 with remote debugging on the iPhone 5c that I have, but I cannot do the same on the iPhone 4s.
I'm having some difficulty getting a Cordova powered hybrid app to deploy on one particular device in my development environment... However I'm unsure if this is something I'm doing wrong or if there's some compatibility issue here. Posting a question here in the hopes that someone can help me work out what's going on.
Just for some background: The app in question was created using Intel XDK, then ported across to Visual Studio 2015 when Intel recently removed some of XDK's "Debug" functionality. A few things needed to be adapted, but the project does still include some of Intel's JS code as it was in the original project.
My environment includes:
Windows 10 Pro (primary desktop)
Apple Mac Mini with OSX "El Capitan" 10.11.6 (on the network as a build server)
iPhone 5c with iOS 8.3
iPhone 4s with iOS 9.0.2
While configuring this environment, I followed the instructions here. The remotebuild agent is configured to use http only to keep it simple, since this is all contained within a corporate network anyway.
After this I could run our app on the iPhone 5c without any problems, but trying to run it on the iPhone 4s gives an error in VS2015 stating:
Failed to deploy iOS remote for <project_path>\bld\ios\Debug\buildInfo.json to http://10.66.7.23:3000/cordova:
Error from http get [object Object]: Error: socket hang up
Note: There are no errors in the remotebuild console output on the Mac and VS builds the project correctly, but then fails to deploy it.
I've also tried multiple Provisioning Profiles on both devices, installed using iTunes, Xcode or Apple Configurator 2; but thanks to the provisioning profiles not showing up on devices with iOS 8 or newer, I can't even verify that they're installed at all.
Both of these devices can install and run the previous version of this app (available in app stores), but I need to be able to inspect the DOM in real-time, because even though they have the same screen size, the responsive break points are behaving differently.
So, before I pull out what little hair I do have left, please could somebody help me work out what the hell is going on here?? I've been fighting with this for over a week now and I feel like I'm going round in circles.
After all this backwards and forwards with the iPhone 4s, it turns out the device itself was actually faulty. Somehow this had translated to having a version of iOS that was not installed correctly, which resulted in software issues for apps running on the device.
This was not immediately apparent to us because of the unfortunate lack of devices we had access to for testing, but since I managed to get my hands on an iPad Mini with 9.3.5 and an iPhone 6 with 10.2.1, we've managed to verify our app's compatibility with the newer OS versions.
Anyways, in closing I just wanted to say a massive thank you for all the suggestions and ideas I got in the question comments (especially #Gandhi, sorry about the bounty story, I still feel like you deserve that just for being so helpful).
Despite the fact that my particular issue was not something that could be resolved here on SO, I have still learned a great deal during this process and I am so very grateful.
Even the answer is already posted by the Questioner himself, I m still posting mine for the benefit of others.
When a build deploys fine on one device running on iOS 8 and not on the one running on iOS 9, it could either be problem with iOS version due to the security changes or it could be the device compatibility problem.
In such case, the quick way to narrow down the problem is to test the build on other device with the same version (iOS 9). But unfortunately in #Zalithka's case he dint had device to test. But if someone encounters such problem, try out in different devices to narrow down the problem quickly and nail it.

How do I fix a Net.stream iOS crash

I am a teacher who has developed an app that streams video tutorials to mobile devices. The app has been around for a while and was originally built in CS6 using AIR SDK 20. More recently I have moved to CC and published the app using CC and AIR SDK 23 and 24 (including beta 24.0.180).
The app now crashes on IOS first access after installing the app. When you open the app up again, it opens but will crash when pulling up the control centre, pulling down the notification bar, clicking on the home button or minimising the app with a pinch.
I have stripped out the code and have isolated the problem to video streaming within the project. The issue is replicated using the xml and swf file found here: Dropbox -
https://www.dropbox.com/sh/h4rht8ksps2k1gg/AADdlFLst5CALJgl6oUsziIUa?dl=0
(everything has been stripped from the project so I appreciate that no video will play - didn't need it to play to replicate the issue). The app has been installed on iPad Air with IOS10 and iPad Mini 1 IOS9, but my students have also experienced the issue on iPhones running IOS7 +.
Any help with this would be much appreciated as my students would like to use the app without the issues.
Kind regards
Matt

How to test for iOS devices I will never have access to

I recently released an app. It passed well through its testing phase with ten or so users running it day to day on a variety of devices. The app is not really intended for iPad but it works.
On release day a small number of users pitched up saying that the app crashed or that the layout on their iPad was weird. All the complainants were using iPhone 5 or better or recent iPads. I have a pretty new iPhone5, and I went out and bought a new iPad mini. Everything tests perfectly.
So here is my question(s):
What is the strategy for debugging a bug I can't see and I can't test, and when I have no error to work from?
Are there known bugs in these newer devices that I need to be looking at?
Ask users that are experiencing the issue and giving you feedback for sending you screenshots. This would help you to narrow issues with weird layout.
Add a crash reporting SDK to your project like HockeyApp or Crashlytics to get the crash logs. Then, when you symbolicate them, you will get the detailed information about which line of your code is crashing the app.

App crashes on iPhone 5S but not on iPhone 4S.

I have an iPhone app that I have developed and tested on my iPhone 4S. The app is released on the market and some users claim that the app is unusable as it crashes on start up.
I have done exactly the same things as the users have to their devices, running the same version of the app on my iPhone 4S and I cannot get it to crash.
I have been to the houses of users and plugged their phones into my computer to get the log read out and when I do, I get errors that I am not getting on my phone and my mac.
I am completely at a loss as to how I start to find the solution to a problem like this. Does anyone have even the faintest ideas?
A good start will be to integrate a crash log collecting, crash reporting SDK in your app like HockeyApp, TestFlight, Crittercism or QuincyKit.
This will send you the crash logs to you so you don't have to collect them manually. These tools can also automatically symbolicate the crash logs for you so you can find the source of the crash in your code.
You should test a release build before you ship it. Archive a release build and distribute it as an Ad-Hoc build. You can load a saved IPA file to your iDevice using iTunes or Organizer. The thing is that you can test a release build which is the same you would ship to the App Store (they are signed differently but the build configuration is the same unless you changed that).
iPhone 5S ships with 64-bit A7 processor. Your iPhone 4 is a 32-bit device. Most likely processor architecture is not the case but as Apple says: Before you distribute your app, you must test it on actual hardware. Some of the runtime changes can be detected only when the app is running on a device. I recommend you updating your set of test devices with different models. I still own an old iPhone 3GS which is great for spotting performance issues.
The general comments others have posted are correct. Add crash logging into your app with a pre-made SDK and test on an actual device. I can't add much more to those points, but I will tell a short story about a similar bug that I found in one of my apps in the hopes it helps you with your issue.
Our app was predominately iPad2 users. When the iPad4 was released, waves of our users upgraded and they started experiencing an issue that was not present on iPad2. Two network requests were fired off at the same time and the result from one of them was crashing. We eventually found out it was a concurrency bug. The result of the first request was being processed "too quickly" and the code was getting to a critical section of code that was not thread-safe with the other request handler.
While this bug was still possible on the iPad2 if the network latency fluctuated just right, it never happened that way. The iPad4 made it happen almost every time.
You can use https://github.com/CocoaLumberjack/CocoaLumberjack lib to collect crash data logs from users.
Have you considered installing a crash logger in your app? There are plenty out there (Flurry, TestFlight, Crittercism, Hockey App, etc).
Most are fairly straightforward to install - add a framework and a couple of lines of code. Once you've done this, you'll (hopefully) be able to see exactly where your app is crashing on the users' devices, without having physical access to them.

Resources