I set you on situation:
I had a project 1.8.10 Objective C App that was without Fabric Crashlytics. So, when I got control of the project they told me that Fabric was already installed. I checked and yes, everything was good. Still, we updated the app to the 1.9.10 (totally different build number) and we set the itunnes connect deployment in 7 days. At first I believed that was something of Apple, but now we are in 100% and there's no data. Actually, I can't see my new app's version (1.9.10) in Fabric's dashboard.
(https://stackoverflow.com/a/41160905/9684719)
Yes: I have checked missing dYSIM, runscript, plist, at Debug information in my project I have DWARF with dSYM File.
Crashlytics not reporting crash in Release mode
Yes: I have my Fabric instantiation in Apps Delegate fine too.
Fabric doesn't update my latest build version
I can see in Itunes Connect that there is people using my app.
Related
So I recently started setting up app check for my existing Flutter project (for both android and iOS platforms). I've had no problem with android's "Play Integrity", got the necessary debug token, and can successfully send and retrieve data to/from firestore (app check for firestore is currently enforced for my project).
The problem is, I can not get such a debug key for my iOS app. I will list the sources I've used and what I've tried so far.
I have firebase_app_check: ^0.1.1+8 installed via pubspec.yaml
I also added pod 'FirebaseAppCheck' to my Podfile
I have the necessary initialization code in my main.dart: await FirebaseAppCheck.instance.activate(...);
For "DeviceCheck", I am using THE SAME private key that I am using
for "Sign in With Apple" (which I have implemented successfully). I
have also enabled the checkbox for DeviceCheck in the settings of
that private key (in Apple Developer).
For my App ID (Apple Developer > Identifiers > App IDs), I have also
enabled the checkbox for "App Attest".
I have put "-FIRDebugEnabled" as an argument passed on launch in
XCode > Product > Scheme > Edit Scheme.
I always uninstall my app from my iOS simulator (iOS 16.2) or real device (iOS 16.1.2),
before trying again, because I have read across multiple forums that
the debug token only gets printed to the output the first time you
run your app.
I have also added these 4 lines of code in my AppDelegate.swift from here:
#if DEBUG
let providerFactory = AppCheckDebugProviderFactory()
AppCheck.setAppCheckProviderFactory(providerFactory)
#endif
Official firebase docs "iOS+ (App Attest)":
I have NOT copied ANY code from this page of the official docs, as I assume it's for native iOS apps only, and not for flutter, and I don't know where exactly I would have to put that code. I have only added the pod dependency and run pod install.
I don't have a .entitlements file.
So after all those steps, I'm apparently supposed to expect to find a debug token in my run output, as in:
Yet the only relevant output I can find is the following:
Runner[72719:33546579] 10.3.0 - [FirebaseFirestore][I-FST000001] AppCheck failed: 'The operation couldn’t be completed. (com.apple.devicecheck.error error 1.)'
If it matters:
I have NOT YET uploaded my iOS app to apple developer, app store connect or whatever (I'm not yet familiar with the process of publishing to the app store).
Neither have I uploaded my android app to Google Play console or created an app there (for this project).
Don't tell me anything about firestore rules. I already had that set up long ago, and everything worked just fine before I started integrating App Check.
Don't recommend any 3rd party plugins to me, I will only use official ones.
The firebase documentation says:
Tip: Confirm in your Xcode project's build settings that it passes the DEBUG flag to the Swift compiler
Try removing the '#if DEBUG' and '#endif' and run the app.
If it works, it mean you have missed that step
I was not able to find that build setting, so i just removed those lines from the AppDelegate, but i need to keep in mind to remove the other 2 lines while building the release mode
See this answer on the flutterfire Github issues page. Basically, call setAppCheckProviderFactory before GeneratedPluginRegistrant.register(with: self) in the app delegate file. I was investigating the same issue and it fixed it for me (the debug token was instantly printed out in Xcode's debug output). Hope it helps you as well!
I've been able to create and upload one new iOS app and two new Android apps in Fabric however, this particular iOS build will not upload to Fabric. I have gone through all the motions outlined in their tutorials and can run fastlane beta which runs successfully and says
[15:14:12]: Uploading the build to Crashlytics Beta. Time for some ☕️.
[15:14:20]: Build successfully uploaded to Crashlytics Beta 🌷
[15:14:20]: Visit https://fabric.io/_/beta to add release notes and notify testers.
However, this doesn't produce an app in Fabric. When I run through the steps for a Crashlytics upload either using the manual option or using the Mac App, I am unsuccessful. The Fabric app just leaves me with "to continue, build your Xcode project by pressing command-B," which does not do anything, I'm just stuck at that screen. I have tried every answer outlined in the Stack Overflow post here which should have addressed this problem but does not for me.
In short, I have successfully uploaded two Android apps and an iOS app to Fabric using this workflow but cannot get this iOS app to upload regardless of what's indicated by the command line.
If it matters, this is Cordova app.
The answer was tricky and bizarre so I'll post it for future reference. The trick was two steps (as far as I can tell, this is what made it work). First, run:
./Crashlytics.framework/submit *api_key* *build_secret* -ipaPath ./buildname.ipa -emails ***#*** -notifications YES
in the directory which contains your Crashlytics.framework file. This is probably the same folder as your xcodeproj file for your app. You should have this file in that directory after following the steps outlined in my post above.
Then open the xcodeproj and build and run the file (for me I had to run it on an emulator not just the physical iPhone I had connected to my Mac).
This created a new Fabric app. I have not seen any answers like this on Stack Overflow so hopefully this is helps anyone like me. I still have no idea what the root issue really was here.
I've just recently installed Fabric to a project which already had Firebase installed and suddenly Crashyltics has stopped working. It's not included within the 'Fabric.with([])' call on AppDelegate.swift but I wondered if Fabric and Firebase were cancelling out Crashyltics. I'm using Fabric for it's Beta option and everything else is inside Firebase.
I can force a crash inside the app - But not getting anything reported in either Dashboard.
My run Script Phase is also correct.
My Debug is DWARF with DYSIM.
Cleared derived data etc.
Firebase is called after Fabric inside AppDelegate.
Thanks
I think that you have to link your firebase and fabric apps.
Go to https://fabric.io/firebase_migration/status, click on link apps and select the apps to link (the one on fabric and the corresponding app on firebase)
Do you upload your dSYM to Firebase/Crashlytics? If not it can be the issue.
First We have integrated Firebase analytics and its working fine. We are able to see the custom events on the dashboard
But when we integrate crashlytics crash reports are not displaying on a dashboard. Following are the steps which I followed:
Registered The App.
Downloaded Config file plist and added it to the project.
Added the Firebase SDK through cocoa pods.
4.Added initialization code.
In AppDelegate class in didFinishLaunchingWithOptions() added following code,
FirebaseApp.configure()
All events were generated as per expectation. But when I integrate Crashlytics in Firebase Analytics, it shows crash reports submitted successfully but crash reports are not reflected on the dashboard. We have also changed the project scheme to release mode but no success.
I have even set the build settings to dwarf with dSYM file. Added the script "{PODS_ROOT}/Fabric/run" but nothing is working.
Can anyone help us to look into this issue.
Thanks in Advance
Which version (xcode and crashlytics) are you using? A couple days ago I was developing a new version and simultaneously trying both uploading manually and using the run script - none of them were working - so I've checked for updates here and as you can see:
3.10.9 October 4, 2018
Improves automatic dSYM uploading for Fabric Mac App users.
3.10.8 September 27, 2018
Fixed a bug preventing Xcode 10 users from uploading dSYMs in some cases.
They're directly related to the upload/use of dSYMs. That's just a hunch, but may be related in some way to your issue.
After I fixed some bugs and refactored my project which has been release on App Store, it fails to distribute. The Xcode shows the following error message:
Your app contains non-public API usage. Please review the errors, correct them, and resubmit your application.
The app references non-public symbols in Payload/XXX.app/XXX: UICreateCGImageFromIOSurface
XXX is the app name.
I've search the entire project, and didn't find any this keyword (UICreateCGImageFromIOSurface). How can I fix this?
Remove Reveal.framework from your project. This should not be linked in release mode of your binary.
You app contains code not only from sources, but from all statically linked libraries. You have to check all of those for containing private call. Looks like at least Reveal library contains it.
Double check any third-party libraries you are using in your project
I was facing the issue and after checking my pods file, I found that Look Back - Framwork which is available for debug builds only as for as I know. So removing that fixed the issue. Successfully submitted app through Xcode 6.1 for Apple Testflight beta testing :)
Never ship an app linked against the Reveal library. Reveal exposes
your app to deep introspection and will likely cause your app to be
rejected by the Apple review team. Reveal is intended for internal
development and debugging purposes only.
The Reveal service will stop automatically while the iOS host app is
not the frontmost app. It will automatically start again when the app
is re-opened.
Reveal supports inspection of applications compiled against iOS 6 and
later. The iOS Deployment Target build setting must also be 'iOS 6.0'
or later. You may see link errors if this is not the case.
Reveal uses Bonjour to connect with the running iOS application. If
you are running the iOS application on a device, it will need to be
on the same network as the Reveal Mac app to be able to connect with
it. If you have any problems connecting to your application check
your firewall and proxy setting to ensure they are not blocking
communications.
Find out more...
cordova plugin rm cordova-plugin-ionic-webview
cordova plugin add cordova-plugin-ionic-webview#4.1.0