Reputation: 6387
I'm using Crashlytics to distribute an app for Beta testing.
While it is easy and convenient to install the app on devices from the Crashlytics app, I have not been able to figure out how I could download only the IPA from the Crashlytics server.
Background: I need to get the IPA / APK for automated testing. My test environment will re-sign the IPA to be able to install it to test devices, so going the Crashlytics app way doesn't work.
What I need would be a download link for the IPA / APK as it used to be available in TestFlight or Hockeyapp.
Upvotes: 23
Views: 24498
Reputation: 869
After poking around myself, it doesn't look like there is any way to pull an ipa or apk from Crashlytics Beta.
I would suggest using something like Jenkins or Fastlane to automate your build process and have it a) upload to Dropbox or somewhere you can easily refer to and b) upload automatically to Crashlytics for distribution.
The gradle crashlytics plugin provides a handy method to do this:
gradlew assembleDebug crashlyticsUploadDistributionDebug
Upvotes: 17
Reputation: 71
I found an easy way to get APK builds on Android. Follow these steps:
Upvotes: 7
Reputation: 240
This answer is probably too late, and is only specific to the APK file, but I did manage to identify where Crashlytics stores the APK before installation.
After installing Beta/Crashlytics on your device, go ahead and download your application, but don't install it - just leave it at the screen asking if you want to install (just in case Beta/Crashlytics deletes the APK after installation, not sure if they do though)
Then, using adb via another computer, identify the file name of your application by opening up a shell and finding all APK files.
TL;DR - Beta/Crashlytics downloads the APK file for your application to /data/app/ before installing. You may need root privileges to access this folder.
Hope this helps!
Upvotes: 4
Reputation: 2749
This may specifically help those who are trying to retrieve the APK file.
If you're using Android, you can use Android Monitor to extract the file downloaded from the Crashlytics Beta app. In order for this to work, you must have already installed the Crashlytics Beta app and have downloaded your app from within the Beta app. Then, follow these steps:
data/data/io.crash.air/files
.
There you should find your .apk fileVery complicated, but probably one of the few ways to extract it.
Another thought would be to use Wireshark to sniff the traffic when the device tries to download the APK/IPA file. This can be done while using an emulator.
Upvotes: 0
Reputation: 12188
If you're using it with iOS, you can enable Settings > Safari > Advanced > Web Console, then look in the web inspector of the download link from the install page on iOS. It will look like this (I swapped in gobbledegook text for some parts):
<a class="primary-button js-install-button" href="itms-services://?action=download-manifest&url=https%3A%2F%2Fapps.crashlytics.com%2Fprojects%2F2F2F2F2F2FF2F2F2%2Freleases%2F2200806%2Fdownload.plist%3Fdevice_id%2F2F2F2F%26device_token%234JH23L4KH234LK2J34H2LK34H2LK3J4H2LK3JH42L3K4JH23LK4JH2L3K4JH2L3K4JH2LKJ3H4%253D--2KJ3H4LK2J3H4L2KJ3H4LK2J3H4LK23JH4LK2J3H4L%26payload_token%2KL34JH2LK3JH4L2K3J4HL23KJ4HL23JK4" id="most-recent-install">Install</a>
Then just copy out the URL-encoded URL:
https%3A%2F%2Fapps.crashlytics.com%2Fprojects%2F2F2F2F2F2FF2F2F2%2Freleases%2F2200806%2Fdownload.plist%3Fdevice_id%2F2F2F2F%26device_token%234JH23L4KH234LK2J34H2LK34H2LK3J4H2LK3JH42L3K4JH23LK4JH2L3K4JH2L3K4JH2LKJ3H4%253D--2KJ3H4LK2J3H4L2KJ3H4LK2J3H4LK23JH4LK2J3H4L%26payload_token%2KL34JH2LK3JH4L2K3J4HL23KJ4HL23JK4
Then urldecode that on your command line using PHP:
php -r "echo urldecode('{PASTE THE ABOVE URL HERE}');"
(Make sure that you use double quotes around the PHP line, and single quotes around the URL.)
Then paste the URL-decoded result into Safari on your Mac. You'll see an XML file; copy the download link and paste into your browser. This will download the IPA to your Mac :D
Upvotes: 18
Reputation: 6387
As far as I can see there is no straight forward way to download an IPA from Crashlytics. However, if you really need to get the file it can be done.
Of course this is nothing you want to do as a standard procedure :)
And sorry this is iOS only, so no bounty for me :(
Upvotes: 11
Reputation: 12594
I am using crashlytics for distributing app to testers, The steps are as
Install crashlytics(add fabric+crashlytics) to your code as described on their site.
Now, make archieve of your application.(Check that provisioning profile and signing identity, the udid of testers are added with provisioning profile).
Now, click on fabric symbol at right-top corner, click on distribute button on that.
Once you click on distribute, this will show textfield and add button to add email addresses of testers.
After adding testers email addresses click on next button and continue.
This will send email of ipa files to testers and show buttons to install it. This is working fine will latest versions of iOS.
Upvotes: -1