从Crashlytics下载IPA / APK

我正在使用Crashlytics来分发一个Betatesting的应用程序。

虽然在Crashlytics应用程序的设备上安装应用程序非常简单方便,但我一直无法弄清楚如何从Crashlytics服务器只下载IPA。

背景:我需要获得IPA / APK进行自动化testing。 我的testing环境将重新签署IPA,以便能够将其安装到testing设备,所以使用Crashlytics应用程序的方式不起作用。

我需要的是IPA / APK的下载链接,因为它曾经在TestFlight或Hockeyapp中可用。

Solutions Collecting From Web of "从Crashlytics下载IPA / APK"

经过我自己的探索,似乎没有任何方法可以从Crashlytics Beta中获取ipa或apk。

我build议使用像Jenkins这样的自动化构build过程,并将其上传到Dropbox或者您可以轻松引用的地方,并b)自动上传到Crashlytics进行分发。

gradle crashlytics插件提供了一个方便的方法来做到这一点:

gradlew assembleDebug crashlyticsUploadDistributionDebug 

就我所见,从Crashlytics下载IPA是没有直接的方法。 但是,如果您确实需要获取文件,则可以完成。

  • 复制Crashlytics邮件中的安装button的链接目标(或从这里查看源代码和副本,这是我所做的)
  • 粘贴到模拟器中的Safari。 这将在模拟器中安装Crashlytics应用程序
  • 在模拟器的Crashlytics应用程序中打开安装页面
  • 检查模拟器与您的Mac的Safari(开发>模拟器)
  • 复制button链接并在Mac上的Safari中打开 – 你去

当然,这不是你想做的标准程序:)
对不起,这只是iOS,所以没有赏金给我:(

如果您在iOS上使用它,则可以启用设置> Safari>高级> Web控制台 ,然后从iOS上的安装页面查看下载链接的Web检查器。 它会看起来像这样(我换了一些部分gobbledegook文本):

 <a class="primary-button js-install-button" href="itms-services://?action=download-manifest&amp;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> 

然后只需复制URL编码的url:

 https%3A%2F%2Fapps.crashlytics.com%2Fprojects%2F2F2F2F2F2FF2F2F2%2Freleases%2F2200806%2Fdownload.plist%3Fdevice_id%2F2F2F2F%26device_token%234JH23L4KH234LK2J34H2LK34H2LK3J4H2LK3JH42L3K4JH23LK4JH2L3K4JH2L3K4JH2LKJ3H4%253D--2KJ3H4LK2J3H4L2KJ3H4LK2J3H4LK23JH4LK2J3H4L%26payload_token%2KL34JH2LK3JH4L2K3J4HL23KJ4HL23JK4 

然后在您的命令行使用PHP的urldecode:

 php -r "echo urldecode('{PASTE THE ABOVE URL HERE}');" 

(确保在PHP行周围使用双引号,并在URL周围使用单引号。)

然后将url解码结果粘贴到Mac上的Safari中。 你会看到一个XML文件; 复制下载链接并粘贴到您的浏览器中。 这会将IPA下载到您的Mac上:D

这个答案可能为时已晚,只针对APK文件,但是我确实可以在安装前确定Crashlytics在哪里存储APK。

在您的设备上安装Beta / Crashlytics后,继续下载您的应用程序,但不要安装它 – 只要把它留在屏幕询问是否要安装(以防Beta / Crashlytics安装后删除APK,不知道如果他们这样做)

然后,通过另一台计算机使用adb,通过打开一个shell并查找所有APK文件来识别应用程序的文件名。

  1. 打开命令提示符或terminal,并运行adb设备以确保您的设备被识别
  2. 一旦识别,运行adb shell,然后键入su进入超级用户模式
  3. 有两种方法 – 你可以search所有的APK文件,并寻找一个类似于你所期望的使用“find / -iname * .apk”的文件名,或者你可以尝试列出按修改datesorting的文件以寻找最近使用以下命令修改APK:ls -nl [directory] ​​| sort -k 8,8n -k 6,6M“其中[directory]是要列出的目录
  4. 注意位置,然后退出adb,并使用adb pull抓取文件 – 在我的情况下是“adb pull /data/app/myapplication.apk”

TL; DR-Beta / Crashlytics在安装之前将APK文件下载到/ data / app /中。 您可能需要root权限才能访问此文件夹。

希望这可以帮助!

我发现了一个简单的方法来让APK在Android上构build。 按着这些次序:

  1. 在您的设备上安装“惊奇的文件pipe理器”。 免费版本就足够了,它不需要你的设备被植根。
  2. 在左边的菜单中打开“应用程序pipe理器”
  3. 按名称查找您的安装版本
  4. 按“三点”,select“备份”
  5. 你会在storage / emulated / 0 / app_backup中find你的APK文件

这可能会特别有助于那些试图检索APK文件的人。

如果您使用Android,则可以使用Android Monitor从Crashlytics Beta应用程序中提取下载的文件。 为了这个工作,你必须已经安装了Crashlyticstesting版应用程序,并从testing版应用程序中下载了你的应用程序。 然后,按照下列步骤操作:

  1. 打开Android设备监视器
  2. 在左侧的“设备”选项卡中select您的设备
  3. 点击右边的“文件资源pipe理器”视图
  4. 浏览path: data/data/io.crash.air/files 。 在那里你应该find你的.apk文件
  5. 点击右上angular的“从设备上拉出文件”button。

非常复杂,但可能是提取它的几个方法之一。

另一个想法是在设备尝试下载APK / IPA文件时使用Wireshark来嗅探stream量。 这可以在使用仿真器时完成。

我正在使用crashlytics将应用程序分发给testing人员,步骤如下

  1. 按照他们的网站上的描述,将crashlytics(添加fabric + crashlytics)安装到您的代码中。

  2. 现在,对你的应用程序进行实验(检查configuration文件和签名身份,testing人员的udid是否添加了configuration文件)。

  3. 现在,点击右上angular的织物符号,点击分布button。

  4. 一旦你点击分发,这将显示文本字段和添加button添加testing人员的电子邮件地址。

  5. 添加testing人员电子邮件地址后,点击下一步button继续。

这将发送电子邮件的ipa文件给testing人员,并显示button来安装它。 这是工作正常将最新版本的iOS。