bitrise-steplib / steps-sign-apk

MIT License
12 stars 22 forks source link

APK not being deployed #18

Closed jpike88 closed 8 years ago

jpike88 commented 8 years ago

This may be a google-play-deploy bug, but here's the dump. This step doesn't appear to be aligning the apk automatically. My keystore credentials have been tested locally, they are correct.

`+------------------------------------------------------------------------------+ (4) sign-apk@1.0.1 +------------------------------------------------------------------------------+ id: sign-apk version: 1.0.1 collection: https://github.com/bitrise-io/bitrise-steplib.git time: 2016-09-13T04:49:36Z +------------------------------------------------------------------------------+

Configs: apk_path: /bitrise/deploy/android-release-unsigned.apk keystore_url: https://concrete-userfiles-production.s3.amazonaws.com/project_file_storage_documents/uploads/1275/original/rw.jks?AWSAccessKeyId=AKIAIOC7N256G7J2W2TQ&Expires=1473828353&Signature=dDPiZoNiGEVkFYLWBLnHexP7a18%3D keystore_password: keystore_alias: rapid private_key_password: jarsigner_options:

Download keystore using keystore at: /tmp/bitrise-sign-apk821398521/keystore.jks

android_home: /opt/android-sdk-linux build_tools: /opt/android-sdk-linux/build-tools/24.0.2 aapt: /opt/android-sdk-linux/build-tools/24.0.2/aapt zipalign: /opt/android-sdk-linux/build-tools/24.0.2/zipalign

Unsign APK if signed APK is not signed unsiged

Sign APK => /usr/bin/jarsigner "-sigfile" "CERT" "-sigalg" "SHA1withRSA" "-digestalg" "SHA1" "-keystore" "/tmp/bitrise-sign-apk821398521/keystore.jks" "-storepass" "_" "-keypass" "_" "-signedjar" "/tmp/bitrise-sign-apk821398521/unaligned.apk" "/tmp/bitrise-sign-apk821398521/unsigned.apk" "rapid" +------------------------------------------------------------------------------+ (5) google-play-deploy@0.9.2 +------------------------------------------------------------------------------+ id: google-play-deploy version: 0.9.2 collection: https://github.com/bitrise-io/bitrise-steplib.git time: 2016-09-13T04:49:59Z +------------------------------------------------------------------------------+

Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this machine. Fetching gem metadata from https://rubygems.org/

Using i18n 0.7.0 Using json 1.8.3 Using minitest 5.8.3 Using thread_safe 0.3.5 Using addressable 2.3.8 Installing extlib 0.9.16 Installing multi_json 1.11.2 Using multipart-post 2.0.0 Installing jwt 1.5.2 Using little-plugger 1.1.4 Installing memoist 0.12.0 Installing retriable 1.4.1 Using bundler 1.12.5 Using tzinfo 1.2.2 Installing launchy 2.4.3 Installing autoparse 0.3.3 Using faraday 0.9.2 Installing logging 2.0.0 Installing activesupport 4.2.5 Installing signet 0.6.1 Installing googleauth 0.4.2 Installing google-api-client 0.8.6 Bundle complete! 1 Gemfile dependency, 22 gems now installed. Use bundle show [gemname] to see where a bundled gem is installed.

Configs: service_account_email: package_name: com.rapidsolutions.rw apk_path: /bitrise/deploy/android-release-unsigned.apk key_file_path: downloading key file...

Authorizing

Publishing new version Create a new edit Upload apk

APK is not zip aligned. | | +----+--------------------------------------------------------------+----------+ | 🚫 | google-play-deploy@0.9.2 (exit code: 1) | 20 sec | +----+--------------------------------------------------------------+----------+ | Issue tracker: https://github.com/bitrise-io/steps-google-play-deploy/issues | | Source: https://github.com/bitrise-io/steps-google-play-deploy | +----+--------------------------------------------------------------+----------+`

viktorbenei commented 8 years ago

@godrei pls check this after the CLI release ;)

godrei commented 8 years ago

Hi @jpike88 ,

the gradle-runner step exports the generate apk's path into BITRISE_APK_PATH env var.
The sign-apk step's default value for apk_path input is the value is $BITRISE_APK_PATH, so the apk which was generated before and it exports the signed apk path into BITRISE_SIGNED_APK_PATH env var.
The google-play-deploy step's default input for apk_path is BITRISE_APK_PATH so the generated apk (by gradle runner step), but not the signed one (generated by sign-apk step).

So i think you should just change the apk_path input value for $BITRISE_SIGNED_APK_PATH.

viktorbenei commented 8 years ago

@godrei shouldn't we change this, and expose the APK as $BITRISE_APK_PATH ?

Actually, for compatibility, expose it as both.

viktorbenei commented 8 years ago

@jpike88 can you try the solution @godrei suggested, to see if that helps? In the google play deploy step just set the path to $BITRISE_SIGNED_APK_PATH (default is $BITRISE_APK_PATH for the path input)

jpike88 commented 8 years ago

Fantastic it worked!

Probably a good idea to have some big red writing regarding this, as I'd imagine there are plenty of people using google play's beta/alpha track, which requires a signed release apk even thought it's not production

godrei commented 8 years ago

From v 1.1.0 step export the signed apk path into BITRISE_APK_PATH as well.