Skip to content

Commit 478a3b3

Browse files
committed
Merge pull request #9 from bugsnag/ios-framerate
Ios framerate
2 parents 7423401 + c14005e commit 478a3b3

File tree

6 files changed

+30
-10
lines changed

6 files changed

+30
-10
lines changed

Bugsnag.unitypackage

712 Bytes
Binary file not shown.

Gemfile

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
source 'https://rubygems.org'
2+
3+
gem "rake"

Gemfile.lock

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
GEM
2+
remote: https://rubygems.org/
3+
specs:
4+
rake (10.4.2)
5+
6+
PLATFORMS
7+
ruby
8+
9+
DEPENDENCIES
10+
rake

src/Assets/Plugins/iOS/BugsnagUnity.mm

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#import "Bugsnag.h"
2+
#import "KSCrash.h"
23

34
extern "C" {
45
void SetContext(char *context);
@@ -71,14 +72,17 @@ void Notify(char *errorClass, char *errorMessage, char *severity, char *stackTra
7172

7273
NSDictionary *metaData = @{@"_bugsnag_unity_exception":@{@"stacktrace": stacktrace,
7374
@"notifier": notifier}};
74-
75-
[Bugsnag notify:[NSException exceptionWithName:ns_errorClass reason: ns_errorMessage userInfo: NULL] withData: metaData atSeverity: ns_severity];
75+
dispatch_async(dispatch_get_global_queue(0, 0), ^ {
76+
[Bugsnag notify:[NSException exceptionWithName:ns_errorClass reason: ns_errorMessage userInfo: NULL] withData: metaData atSeverity: ns_severity];
77+
});
7678
}
7779

7880
void Register(char *apiKey) {
7981
NSString *ns_apiKey = [NSString stringWithUTF8String: apiKey];
80-
[Bugsnag startBugsnagWithApiKey:ns_apiKey];
8182

83+
[KSCrash sharedInstance].suspendThreadsForUserReported = NO;
84+
85+
[Bugsnag startBugsnagWithApiKey:ns_apiKey];
8286
}
8387

8488
NSMutableArray *parseStackTrace(NSString *stackTrace, NSRegularExpression *stacktraceRegex) {

src/Assets/Standard Assets/Bugsnag.cs

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public class NativeBugsnag {
3838
public static extern void ClearTab(string tabName);
3939
#elif UNITY_ANDROID && !UNITY_EDITOR
4040
public static AndroidJavaClass Bugsnag = new AndroidJavaClass("com.bugsnag.android.Bugsnag");
41+
public static Regex unityExpression = new Regex ("(\\S+)\\s*\\(.*?\\)\\s*(?:(?:\\[.*\\]\\s*in\\s|\\(at\\s*\\s*)(.*):(\\d+))?", RegexOptions.IgnoreCase | RegexOptions.Multiline);
4142

4243
public static void Register(string apiKey) {
4344
// Get the current Activity
@@ -46,11 +47,14 @@ public static void Register(string apiKey) {
4647
AndroidJavaObject app = activity.Call<AndroidJavaObject>("getApplicationContext");
4748

4849
Bugsnag.CallStatic<AndroidJavaObject> ("init", app, apiKey);
50+
Notify("errorClass", "error message", "error", new System.Diagnostics.StackTrace (1, true).ToString (), true);
4951
}
5052

5153
public static void Notify(string errorClass, string errorMessage, string severity, string stackTrace) {
52-
var unityExpression = new Regex ("(\\S+)\\s*\\(.*?\\)\\s*(?:(?:\\[.*\\]\\s*in\\s|\\(at\\s*\\s*)(.*):(\\d+))?", RegexOptions.IgnoreCase | RegexOptions.Multiline);
54+
Notify(errorClass, errorMessage, severity, stackTrace, false);
55+
}
5356

57+
public static void Notify(string errorClass, string errorMessage, string severity, string stackTrace, bool warmup) {
5458
var stackFrames = new ArrayList ();
5559

5660
foreach (Match frameMatch in unityExpression.Matches(stackTrace)) {
@@ -79,7 +83,7 @@ public static void Notify(string errorClass, string errorMessage, string severit
7983
stackFrames.Add (stackFrame);
8084
}
8185

82-
if (stackFrames.Count > 0) {
86+
if (stackFrames.Count > 0 && warmup == false) {
8387

8488
IntPtr stackFrameArrayObject = AndroidJNI.NewObjectArray(stackFrames.Count, ((AndroidJavaObject)(stackFrames[0])).GetRawClass(), ((AndroidJavaObject)(stackFrames[0])).GetRawObject());
8589

@@ -109,8 +113,7 @@ public static void Notify(string errorClass, string errorMessage, string severit
109113

110114
// Call Android's notify method
111115
IntPtr clientConstructorId = AndroidJNI.GetStaticMethodID(Bugsnag.GetRawClass(), "notify", "(Ljava/lang/String;Ljava/lang/String;[Ljava/lang/StackTraceElement;Lcom/bugsnag/android/Severity;Lcom/bugsnag/android/MetaData;)V");
112-
AndroidJNI.CallStaticObjectMethod(Bugsnag.GetRawClass(), clientConstructorId, args);
113-
116+
if(warmup == false) AndroidJNI.CallStaticObjectMethod(Bugsnag.GetRawClass(), clientConstructorId, args);
114117
}
115118
}
116119

@@ -344,7 +347,7 @@ private static void NotifySafely(string errorClass, string message, string sever
344347
if (stackTrace == null) {
345348
return;
346349
}
347-
NativeBugsnag.Notify (errorClass, message, severity, stackTrace);
350+
351+
NativeBugsnag.Notify(errorClass, message, severity, stackTrace);
348352
}
349353
}
350-

0 commit comments

Comments
 (0)