I am trying to integrate Crashlytics with Xamarin.iOS. I have successfully added a binding and started the logger with my API key. I'm able to crash the app but no reports are landing on the web dashboard. When adding Crashlytics to an xcode project it prompts you to add a build phase task to run a script (Which I believe uploads your symbol files to their website).
./Crashlytics.framework/run APIKEY
After creating a binding of the framework for Xamarin this doesn't work as expected... I haven't added a build task in Xamarain Studio but running the command from the terminal yeilds:
MacBook-Pro:Crashlytics.framework user$ ./run APIKEY
2013-09-04 16:10:49.941 run[9238:707] Crashlytics.framework/run 1.2.3
2013-09-04 16:10:49.943 run[9238:707]
Crashlytics: Failed to Detect Build Environment
BUILT_PRODUCTS_DIR value not found in environment
So finally the question:
How do you integrate this build script into the Xamarin environment? Do I need to copy more assets around to trick the run command into thinking all is well?
Latest versions of Xamarin Studio support Crashlytics out of the box:
We had been using Crashlytics with our Xamarin project. But, it seems with Xamarin.iOS 8.6 and/or Xamarin Studio 5.7 it is no longer supported, and the Crashlytics APIs have changed.
Here are the steps I used.
In the Xamarin Studio , go to the touch container and add the Crashlytics API key in the Build -> Crash reporting section. Build and run that app. The evidence suggests that is enough to get data sent to Crashlytics. I saw that it knew about older versions of the app I had built and ran weeks ago with the API key already in.
Go to Xcode and create a new project with the same name as the Xamarin project, com.{company}.{appname}. (You probably need to have that profile downloaded.) I did it in Swift by the way with no issues.
Go to crashlytics.com com and go to settings -> Apps (or https://www.crashlytics.com/onboard)
You will get an app to download and run. The app walks through the steps of adding
A build phase run script
Code to the application main Crashlytics.startWithAPIKey(“nnnn”)
Run your Xcode version of the app
The Crashlytics web page popped up immediately.
Related
In order to enable Crashlytics for my Flutter app (with 3 flavors) i would like to know how the repeating upload of the symbols for the iOS project can be done when i configured Firebase in dart-only mode (i.e. i didn't have to download the GoogleService-Info-plist files for my 3 flavors)?
I've read that i could enter scripts for the upload in XCode under Targets Runner --> Build Phases
...but i wonder how i could differentiate between my 3 flavors, i.e what upload scripts are called if i e.g. build for staging environment?
Also it would be interesting to know if those symbol uploads would happen as well when i build/run the app in my Flutter IDE (IntelliJ).
When using Crashlytics with Flutter, the Crashlytics SDK is integrated using CocoaPods. Because of this, this would be the run script you should be using for your app:
"${PODS_ROOT}/FirebaseCrashlytics/run"
In this case, the script will try to locate the configured GoogleSErvices-Info.plist. However, you can pass the app ID as argument and in that case, the plist file is no longer required.
"${PODS_ROOT}/FirebaseCrashlytics/run" --app-id <your app ID>
You can find the app ID in your Firebase project settings.
I'm not sure how your project is configured, but you would need to run this command for your flavors or targets.
Lastly, when building the app, I believe that Flutter will invoke the Xcode builder, which should execute the run script too.
I wrote a Flutter app using IntelliJ on my Linux machine. I need to build the ipa file for iOS devices, and I do not have a Mac.
I plan on using a "Mac in the cloud" server to prepare the release build for the App Store. I have been mapping out all of the steps that I need to do to do the whole process, and I got to wondering: if I am opening my project folders on a server somewhere, do I have to configure the path to the Flutter SDK that I will have to download on to server machine?
I have looked at the Flutter.io documentation, but did not find an answer to this question.
Goal: to generate a release build for iOS on server machine from the project folders that I used on my Linux machine to make release build for Android.
Well, to answer my own question, IntelliJ seems to find the correct flutter path on its own somehow. It give me an error message after build command, but then continues using correct flutter path. I am pretty sure that I never told the program where to find flutter.
As part of fabric integration I have installed Fabric mac app,
I found that whenever I run the project(I am running iOS app through XCode), the Fabric app also gets launched automatically,
My Questions are:
Why it automatically launches when running project ?
Is there a way I can stop this happening ?
FYI: The same happens even when the app is running in simulator.
Mike from Fabric here. It's an odd behavior that you're seeing and is most likely due to an old version of the Run Script. Years ago, the run script build phase required the Fabric app to be present in order to handle the actual uploading of the dSYMs. We would move the dSYMs during the build of the app to a location that the Fabric app would then asynchronously upload them. That behavior was changed a long way back, but it's possible a new version never was included. The current version is: Fabric.framework/run 1.6.2 (205)
I'd check the version by running ./run -v from the project and update your Fabric and Crashlytics frameworks.
You can also remove Fabric.app completely from your system and switch to using CocoaPods or manual installation instructions. It hasn't been required to use for a couple of years.
I am using MobileFirst CLI 7.1. I want to deploy my MobileFirst CLI application to an IOS device. How can I do that?
I navigated to the iphone environment and tried to double click the .xcodeproj. In the XCODE I see that the project is still being shown as library.
I am getting this following error when I try to deploy the application,
. I have gone through stackoverflow questions. None of them were helpful.
I want to know how can I target remote server. (In Studio we had an option to deploy to remote environment.)
You already asked the second question: How to deploy MobileFirst CLI application to an android device?. The answer is still the same:
Also I want to know how can I target remote server. (In Studio we had an option to deploy to remote environment.)
In the Studio you did not have the option to "deploy to a remote server". You had the option to configure the application to point to a remote server (the properties you can edit in the worklight.plist(for iOS) / wlclient.properties file (for Android).
This feature does not exist in the CLI. After building the project, in case you want it to point to a different server, edit the properties in said file(s) to point to the remote server.
The first question is unclear.
I have done the following and was able to launch the project in Xcode and run the app in the iOS Simulator:
mfp create myproject
cd myproject
mfp add hybrid
added an app called "test"
mfp add environment iphone
mfp push
opened the project folder and navigated to apps\test\iphone\native, followed by double-clicking on the .xcodeproj file. The project opened in Xcode successfully and I then clicked on the Run button, and the app launched in the iOS Simulator.
I have recently installed the newest version of Cordova (phonegap) 3.4.1 on my iMac. Downloaded the helloworld app. Built it according to the documentation in the platform guides at the command line. Opened xcode (5.1.1) and opened the helloword.xcodeproj file. I see all the files that I expect under WWW directory. Selected a simulator and clicked the Build button. I get the message that build succeeded.
And that's it. I can't seem to run it.
command-R is grayed out. I can't find any configuration that allows Build and Run.
When I did native iOS app development a couple of years ago using XCode 4.x I had the option of build or build/run. I don't see that similar information now.
Basically I just want to see the freaking program run in the simulator and my friend Google is letting me down.