Libgdx与Robopods的Fabric/Firebase集成

Libgdx与Robopods的Fabric/Firebase集成,firebase,libgdx,crashlytics,robovm,Firebase,Libgdx,Crashlytics,Robovm,我正在尝试将Fabric/Crashlytics工具与RoboPods绑定,以便与Libgdx游戏集成 目前, 我将Fabric.framework、Crashlytics.framework下载到我的项目中,并将它们复制到libs文件夹下 在buildgradles中添加了实现 向RoboVM注册的织物,代码如下 Fabric.getSharedSDK().setDebug(true); Crashlytics.getSharedInstance().setDebugMode(true); S

我正在尝试将Fabric/Crashlytics工具与RoboPods绑定,以便与Libgdx游戏集成

目前,

  • 我将Fabric.framework、Crashlytics.framework下载到我的项目中,并将它们复制到libs文件夹下
  • 在buildgradles中添加了实现
  • 向RoboVM注册的织物,代码如下

    Fabric.getSharedSDK().setDebug(true);
    Crashlytics.getSharedInstance().setDebugMode(true);
    Signals.installSignals(new InstallSignalsCallback() {
    
        @Override
        public void install() {
            System.out.println("Installing fabric");
            Fabric.with(Crashlytics.class);
    
        }
    }, true);
    NSException.registerDefaultJavaUncaughtExceptionHandler();
    
  • 已将DYSM文件上载到Firebase控制台。
    到目前为止还不错,现在的问题是项目的产出

    当前工具的库输出

    “com.google.admob.ios”=“0.0.0”; “com.twitter.answers.ios”=“1.4.1”; “com.twitter.crashlytics.ios”=“3.14.0”; “io.fabric.sdk.ios”=“1.10.2”

  • 错误在于

    2020-01-30 22:36:43.065436+0300 IOSLauncher[7595:2143072] Task <DF535BE8-A3C0-4596-86EF-24B4D9663EDE>.<14> load failed with error Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={_kCFStreamErrorCodeKey=50, NSUnderlyingError=0x28271e250 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalUploadTask <DF535BE8-A3C0-4596-86EF-24B4D9663EDE>.<14>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
        "LocalUploadTask <DF535BE8-A3C0-4596-86EF-24B4D9663EDE>.<14>"
    ), NSLocalizedDescription=The Internet connection appears to be offline., NSErrorFailingURLStringKey=https://e.crashlytics.com/spi/v2/events, NSErrorFailingURLKey=https://e.crashlytics.com/spi/v2/events, _kCFStreamErrorDomainKey=1} [-1009]
    2020-01-30 22:36:43.065726+0300 IOSLauncher[7595:2143072] Task <638D9538-47C6-4782-8C11-F3A1CF477EA5>.<15> load failed with error Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={_kCFStreamErrorCodeKey=50, NSUnderlyingError=0x2827334e0 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalUploadTask <638D9538-47C6-4782-8C11-F3A1CF477EA5>.<15>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
        "LocalUploadTask <638D9538-47C6-4782-8C11-F3A1CF477EA5>.<15>"
    ), NSLocalizedDescription=The Internet connection appears to be offline., NSErrorFailingURLStringKey=https://e.crashlytics.com/spi/v2/events, NSErrorFailingURLKey=https://e.crashlytics.com/spi/v2/events, _kCFStreamErrorDomainKey=1} [-1009]
    2020-01-30 22:36:43.065992+0300 IOSLauncher[7595:2143072] Task <F95438B8-375D-4A1B-B7BF-260204462ADD>.<16> load failed with error Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={_kCFStreamErrorCodeKey=50, NSUnderlyingError=0x282733e40 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={_kCFStreamErrorCodeKey=50, _kCFStreamErrorDomainKey=1}}, _NSURLErrorFailingURLSessionTaskErrorKey=LocalUploadTask <F95438B8-375D-4A1B-B7BF-260204462ADD>.<16>, _NSURLErrorRelatedURLSessionTaskErrorKey=(
        "LocalUploadTask <F95438B8-375D-4A1B-B7BF-260204462ADD>.<16>"
    
    2020-01-30 22:36:43.065436+0300 IOSLauncher[7595:2143072]任务。加载失败,错误为Domain=NSURLErrorDomain Code=-1009“Internet连接似乎处于脱机状态。”UserInfo={kCFStreamErrorCodeKey=50,NSUnderlyingError=0x28271e250{error Domain=kcferrorrdomaincfnetwork Code=-1009“(null)”UserInfo={{kCFStreamErrorCodeKey=50,{kCFStreamErrorDomainKey=1},\u nsurlerorfailingursessiontaskerrokery=LocalUploadTask.,\u nsurlererrorrelatedurlsessiontaskerrorkey=(
    “本地上载任务。”
    ),NSLocalizedDescription=Internet连接似乎处于脱机状态,。NSErrorFailingURLStringKey=https://e.crashlytics.com/spi/v2/events,n错误失败键=https://e.crashlytics.com/spi/v2/events,kCFStreamErrorDomainKey=1}[-1009]
    2020-01-30 22:36:43.065726+0300 IOSLauncher[7595:2143072]任务。加载失败,错误为Domain=NSURLErrorDomain Code=-1009“Internet连接似乎处于脱机状态。”UserInfo={kCFStreamErrorCodeKey=50,NSUnderlyingError=0x282733e0{error Domain=kcferrorrdomaincfnetwork Code=-1009“(null)”UserInfo={kCFStreamErrorCodeKey=50,{kCFStreamErrorDomainKey=1},\u nsurlerorfailingursessiontaskerrokery=LocalUploadTask.,\u nsurlererrorrelatedurlsessiontaskerrorkey=(
    “本地上载任务。”
    ),NSLocalizedDescription=Internet连接似乎处于脱机状态,。NSErrorFailingURLStringKey=https://e.crashlytics.com/spi/v2/events,n错误失败键=https://e.crashlytics.com/spi/v2/events,kCFStreamErrorDomainKey=1}[-1009]
    2020-01-30 22:36:43.065992+0300 IOSLauncher[7595:2143072]任务。加载失败,错误为Domain=NSURLErrorDomain Code=-1009“Internet连接似乎处于脱机状态。”UserInfo={kCFStreamErrorCodeKey=50,NSUnderlyingError=0x282733e40{error Domain=kcferrorrdomaincfnetwork Code=-1009“(null)”UserInfo={kCFStreamErrorCodeKey=50,{kCFStreamErrorDomainKey=1},\u nsurlerorfailingursessiontaskerrokery=LocalUploadTask.,\u nsurlererrorrelatedurlsessiontaskerrorkey=(
    “本地上载任务。”
    

    我不确定为什么没有将异常上载到Firebase控制台。可以在Firebase调试视图中显示分析事件,但Crashlytics工具中不会发生任何事件。有人可以帮助我处理此问题吗?

    我通过从Info.plist中删除Fabric API密钥解决了此问题。 在旧版本的Fabric中,有一个api密钥可以在Android中放入元数据,在iOS中放入Info.plist。

    之后,您可以在firebase中看到您的崩溃,但您应该添加dsym文件。为了获得该dsym文件,请创建发布版本,并在iPA为iOS创建的同一文件夹中查找dsym文件

     //This would be enough to initialize fabric.
        @Override
    public boolean didFinishLaunching(UIApplication application, UIApplicationLaunchOptions launchOptions) {
        System.out.println("didFinishLaunching with options");
        Fabric.getSharedSDK().setDebug(true);
        Crashlytics.getSharedInstance().setDebugMode(true);
        FIRApp.configure();
        NSException.registerDefaultJavaUncaughtExceptionHandler(); //DO NOT FORGET TO ADD THIS
        return super.didFinishLaunching(application,launchOptions); 
    
    }
    
    同样在robovm.xml中添加

    <exportedSymbols>
            <symbol>CLS*</symbol>
    </exportedSymbols>
    
    
    CLS*
    
    添加框架

    <framework>FIRAnalyticsConnector</framework>
    <framework>FirebaseAnalytics</framework>
    <framework>FirebaseCore</framework>
    <framework>FirebaseCoreDiagnostics</framework>
    <framework>FirebaseInstanceID</framework>
    <framework>GoogleAppMeasurement</framework>
    <framework>GoogleUtilities</framework>
    <framework>nanopb</framework>
    <framework>Fabric</framework>
    <framework>Crashlytics</framework>
    
    FiranalyticConnector
    FirebaseAnalytics
    FirebaseCore
    FirebaseCoreDiagnostics
    FirebaseInstanceID
    谷歌测量
    谷歌公用事业公司
    纳米铅
    织物
    粗制滥造
    

    享受崩溃的乐趣

    现在无需将fabric API密钥放在任何位置(Manifest/Info.plist)??是的,我想在结构与Firebase结构api集成后,会检查是否存在api密钥。如果存在api密钥,则向旧结构后端发送请求,否则向新结构后端(Firebase)发送请求。我尝试将结构密钥放入新swift项目,但也出现了相同的错误。