How to symbolicate for Xamarin.iOS on Windows - xamarin

I submitted an iOS app which failed review due to a crash. I was given the crash report which unfortunately for me, was useless because I didn't keep the dSYM files and .app file that I apparently needed to decipher the crash report.
First question -
I've built a new release and I've stored the dSYMs folder away for safe keeping, but I can't find the .app file that I apparently need. this link here suggested that I could change the .ipa file to a zip and then get the .app from unzipping it but there was nothing in the zipped folder once I changed its extension to .zip How to symbolicate crash/error logs from a Xamarin Forms iOS project?
Second question - How do I symbolicate on windows? I've seen guides like this one, but it only shows you how to do it on a MAC. The problem I have is that the project is entirely built on my windows machine which is networked to a MAC. https://jmillerdev.com/symbolicating-ios-crash-files-xamarin-ios/

I was able to symbolicate the crash reports given by apple from the review by using this guide:
https://jmillerdev.com/symbolicating-ios-crash-files-xamarin-ios/
or
How to symbolicate crash/error logs from a Xamarin Forms iOS project?
Basically what you need to do:
Get the .dSYM and .app file from the archived release folder and put it on your MAC in a folder some where. Additionally, put the crash report in the same folder. (The crash report on App Store Connect will be a .txt file. Change it to .crash) Open up the terminal and change the current working directory to that folder I just mentioned. e.g. cd /Applications/crashFolder
Run the following terminal commands
alias symbolicate="/Applications/Xcode.app/Contents/SharedFrameworks/DVTFoundation.framework/Versions/A/Resources/symbolicatecrash -v"
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer"
Symbolicate your .crash file with this terminal command:
symbolicate -o "symbolicatedCrash1.txt" "crash1.crash" "MyApp.app"

Related

Remove local app M1 Mac that was created in Xcode

I'm working on an iOS Xcode project on an M1 Mac. I set the run destination as (This Mac) and ran the app on the Mac. Now I need to delete the app to clear its data because I need to make sure a file copy operation happens on first run. A search in Finder shows me the app in /Users/my Name/Library/Developer/Xcode/DerivedData/myXcodeProject-cpkgxnpaxvacnldboddpfgojwukv/Build/Products/Debug-iphoneos
I can delete the app from there but when I run it again all of its data is still there.
I don't see any other supporting files in that directory.
The data I want to delete are the files that are automatically copied to the Apps Documents Directory. Any suggestions how to scrub that app off the Mac?
First, open the terminal and do the following:
cd ~/Library/Containers
find . -iname "*bloons*"
This will return an output which is showing a match in an obscured directory name. You need to delete the app and its directory with:
rm -Rf 2EC6B4BC-DD8D-4D49-89A1-4376990BF693
The original answer could be found here:
https://forums.macrumors.com/threads/how-to-uninstall-ios-ipados-apps-on-m1-macs-and-where-do-they-store-their-files.2275923/?post=29453766#post-29453766

Programmatic Symbolication of Crash Logs

I am attempting to symbolicate crash logs that I have automatically sent to a server. My app's crash logs and dSYM files are sent to the server upon my app crashing. The issue I am having is symbolicating them. I would like to do this programmatically so that the process can be automated. Thus I am trying to use the symbolicatecrash terminal command as a subprocess in a python script. But before I even try to implement that, I need to get symbolicatecrash working properly. entering the following command is unsuccessful;
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash -o /Users/aj/Documents/symbolicatedcrash.crash com.COMPANYNAME.TEST_APP.crash TEST_APP.app.dSYM
I use the -o option to write the output to a file. Entering this code does not return an error. The output file is created, the crash log is just not symbolicated.
From researching peoples' similar questions, I've found that downloading the .ipa file and unzipping it can help. I have done so and found that the symbolicatecrash command does indeed symbolicate if the .app file is on the server.
My issue is that I do not want to download the .ipa file. Downloading it every time there is a new crash (or at least a new build) would be inefficient for the server. I would just like to download the dSYM and crash file itself upon each app crash.
My question is ultimately then: Can I symbolicate a crash log by using just the dSYM file? If so, can it be done with the symbolicatecrash terminal command?
Thanks
after further experimentation, I found that you indeed need the .ipa file or the archived app binaries to fully symbolicate the crash log.
you do not need to include those files in the terminal command though; The example I gave in the question works if you have the app binaries anywhere on your computer. The command will use spotlight to find the app binaries, and then return a fully symbolicated crash log.
note: it important that your binaries/crash log/dSYM files all come from the same build to have a fully symbolicated log.

App name does not exist in Instruments dSYM Locations

I'm trying to re-symbolize my project in instruments since it's not showing functions name under TimeProfiler. But I'm not able to find my App under the dSYM Locations.
I don't know why, but for some reason the profiling schema under xcode had 'release' config instead of 'debug'!! changing that back to debug solved the problem.
This is a bug with spotlight and Lion.
Unfortunately "mdimport ." command does not work in all situations ( this command should tell where to look for the dsym files, if you were in the dsym folder it must work)
So i end up locating manually in instruments the files under: /Users/YOUR_USER_HERE/Library/Developer/Xcode/DerivedData/YOUR_APP_HERE/Build/Products and then select the appropriate folder and DSym files.
To be able to select Library folder you need to write this command: chflags nohidden ~/Library/

Symbolicate crash file with dSYM and .ipa file

Is there any concreate way to symbolicate crash logs from my app, i have following things
dSYM file
.ipa Application file
myapp.crash
-
I have tried symbolicatecrash script but it does not work somehow
Xcode does not work also i have Xcode 4.3
I even tried system 'atos' command but it gives me some c or c++ file
I dont have build file in my archive is it because of that, because app was build in different machine ?
This may be too late.. but i saw the method in another link that i am now trying to find :P
Rename your .ipa file to .zip
Open the zip file to extract the app
now run symbolicatecrash script or delete the .symbolicated folder
and restart xcode
if not helpful to you, hope this helps others.
Edit: found the place Symbolicating iPhone App Crash Reports
Aside from xcode's tools, you can use atos: https://stackoverflow.com/a/4954949/312725
Be sure to take slide into account as well: https://stackoverflow.com/a/13576028/312725

Deploy / build application for OSX

I have created my first XE2 FM HD application.
I have my OSX machine connected and running debug builds on OSX works fine, but I don't have a way to create a release version and copy it to another computer.
I tried just copying over the Package made by the debug but that's missing files.
Inside XE2 I went to Project -> Deployment.
For the OSX Debug deployment I have a green button, but under OSX Release deployment I don't.
Clues?
Here's step-by-step instructions for building the App bundle and putting in the required dynamic link library:
Create a folder called MyApp.app
Create a subfolder in Myapp.app called Contents
Create a subfolder in Contents called MacOS
Create a subfolder in Contents called Resources
From your build, copy Info.plist into Contents
From your build, copy the Mac binary to MacOS
From your build, copy the icon to Resources
Copy libcgunwind.1.0.dylib to MacOS
Copy the .app folder to your Mac and double-click it to run
You will find libcunwind.1.0.dylib on your Mac where you installed the platform assistant, most likely:
/Users/username/Applications/Embarcadero/PAServer/
Here's a video tutorial on how to create the manual install Disk Image installer on the Mac.

Resources