J'ai différentes saveurs de produits de mon application et je les construis avec fastlane. Ceci est mon fichier rapide:

default_platform(:android)

platform :android do

  desc "Release apk with different urls"
  lane :release do
    gradle(
      task: "assemble",
      build_type: "release",
      flavor: "flavorname",
      print_command: true,
      properties: {
        "android.injected.signing.store.file" => "Key.jks",
        "android.injected.signing.store.password" => "KeyPass",
        "android.injected.signing.key.alias" => "KeyAlias",
        "android.injected.signing.key.password" => "KeyPass"
      }
    )

  end

end

Le problème est que les fichiers apk sont créés dans le répertoire du projet.

(nom du projet / app / build / sorties / apk / flavorname / release / app-flavorname-release.apk)

Comment déplacer automatiquement ces fichiers apk sur mon bureau?

0
yigitserin 19 nov. 2018 à 17:29

3 réponses

Meilleure réponse

Il ne semble pas que gradle ait une option pour spécifier la sortie. Ce que je vous suggère, c'est d'ajouter une ligne de commande juste après la fin de la gradation pour déplacer ce .apk vers le bureau ou où vous voulez.

sh "mv ../app/build/outputs/apk/release/app-release.apk path/to/Desktop"
3
rcarba 19 nov. 2018 à 15:05

Vous pouvez également utiliser l'action Fastlane copy_artifacts au lieu de mv

lane :release do
  gradle(...)

  copy_artifacts(
    artifacts: ['*/build/outputs/apk/**/*.apk'],
    target_path: '~/Desktop/'
  )
end

Le caractère générique */build/outputs/apk/**/*.apk fonctionnera avec tous les types de construction, le nom du module d'application des saveurs.

Ou comme dit @janpio ci-dessus, vous pouvez utiliser la variable GRADLE_APK_OUTPUT_PATH:

lane :release do
  gradle(...)

  copy_artifacts(
    artifacts: [lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]],
    target_path: '~/Desktop/'
  )
end
0
osipxd 18 juin 2019 à 13:40

J'utilise ce qui suit lors de mon appel gradle :

lane :release do        
    gradle(...)

    APK_LOCATION = "#{lane_context[SharedValues::GRADLE_APK_OUTPUT_PATH]}"        
    sh("mv #{APK_LOCATION} ~/Desktop/")
end

L'avantage d'utiliser la variable est que vous pourrez utiliser le même code pour la publication et le débogage d'apk.

À votre santé.

3
Francois Nadeau 4 juin 2019 à 13:13