gamednastudio / crashlytics Goto Github PK
View Code? Open in Web Editor NEWA plugin for Unreal Engine 4 that lets you integrate automatic crash reporting solution into your project.
Home Page: https://www.gamednastudio.com
License: MIT License
A plugin for Unreal Engine 4 that lets you integrate automatic crash reporting solution into your project.
Home Page: https://www.gamednastudio.com
License: MIT License
Hi, I'm trying to get this plugin running. I've followed all the steps but now I'm stuck at step 6 when trying to upload the symbols on iOS.
I'm building from Mac and this is the error I'm getting:
DEBUG_INFORMATION_FORMAT should be set to dwarf-with-dsym for all configurations. This could also be a timing issue, make sure the Fabric run script build phase is the last build phase and no other scripts have moved the dSYM from the location Xcode generated it. Unable to process PROJECT_NAME.app.dSYM at path /Users/MY_USERNAME/Documents/Unreal Projects/PROJECT_NAME/PROJECT_NAME/Binaries/IOS/Payload/PROJECT_NAME.app.dSYM
I've tried copying the file PROJECT_NAME.dSYM from [PROJECT_FOLDER]/Binaries/IOS to [PROJECT_FOLDER]/Binaries/IOS/Payload and renaming it to PROJECT_NAME.app.dSYM
This seems to do the trick and the script runs successfully. However whenever I launch the app it crashes after the splash screen in here:
void UCrashlyticsBlueprintLibrary::InitCrashlytics()
{
#if PLATFORM_ANDROID
#elif PLATFORM_IOS
dispatch_async(dispatch_get_main_queue(), ^{
[Fabric with : @[[Crashlytics class]]];
});
#endif
}
And this is the output log:
Terminating app due to uncaught exception 'FABException', reason: '[Fabric] Value of Info.plist[Fabric][APIKey] must contain your Fabric API Key.'
I have followed all the steps so I don't know why or how this could be failing.
Any ideas on how can I fix this issue?
{ProjectName}\Plugins\Crashlytics\Source\Crashlytics\Crashlytics.Build.cs
// Crashlytics Plugin
// Created by Patryk Stepniewski
// Copyright (c) 2014-2018 gameDNA Ltd. All Rights Reserved.
using System.IO;
namespace UnrealBuildTool.Rules
{
public class Crashlytics : ModuleRules
{
public Crashlytics(ReadOnlyTargetRules Target) : base(Target)
{
PCHUsage = PCHUsageMode.UseExplicitOrSharedPCHs;
Definitions.Add("WITH_CRASHLYTICS=1"); // fixed
PublicIncludePaths.Add("Crashlytics/Public");
PrivateIncludePaths.Add("Crashlytics/Private");
PublicDependencyModuleNames.AddRange(new string[] { "Engine", "Core", "CoreUObject" });
PrivateIncludePathModuleNames.AddRange(new string[] { "Settings" });
// Additional Frameworks and Libraries for iOS
if (Target.Platform == UnrealTargetPlatform.IOS)
{
PublicAdditionalFrameworks.Add(
new UEBuildFramework(
"Fabric",
"../ThirdParty/iOS/Fabric.embeddedframework.zip"
)
);
PublicAdditionalFrameworks.Add(
new UEBuildFramework(
"Crashlytics",
"../ThirdParty/iOS/Crashlytics.embeddedframework.zip"
)
);
string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
AdditionalPropertiesForReceipt.Add(new ReceiptProperty("IOSPlugin", Path.Combine(PluginPath, "Crashlytics_UPL_IOS.xml")));// fixed
}
// Additional Frameworks and Libraries for Android
else if (Target.Platform == UnrealTargetPlatform.Android)
{
PrivateDependencyModuleNames.AddRange(new string[] { "Launch" });
string PluginPath = Utils.MakePathRelativeTo(ModuleDirectory, Target.RelativeEnginePath);
AdditionalPropertiesForReceipt.Add(new ReceiptProperty("AndroidPlugin", Path.Combine(PluginPath, "Crashlytics_UPL_Android.xml"))); // fixed
}
}
}
}
if ue4 project is built only for arm64[arm64-v8a], the app won't start with failure of crashlytics initialization(missing libcrashlytics.so).
what i guess is, libcrashytics.so is referenced by $Architecture for copying but final destination is always armeabi-v7a(armv7) not suitable for arm64 architecture.
... Crashlytics_UPL_Android.xml ...
<resourceCopies>
<copyFile src="$S(PluginDir)/../../Source/ThirdParty/AndroidLibs/$S(Architecture)/libcrashlytics.so"
dst="$S(BuildDir)/libs/armeabi-v7a/libcrashlytics.so" />
<copyFile src="$S(PluginDir)/../../Source/ThirdParty/AndroidLibs/$S(Architecture)/libcrashlytics-envelope.so"
dst="$S(BuildDir)/libs/armeabi-v7a/libcrashlytics-envelope.so" />
<copyFile src="$S(PluginDir)/../../Source/ThirdParty/AndroidLibs/$S(Architecture)/libunwind-crashlytics.so"
dst="$S(BuildDir)/libs/armeabi-v7a/libunwind-crashlytics.so" />
</resourceCopies>
[btw, thank you for all your supporting ๐. i missed saying it so far. X-D)
when Crashlytics plugin is disabled and doing Android Cooking,
facing this error message.
UATHelper: Packaging (Android (ASTC)): UnrealBuildTool: BUILD FAILED
UATHelper: Packaging (Android (ASTC)): UnrealBuildTool: D:{projectname}\Intermediate\Android\APK\build.xml:69: The following error occurred while executing this line:
UATHelper: Packaging (Android (ASTC)): UnrealBuildTool: D:{projectname}\Intermediate\Android\APK\custom_rules.xml:3: Cannot find D:{projectname}\Intermediate\Android\APK\crashlytics_build.xml imported from D:{projectname}\Intermediate\Android\APK\custom_rules.xml
UATHelper: Packaging (Android (ASTC)): UnrealBuildTool:
UATHelper: Packaging (Android (ASTC)): UnrealBuildTool: Total time: 0 seconds
what i've thought is,
custom_ruiles.xml defines [import "crashlytics_build.xml"] and it can't be referenced once plugin is disabled.
would you check it please?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.