From c3ae0850b2e026deca22cdde0d8ed99189c24650 Mon Sep 17 00:00:00 2001 From: SotoiGhost Date: Wed, 9 Oct 2019 21:35:34 -0500 Subject: [PATCH] [Firebase][Crashlytics] Updated to version 3.14.0 * Added a flag that handles the upload dSYM process, so the user can now decide if wants to execute the process * Added a flag that handles the error, if any, of the upload process as a warning or as an error * This closes issue #210 * This closes issue #275 --- Readme.md | 2 +- components.cake | 12 +++---- .../CrashlyticsSample.csproj | 1 + .../Firebase/Crashlytics/Crashlytics.csproj | 6 ++-- source/Firebase/Crashlytics/Crashlytics.props | 16 +++++++++ .../Firebase/Crashlytics/Crashlytics.targets | 32 +++++++++-------- source/Firebase/Crashlytics/readme.txt | 34 +++++++++++++++++++ 7 files changed, 80 insertions(+), 23 deletions(-) create mode 100644 source/Firebase/Crashlytics/Crashlytics.props create mode 100644 source/Firebase/Crashlytics/readme.txt diff --git a/Readme.md b/Readme.md index dc425ef45..cbd284135 100644 --- a/Readme.md +++ b/Readme.md @@ -13,7 +13,7 @@ Xamarin creates and maintains Xamarin.iOS bindings for the Google APIs for iOS L | [Xamarin.Firebase.iOS.CloudFirestore][F.CloudFirestore.Name] | [1.4.2.0][F.CloudFirestore.Package] | | [Xamarin.Firebase.iOS.CloudMessaging][F.CloudMessaging.Name] | [4.1.1.0][F.CloudMessaging.Package] | | [Xamarin.Firebase.iOS.Core][F.Core.Name] | [6.1.0.0][F.Core.Package] | -| [Xamarin.Firebase.iOS.Crashlytics][F.Crashlytics.Name] | [3.10.3.1][F.Crashlytics.Package] | +| [Xamarin.Firebase.iOS.Crashlytics][F.Crashlytics.Name] | [3.14.0.0][F.Crashlytics.Package] | | [Xamarin.Firebase.iOS.Database][F.Database.Name] | [6.0.0.0][F.Database.Package] | | [Xamarin.Firebase.iOS.DynamicLinks][F.DynamicLinks.Name] | [4.0.1.0][F.DynamicLinks.Package] | | [Xamarin.Firebase.iOS.InstanceID][F.InstanceID.Name] | [3.4.0.0][F.InstanceID.Package] | diff --git a/components.cake b/components.cake index dadf99280..55b515608 100644 --- a/components.cake +++ b/components.cake @@ -6,7 +6,7 @@ Artifact FIREBASE_AUTH_ARTIFACT = new Artifact ("Firebase.Aut Artifact FIREBASE_CLOUD_FIRESTORE_ARTIFACT = new Artifact ("Firebase.CloudFirestore", "1.4.2", "8.0", ComponentGroup.Firebase, csprojName: "CloudFirestore"); Artifact FIREBASE_CLOUD_MESSAGING_ARTIFACT = new Artifact ("Firebase.CloudMessaging", "4.1.1", "8.0", ComponentGroup.Firebase, csprojName: "CloudMessaging"); Artifact FIREBASE_CORE_ARTIFACT = new Artifact ("Firebase.Core", "6.1.0", "8.0", ComponentGroup.Firebase, csprojName: "Core"); -Artifact FIREBASE_CRASHLYTICS_ARTIFACT = new Artifact ("Firebase.Crashlytics", "3.10.9", "8.0", ComponentGroup.Firebase, csprojName: "Crashlytics"); +Artifact FIREBASE_CRASHLYTICS_ARTIFACT = new Artifact ("Firebase.Crashlytics", "3.14.0", "8.0", ComponentGroup.Firebase, csprojName: "Crashlytics"); Artifact FIREBASE_DATABASE_ARTIFACT = new Artifact ("Firebase.Database", "6.0.0", "8.0", ComponentGroup.Firebase, csprojName: "Database"); Artifact FIREBASE_DYNAMIC_LINKS_ARTIFACT = new Artifact ("Firebase.DynamicLinks", "4.0.1", "8.0", ComponentGroup.Firebase, csprojName: "DynamicLinks"); Artifact FIREBASE_INSTANCE_ID_ARTIFACT = new Artifact ("Firebase.InstanceID", "4.2.1", "8.0", ComponentGroup.Firebase, csprojName: "InstanceID"); @@ -69,8 +69,8 @@ void SetArtifactsDependencies () FIREBASE_CLOUD_FIRESTORE_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_AUTH_ARTIFACT }; FIREBASE_CLOUD_MESSAGING_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTANCE_ID_ARTIFACT }; FIREBASE_CORE_ARTIFACT.Dependencies = null; - FIREBASE_CRASHLYTICS_ARTIFACT.Dependencies = null; - FIREBASE_DATABASE_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_AUTH_ARTIFACT }; + FIREBASE_CRASHLYTICS_ARTIFACT.Dependencies = new [] { /* Needed for sample */ FIREBASE_CORE_ARTIFACT }; + FIREBASE_DATABASE_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, /* Needed for sample */ FIREBASE_AUTH_ARTIFACT }; FIREBASE_DYNAMIC_LINKS_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT }; FIREBASE_INSTANCE_ID_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT }; FIREBASE_MLKIT_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_MLKIT_COMMON_ARTIFACT }; @@ -78,7 +78,7 @@ void SetArtifactsDependencies () FIREBASE_MLKIT_MODEL_INTERPRETER_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTANCE_ID_ARTIFACT, FIREBASE_MLKIT_COMMON_ARTIFACT }; FIREBASE_PERFORMANCE_MONITORING_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTANCE_ID_ARTIFACT, FIREBASE_AB_TESTING_ARTIFACT, FIREBASE_REMOTE_CONFIG_ARTIFACT }; FIREBASE_REMOTE_CONFIG_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_INSTANCE_ID_ARTIFACT, FIREBASE_AB_TESTING_ARTIFACT }; - FIREBASE_STORAGE_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_DATABASE_ARTIFACT, FIREBASE_AUTH_ARTIFACT }; + FIREBASE_STORAGE_ARTIFACT.Dependencies = new [] { FIREBASE_CORE_ARTIFACT, FIREBASE_DATABASE_ARTIFACT, /* Needed for sample */ FIREBASE_AUTH_ARTIFACT }; GOOGLE_ANALYTICS_ARTIFACT.Dependencies = null; GOOGLE_APP_INDEXING_ARTIFACT.Dependencies = null; @@ -130,8 +130,8 @@ void SetArtifactsPodSpecs () PodSpec.Create ("GoogleAppMeasurement", "6.0.4") }; FIREBASE_CRASHLYTICS_ARTIFACT.PodSpecs = new [] { - PodSpec.Create ("Crashlytics", "3.10.9"), - PodSpec.Create ("Fabric", "1.7.13") + PodSpec.Create ("Crashlytics", "3.14.0"), + PodSpec.Create ("Fabric", "1.10.2") }; FIREBASE_DATABASE_ARTIFACT.PodSpecs = new [] { PodSpec.Create ("Firebase", "6.5.0", frameworkSource: FrameworkSource.Pods, frameworkName: "FirebaseDatabase", targetName: "FirebaseDatabase", subSpecs: new [] { "Database" }) diff --git a/samples/Firebase/Crashlytics/CrashlyticsSample/CrashlyticsSample.csproj b/samples/Firebase/Crashlytics/CrashlyticsSample/CrashlyticsSample.csproj index 427b77ef2..7590fdad8 100644 --- a/samples/Firebase/Crashlytics/CrashlyticsSample/CrashlyticsSample.csproj +++ b/samples/Firebase/Crashlytics/CrashlyticsSample/CrashlyticsSample.csproj @@ -1,6 +1,7 @@  + Debug iPhoneSimulator diff --git a/source/Firebase/Crashlytics/Crashlytics.csproj b/source/Firebase/Crashlytics/Crashlytics.csproj index 701dc5d46..762871ba2 100644 --- a/source/Firebase/Crashlytics/Crashlytics.csproj +++ b/source/Firebase/Crashlytics/Crashlytics.csproj @@ -6,7 +6,7 @@ Firebase.Crashlytics Firebase.Crashlytics 1.0.0.0 - 3.10.9 + 3.14.0 Resources true @@ -23,7 +23,7 @@ https://go.microsoft.com/fwlink/?linkid=873305 https://go.microsoft.com/fwlink/?linkid=873306 true - 3.10.9 + 3.14.0 @@ -36,6 +36,8 @@ + + diff --git a/source/Firebase/Crashlytics/Crashlytics.props b/source/Firebase/Crashlytics/Crashlytics.props new file mode 100644 index 000000000..a4144a6a2 --- /dev/null +++ b/source/Firebase/Crashlytics/Crashlytics.props @@ -0,0 +1,16 @@ + + + + + True + + + True + + diff --git a/source/Firebase/Crashlytics/Crashlytics.targets b/source/Firebase/Crashlytics/Crashlytics.targets index 5a6d73ca0..13dc7e57c 100644 --- a/source/Firebase/Crashlytics/Crashlytics.targets +++ b/source/Firebase/Crashlytics/Crashlytics.targets @@ -2,11 +2,14 @@ <_FirebaseCrashlyticsAssemblyName>Firebase.Crashlytics, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - <_FirebaseCrashlyticsItemsFolder>FCrshlytcs-3.10.9 + <_FirebaseCrashlyticsItemsFolder>FCrshlytcs-3.14.0 <_FirebaseCrashlyticsSDKBaseFolder>$(XamarinBuildDownloadDir)$(_FirebaseCrashlyticsItemsFolder)\iOS\ - <_FabricItemsFolder>Fbrc-1.7.13 + <_FabricItemsFolder>Fbrc-1.10.2 <_FabricSDKBaseFolder>$(XamarinBuildDownloadDir)$(_FabricItemsFolder)\iOS\ <_FabricScriptName>upload-symbols + + <_FirebaseCrashlyticsUploadSymbolsContinueOnError Condition="'$(FirebaseCrashlyticsUploadSymbolsContinueOnError)'=='True'">True + <_FirebaseCrashlyticsUploadSymbolsContinueOnError Condition="'$(FirebaseCrashlyticsUploadSymbolsContinueOnError)'!='True'">False <_FirebaseCrashlyticsUploadDSymToFirebaseMasterAfterTargets Condition="'$(OS)'=='Unix'">Build @@ -20,11 +23,7 @@ - https://kit-downloads.fabric.io/cocoapods/crashlytics/3.10.9/crashlytics.zip - Zip - - - https://kit-downloads.fabric.io/cocoapods/fabric/1.7.13/fabric.zip + https://kit-downloads.fabric.io/cocoapods/crashlytics/3.14.0/crashlytics.zip Zip @@ -33,6 +32,11 @@ -ObjC -lc++ -lz Security SystemConfiguration + + + https://kit-downloads.fabric.io/cocoapods/fabric/1.10.2/fabric.zip + Zip + Framework True @@ -42,20 +46,20 @@ + Condition="'$(_FirebaseCrashlyticsUploadDSymToFirebaseMasterDependsOnTargets)'!='' AND '$(_SdkIsSimulator)'=='False' AND '$(FirebaseCrashlyticsUploadSymbolsEnabled)'=='True'" + AfterTargets="$(_FirebaseCrashlyticsUploadDSymToFirebaseMasterAfterTargets)" + BeforeTargets="$(_FirebaseCrashlyticsUploadDSymToFirebaseMasterBeforeTargets)" + DependsOnTargets="$(_FirebaseCrashlyticsUploadDSymToFirebaseMasterDependsOnTargets)" /> - + - <_CopyFilesToMacOutput Include="$(XamarinBuildDownloadDir)$(_FabricItemsFolder)\$(_FabricScriptName)"> $(_FabricScriptName) @@ -67,6 +71,6 @@ - + diff --git a/source/Firebase/Crashlytics/readme.txt b/source/Firebase/Crashlytics/readme.txt new file mode 100644 index 000000000..cabc55411 --- /dev/null +++ b/source/Firebase/Crashlytics/readme.txt @@ -0,0 +1,34 @@ +////////////////////////////////////// +// Xamarin.Firebase.iOS.Crashlytics // +////////////////////////////////////// + +Xamarin.Firebase.iOS.Crashlytics NuGet has an MSBuild task that uploads the +dSYM symbols of your app to Firebase Console at build time. + +This upload process happens only when building on Release and if a device is +selected. If you want to upload the dSYM regardless of the configuration, +define the following property anywhere in your .csproj but before of the +Xamarin.Firebase.iOS.Crashlytics.targets import: + +``` + + True + +``` + +If you want to disable the upload dSYM process, regardless of the configuration, +change the value from 'True' to 'False'. + +The upload process is disabled for simulators. + +Also, there's a property that helps you to keep building your app even if the +upload process fails. This is 'True' by default and the error will be treated as +a warning, but if you want it to be treated as an error, define the following +property anywhere in your .csproj but before of the +Xamarin.Firebase.iOS.Crashlytics.targets import: + +``` + + False + +```