Submitted an app to the iOS store yesterday and they threw me back some crash logs that happened on launch. All the shiny numbers in the log apparently mean something, but I can't find out how to translate them. According to old forum posts, I need a dysm or a symbolicate link file. However, the references that point to the solution seem to be expired. Looking throug the .ipa in Winrar, I see my strings files, extensions, icons and the like, but nothing that I can see relates to a .dysm. Where would I find this? To have it work fine in debug with a dev provision/certificate and then have it not with a iTunes release prov/cert leads me to believe it may be related to that, but I only had one testing device at the time so I am a bit worried.
Side Question: I was unable to install the ipa when I changed it from dev to release. This is normal though, since it doesn't have the testing device's uid in the provision, correct?
you can find .dysm:
open your app in xcode -> open products -> right click and show in finder(.app)
or
you must operate in computer which you archived.
I use Animate on Mac and the .dysm file is automatically produced when the .ipa is produced.
Typically a .dysm file is used along with the crash reports to isolate the symbol/object/function that has caused the crash. But it the case of AIR app this isn't workable.
https://forums.adobe.com/thread/1693126
To test your app before submitting to the App Store for approval you should upload it to TestFlight. This allows you to test a distribution build.
For you TestFlight compatible build you need to add a couple of nodes to you app-descriptor file.
<Entitlements>
<![CDATA[ <key>get-task-allow</key>
<false/>
<key>beta-reports-active</key>
<true/> ]]>
</Entitlements>
https://forums.adobe.com/thread/1652215
If your TestFlight app crashes you can access the device logs via Xcode to see what happened. Or build in some kind of trace output textfield into your app where you can output what is happening as your app loads. Similar to how you would use trace() in debug mode.
Related
Installed with testflight the application does appear in the list of target applications to share an image with. When I select my application icon in the list I do get a normal Post dialog. After pressing "Post" in the dialog the application does open but nothing else happens.
When the same version of application is installed with xcode the shared file is delivered and the application displays the shared image.
I am not even sure how to debug such an issue as the application installed by testflight does not appear in the list of installed applications in xcode Devices window. Nothing that I can find in device logs either.
Please suggest any approach to troubleshooting the issue.
Update: I found a way to get much more detailed logs from device than the one provided by xcode's "Devices" window: deviceconsole utility. This gives at least some information to approach troubleshooting.
Update 1: It turns out that the application installed through ad hoc ipa file exported from the same archive that was submitted to testflight shows the same problem. This allows much quicker testing turn around.
This answer indicates that the problem can be caused by "Deployment Target" of extension set above the ios version of test device. I did try different combination of this setting in the application and extension, nothing helped thus far.
Update 2: I created code-level support request with apple for this issue and provided full source of the application to them. After few months of apathetic communications they concluded that the problem is due to a bug and suggested to create report Apple Bug Reporter. I did that and after another few months of more apathetic communications the issue was promptly closed on the basis that the application does not crash. Frustrating, but I still need to resolve the problem, now looks like without help from vendor.
If the deployment target is higher than the version number of the actual phone, your code cannot run. So the only choice is reducing the deployment target of the extension to be the same as the app.
I’d check if you have somehow set different deployment targets for debug and release.
I have an app in beta using TestFlight and I have been noticing crash reports appearing.
most of the reports are this
If I click on the button Open in project in the Organizer it takes me no where
This appears to be an internal crash correct?
How can I find out what UIBarButtonItem is causing the crash?
I Hope this will help you: Apple doc Crash Report , as you can see in the doc in the Listing 4 the crash report is fully symbolicated , Listing 6 shows partially symbolicated crash reports which looks like your case
From Apple Doc
You must keep both the application binary and the .dSYM file in order to be able to fully symbolicate crash reports. You should archive these files for every build that you submit to iTunes Connect. The .dSYM and application binary are specifically tied together on a per-build-basis, and subsequent builds, even from the same source files, will not interoperate with files from other builds. If you use Xcode's Build and Archive command then they will be placed in a suitable location automatically. Otherwise any location searchable by Spotlight (such as your home directory) is fine.
For more information about this you can check portion after Listing 6 in Symbolication
you can use crashlytics for identifying where the app is crashed.It will give the Controller name and line number of code also.
https://docs.fabric.io/ios/index.html Document
Easy to add your project also
I 'completed' an app and submitted it to the app store. The app was rejected because they couldn't get the app to start. They sent me images and they look different than anything that I have seen while debugging.
I created an ad hoc .ipa and loaded it onto my device and then I was able to see the same symptoms. Some images are missing, including the 'start' button.
It does not cause a crash, so I can't use crash reports to debug the problem.
Are there certain settings that I need to modify to make sure that a distributed app and a debugged app are the same?
I am using Xcode 5.1.1 and Cocos2D.
(Some of the images that are missing are images whose zOrder I modified; I don't know if this is relevant or not).
One of the missing images is 'tower_blank.png' shown in the project navigator in the screen shot below:
I found a solution that fixed the problem. I would love to get some feedback as to whether this is a good idea or not.
Under 'Build Settings->Apple LLVM 5.1 - Code Generation->Optimization Level' I changed the Release setting from 'Fastest,Smallest' to 'None'
We're using TestFlight to send out pilots of our app.
There's a part of the app that is crashing, and we had a lot of trouble reproducing the crash. The code their is fairly simple.
It turns out that the users who got the App via TestFlight get the crash, while if you build the app and install it using the IDE it doesn't crash!
Anyone have ideas about what might be causing this?
Any ideas for workarounds? We don't want to stop using TestFlight.
Make sure to build your app in Release Mode not in Debug. The app may only crash when in Release.
The first thing I'd try is to map the crash stack trace to function names in your application. This may yield useful insight into the nature of the crash:
As soon as a crash is reported request the crash log. This can be obtained through Xcode's organizer or if that's not an option it can be screen-captured from the iPhone's Settings -> General -> About -> Diagnostics & Usage -> Diagnostic & Usage Data. Scroll to the app name or the section LatestCrash-AppName.plist.
Although you can in theory symbolicate a crash, I find the procedure described below a foolproof way to get symbols from the stack. Convert all stack addresses for the crashing thread into method names.
Optionally request the iDevice syslog. This may include assertion failure messages which are also invaluable. Note that this should be done as quickly as possible as the syslog only holds so many entries before they get dropped. You can use the Organizer or the cmd line idevicesyslog to obtain this.
Manual symbolication:
This will work as long as your builds have debug information.
Obtain the _exact_same_ .ipa that crashed. If you didn't save it you can download it from the device by using iFunBox or the cmd line ideviceinstaller utility.
Unzip the .ipa
Run the following command on the executable file (Payload/AppName.app/AppName):
otool -tv AppName.app | c++filt > listing.asm
Wait while the previous step completes (may take a while). The generated listing.asm file will be several megabytes long.
Using an editor that can handle large files search listing.asm for the addresses listed in the stack trace. Note that the addresses may be a few bytes off (usually pointing 3 or so bytes ahead). Also, addresses that aren't found in listing.asm indicate addresses in iOS libraries. Ignore those for now.
Of course, if you're able to symbolicate, you can skip this procedure.
Good luck debugging!
We had a similar problem. The issue with us was static libraries. When we built the app from scratch and went to testflight, it was crashing but from the IDE it wasn't. The crash was because the static libraries did not get included when doing a build, but was getting included if I connected the iPad direct and used XCode to install.
A simple test will prove this:-
1.) Instead of building from IDE, create a .app file and then load it via iTunes and check if you are getting the crash.
We worked around this by creating the .iPA manually, that is creating the .app then making a Payload folder and putting the .app in it along with the info.plist.
Then things began to work in Testflight as well.
I have an iPad app that we are distributing over the air for QA and Beta testers; we have both a debug and and a release config that we are building. Our build process puts together the website and the PLIST manifest file that that iOS needs to install the app. The release build downloads correctly, but the debug build does not. The only difference between the two manifest files is the application that it's pointing to. I've checked server permissions, signing issues (the same app that won't install OTA can be pushed via iTunes) all to no avail.
Most of the other articles out here deal with the file nearly installing and then choking (that's typically the wrong provisioning file).
Thanks for any help you can provide.
I've gotten this error before when the device has a version of iOS below the supported version of the application.
Check the url on plist file. Make sure it has correct path with http://
It turns out the problem was two-fold. One of the iPads had too old of iOS, and the other was there was a hidden character in the URL
It's also possible that the bundle ID is incorrect. We have multiple bundle IDs so we used to get them mixed up. In addition the icon URL is incorrect. Had that problem too