기기에 Android App Bundle 설치


119

새로운 Android App Bundle 형식을 사용하여 프로젝트를 빌드했습니다. APK 파일을 사용하면 APK를 내 기기에 다운로드하고 열고 바로 앱을 설치할 수 있습니다. 앱을 번들 (.aab 형식)로 다운로드했는데 Android 8.1을 실행하는 Nexus 5X에서 파일을 열 수 없습니다. APK와 같은 편리한 방식으로 기기에 AAB를 설치할 수있는 방법이 있나요?


2
간단한 apk보다 몇 단계가 더 필요한 것 같습니다 : developer.android.com/guide/app-bundle/test .
Mike M.

답변:


111

짧은 답변:

직접적으로는 아닙니다.

더 긴 답변 :

Android App Bundle은 게시 형식입니다. Android 장치에는 .apk응용 프로그램을 설치 하려면 파일이 필요 합니다.

PlayStore 또는 설치중인 다른 소스는 번들에서 APK를 추출하고 각각에 서명 한 다음 대상 장치에 맞게 설치해야합니다.

.apk 파일에 .aab에서 변환을 통해 이루어집니다 bundletool .

내부 앱 공유 를 사용 하여 디버그 가능한 앱 빌드를 Play 스토어에 업로드하고 테스터와 공유 할 수 있습니다.


어떤 경우에 플레이 스토어에 디버그 앱을 게시 할 수 없다는 점을 고려하여 서명 된 번들이 아닌 빌드 번들 옵션을 사용합니다
Oush

나는 주로 로컬 테스트를 위해 그렇게 할 것입니다.
keyboardsurfer

3
bundletool의 릴리스 (소스 파일 대신)는 여기에 있습니다 : github.com/google/bundletool/releases
Kari

현재 잘못된 답변 apks입니다. 다른 답변을 참조하여 파일 을 만드십시오 .
CoolMind

1
@ericn 앱의 초기 "게시"는 일반적인 프로세스를 거칩니다. 이후에 수행하는 내부 앱 공유는 리뷰에 의해 차단되어서는 안됩니다.
keyboardsurfer

53

장치에서 직접 aab를 설치했지만 그 방법을 찾을 수 없었습니다.

그러나 다음 문서를 사용하여 명령 줄을 통해 설치하는 방법이 있습니다. BundleTool을 통해 장치에 apk를 설치할 수 있습니다.

"@Albert Vila Calvo"의견에 따르면 그는 HomeBrew를 사용하여 bundletools를 설치하려면 brew install bundletool

이제 aab 파일에서 추출 APK를 설치하고 장치에 설치할 수 있습니다.

다음 명령을 통해 apk 파일 추출

java -jar bundletool-all-0.3.3.jar build-apks --bundle = bundle.aab --output = app.apks --ks = my-release-key.keystore --ks-key-alias = alias- -ks-pass = pass : 암호

인수 :

  • --bundle-> Android 번들 .aab 파일
  • --output-> 생성 된 apk 파일의 대상 및 파일 이름
  • --ks-> Android 번들을 생성하는 데 사용되는 키 저장소 파일
  • --ks-key-alias-> 키 저장소 파일의 별칭
  • --ks-pass-> 별칭 파일의 암호 (암호 값 앞에 'pass'접두사를 적어 두십시오)

그러면 확장자가 .apks 인 파일이 생성됩니다. 이제 장치에 설치해야합니다.

java -jar bundletool-all-0.6.0.jar install-apks --adb = / android-sdk / platform-tools / adb --apks = app.apks

인수 :

  • --adb-> adb 파일 경로
  • --apks-> Apks 파일을 설치해야합니다.

25
Mac을 사용하는 경우 Homebrew와 함께 Bundletool을 설치할 수 있습니다 : brew install bundletool. 그럼 그냥 이런 식으로 명령을 실행bundletool build-apks --bundle=./app/release/app.aab --output=./app/release/app.apks
알버트 빌라 칼보

3
--ks-pass = pass : password는 키 저장소의 비밀번호를 지정합니다. 키 파일의 암호를 지정하려면 --key-pass = pass : password
smitty1

동일한 문제가 발생했습니다. 설명하신 단계를 따랐지만 내 Android 기기에 앱이 설치되면 앱을 열 수 없습니다 (자동으로 닫힘)
aName

감사! --key-pass=pass:...가 필요하지만 이상하게도 비밀번호가 잘못되어 수동으로 입력해야합니다. ... install-apks --adb=...'APK가 디렉토리에 추출되었습니다 : ...'라고 쓴 후 해당 폴더가 존재하지 않으며 기기에 설치되지 않습니다.
CoolMind

예 : C:\Users\Aterr\Desktop\hack>java -jar "C:\Users\Aterr\Desktop\hack\bundletool-all-0.10.3.jar" install-apks --adb="C:\Users\Aterr\AppData\Local\Android\Sdk\platform-tools\adb.exe" --apks="C:\Users\Aterr\Desktop\hack\extractedapks.apks"
Choletski

24

당신은 응용 프로그램 번들을 설치할 수 없습니다 [NAME].aab이 형식을 게시되기 때문에 안드로이드 장치에 직접하지만, 필요 추출하는 방법은 apk에서 bundle와 장치에 설치가 프로세스는 다음과 같다

  1. 여기 에서 bundletool 다운로드
  2. 이것을 터미널에서 실행하십시오.
java -jar bundletool.jar build-apks --bundle=bundleapp.aab --output=out_bundle_archive_set.apks
  1. 마지막 단계는라는 이름의 파일을 생성하고 이름을 out_bundle_archive_set.apks바꾸고 out_bundle_archive_set.zipzip 파일을 추출한 다음 폴더 out_bundle_archive_set > standalones로 이동하면 모든 APK 목록이 표시됩니다.

번들 도구 링크에 대한 Android 개발자의 참조가 있습니다.

안드로이드 개발자 참조


서명 키와 비밀번호가 필요합니다 . stackoverflow.com/a/52704544/2914140developer.android.com/studio/command-line/bundletool을 참조하세요 .
CoolMind

@CoolMind 서명 키와 암호를 사용하면 번들 로그 아웃 APK의 집합을 구축하고자 할 때, 그리고 장치에 APK 배포 할 업데이트 된 답변을 확인
알리 Tamoor

이름이 지정된 독립형 폴더가없고 대신 이름이 지정된 분할이 있습니다.
Gopal Singh Sirvi

17

MAC의 경우 :

brew install bundletool
bundletool build-apks --bundle=./app.aab --output=./app.apks
bundletool install-apks --apks=app.apks

세 번째 명령 터미널이 앱의 경로를 표시 한 후 폴더를 사용할 수 없습니다
Furquan

1
@Furquan, 표시된 경로는 연결된 장치의 경로입니다. 이 명령은 기기에 apk를 설치합니다.
Bijoy Thangaraj

8

테스트 목적으로 aab에서 장치로 apk를 설치하려면 연결된 장치에서 실행하기 전에 구성을 편집해야합니다.

  1. 구성 편집으로 이동
    여기에 이미지 설명 입력
  2. 배포 드롭 다운을 선택하고 '기본 apk'에서 '앱 번들의 APK'로 변경합니다.여기에 이미지 설명 입력
  3. 변경 사항을 적용한 다음 연결된 장치에서 실행하십시오. 이렇게 변경하면 빌드 시간이 늘어납니다.

이것은 aab에서 연결된 장치에 직접 apk를 설치합니다.


1
이것은 릴리스 빌드에서만 나타나는 하나의 버그를 복제하는 데 도움이되었습니다. AAB에서 설치할 때 버그가 나타나는 것으로 밝혀졌습니다. 감사합니다.
Cerlin

명확히하기 위해 지침과 스크린 샷이 Android Studio에서 가져온 것이라고 가정합니다. [Android Studio를 사용하지 않고 Xamarin을 사용하고 있습니다. 대부분의 개발자가 Android Studio를 사용하고 있다는 것을 알고 있습니다.]
ToolmakerSteve

예, 지침과 스크린 샷은 android studio 3.6.3에서 가져온 것입니다.
Kartikeya_M

0

아니요, 다른 사용자없이 앱을 디버깅하는 경우 Android Studio 의 Build> Build APK (s) 메뉴를 사용하거나 기기 / 에뮬레이터에서 실행하면 디버그 릴리스 APK 가 자동으로 설치됩니다. 다른 사용자와 함께 앱을 디버깅하는 경우 빌드> 서명 된 APK 생성 ... 메뉴를 사용합니다. 베타 버전 을 게시 하려면 Google Play 스토어를 사용하세요. APK는 app\build\outputs\apk\debugapp\release폴더에 있습니다.


0

사용 (Linux) : cd android ./gradlew assemblyRelease | assemblyDebug

각 케이스에 대해 서명되지 않은 APK가 생성됩니다 (디버그 또는 테스트 용).

참고 : Windows에서 gradlew.bat에 대한 gradle 실행 파일을 바꿉니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.