expo builds in AWS Device Farm ?

Hello Team,

SDK 35.0.0

I’ve tried to use expo build on AWS Device Farm - but ipa generated by expo hangs and apk from expo aab is missing sdkversion.
Anybody testing expo builds on AWS Device Farm remote sessions ?

Thanks,
Michal

Hey @teknet7,

Can you clarify on what exactly you are doing in Device Farm?

Cheers,
Adam

Hello Adam,

Thanks for helping out here.
I am trying to upload my ipa build generated by expo. And then run tests on Device Farm (and failing all of those). But more important feature is a remote session for me. So i do choose hardware+software version (multiple iphone models/versions available in Device Farm) and run my ipa there.
Again it always fails. Application icon never appears on the phone, application never runs, i have started a discussion here:

For Android it’s more complex, since expo aab bundle is not supported and i need to upload apk to a Device Farm. So i have used bundletool (with my keys) to convert aab to a zip file with apk’s for multiple platforms. Chosen the right platform in Device Farm and uploaded apk there, but received error that sdkVersion is not in apk and indeed with debugs i can confirm it’s not there.

This is how i have converted expo aab to zip with apk:
java -jar bundletool-all-0.10.3.jar build-apks --bundle=xx-signed.aab --output=a.apks --ks=xx.jks --ks-key-alias=alias
(then i provided the right keys fetched from expo)

And this is how i run debugs to check sdkVersion in apk:
aapt debug badging base-x86_64_2.apk (and several other apks)

Result:

package: name='pl.xxx' versionCode='5' versionName='' split='config.x86_64'
application: label='' icon=''
uses-permission: name='android.permission.WRITE_EXTERNAL_STORAGE'
uses-implied-permission: name='android.permission.WRITE_EXTERNAL_STORAGE' reason='targetSdkVersion < 4'
uses-permission: name='android.permission.READ_PHONE_STATE'
uses-implied-permission: name='android.permission.READ_PHONE_STATE' reason='targetSdkVersion < 4'
uses-permission: name='android.permission.READ_EXTERNAL_STORAGE'
uses-implied-permission: name='android.permission.READ_EXTERNAL_STORAGE' reason='requested WRITE_EXTERNAL_STORAGE'
feature-group: label=''
uses-feature: name='android.hardware.faketouch'
uses-implied-feature: name='android.hardware.faketouch' reason='default feature for all apps'
supports-screens: 'normal'
supports-any-density: 'false'
locales:
densities:
native-code: 'x86_64'

AWS documentation for that specific error with sdkVersion:

So - what’s wrong here ? Anybody tested expo builds (apps) in Device Farm ?

Thanks,
Michal

Hi Adam,

Thanks for helping out. I would love to provide all details, but this forum is completely broken: akismet bot is temporary blocking most of my posts and admins do not review/publish those. It looks like once i provide details/code it’s being blocked.

So let me try (again, 4th time) to sum it ip quickly:

  1. For Apple it’s easy: AWS Device Farms supports ipa, so i upload ipa generated by expo there and run test + run in remote session. Both are always failing. My app is never executed, some details here: Forums

  2. For Android aab format is not accepted, so i do convert aab generated by expo to zip via bundletool (with keys from expo), unzip and extract apks for different platforms. Then once i try to run it in AWS Device Farm i got error that sdkVersion is missing in apk, and indeed running “aapt debug badging” confirms that. Well known issue described in AWS Device Farm help.

Why i do have both issues ? Anybody tested expo builds in AWS Device Farm ?

Thanks,
Michal
P.S Admins: please fix this forum, it’s a disaster with this bot bloking most of the posts.

Team - any update ?
I am very surprised we have so few folks testing the apps - or having such small feedback.
Should i assume you test apps only in default simulators and real devices connected to PC ?
Thanks,

Hey @teknet7,

Sorry for the delayed response here. We don’t officially support Expo usage in AWSDF. Others may have gotten it working but there may be additional steps involved. With being a small team we don’t have the bandwidth necessary to take on support for it. For the most part, users test via local simulators and real devices.

One thing that might help at least reduce the android flow, is you can run expo build:android -t apk to have the build service build an .apk rather than an aab so you don’t have to go through those additional steps. It may also remedy that error but I’m not sure.

Very good hint with “expo build:android -t” for AWSDF. Yep - understand and appreciate all your hard work here, thanks Adam !

1 Like

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.