unity日志收集之Bugly接入记录

选择

官方

第三方

简略版

选择原因

  1. unity官方的服务、网站在国内太难打开,很难被信任,而且并不知道其是否采集原生层的crush与报错。
  2. bugly接入看上去挺方便的……就是unity那个工程长期不维护,需要接入新ios、Android端的sdk入工程(实际上还是坑了2个人一人一天)
  3. Firebase Crashlytics 我按照步骤走到最后说,依赖google-services,毕竟还是先在国内上线,这插件就算了吧……
  4. test+没试过
  5. 简略版方案写在unity里,只能截取unity的报错,底层的会比较麻烦,顾弃之。

bugly

  • 接入
  • 上传dsym

安卓

参考 https://blog.csdn.net/Czhenya/article/details/93978120
注意: 在将新版安卓文件(bugly_crash_release.jar)替换进去之前,别把unitypackage当中的buglyagent.jar给删了,同事误删导致其浪费一天.

ios

似乎也花了一天,主要原因是,bugly包中用了XUPoter,公司项目的自动打包脚本我是用了unity自带的xcode编辑库,即UnityEditor.iOS.Xcode。在此放出bugly需要的xcode工程编辑源码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#if UNITY_EDITOR
using UnityEditor;
using UnityEditor.Callbacks;
using UnityEditor.XCodeEditor;

#endif

public class ShellBuildApp {

[PostProcessBuild(102)]
public static void OnPostProcessBuild(BuildTarget buildTarget, string path) {
#if UNITY_IPHONE && UNITY_EDITOR
if (buildTarget != BuildTarget.iOS) {
//Debug.LogWarning("Target is not iPhone. XCodePostProcess will not run");
return;
}
string projPath = PBXProject.GetPBXProjectPath(path);
PBXProject proj = new PBXProject();


proj.ReadFromString(File.ReadAllText(projPath));
string target = proj.TargetGuidByName("Unity-iPhone");
proj.AddFrameworkToProject(target, "libc++.tbd", false);
proj.AddFrameworkToProject(target, "libz.tbd", false);
proj.AddFrameworkToProject(target, "Security.framework", false);
proj.AddFrameworkToProject(target, "SystemConfiguration.framework", false);
proj.AddFrameworkToProject(target, "JavaScriptCore.framework", true);

string fullPah = Path.GetFullPath(path);
//EditXAdaptCode(fullPah);
// EditXGestureCode(fullPah);
// EditXcodeForPush(fullPah);

proj.SetBuildProperty(target, "FRAMEWORK_SEARCH_PATHS", "$(inherited)");
proj.AddBuildProperty(target, "FRAMEWORK_SEARCH_PATHS", "$(PROJECT_DIR)/Frameworks");
//注意!bulgy的framework文件跟其它妖艳jian货不一样,在xcode工程中是在Frameworks/Plugins/iOS中,此处文档未写,搜到解决方案为增加FRAMEWORK_SEARCH_PATHS
proj.AddBuildProperty(target, "FRAMEWORK_SEARCH_PATHS", "$(PROJECT_DIR)/Frameworks/Plugins/iOS");
proj.SetBuildProperty(target, "ENABLE_BITCODE", "no");


File.WriteAllText(projPath, proj.WriteToString());

#endif
}

}

请特别留意FRAMEWORK_SEARCH_PATHS部分,若是不加可能会引起Xcode Build报错ld: framework no found Bugly.framework。
reference:https://blog.csdn.net/Franky_Y/article/details/78690143