이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 12549|회답: 0

[이오닉] Ionic Development Android App Practice (2): Android Packaging apk

[링크 복사]
게시됨 2018. 6. 20. 오전 10:16:52 | | | |
모바일 폰 배포 및 cordova 플러그인 사용

간단한 웹 애플리케이션을 개발했으며, 이제 모바일에 배포하기 전에 준비를 할 예정입니다.
Ionic은 iOS와 안드로이드 두 플랫폼을 지원하며, 기본 Ionic 프로젝트는 이 두 플랫폼을 추가하지 않습니다. 수동으로 cd를 개발 디렉터리에 추가해야 다음 명령어를 실행합니다:


여기서는 안드로이드 플랫폼만 있으면 되고, 실행한 후에는 추가하신 플랫폼 목록을 보여주는 명령을 실행하겠습니다:

> 코르도바 플랫폼 LS

텔레메트리 수신이 거부되었습니다. 이를 변경하려면 : cordova 텔레메트리 실행.
설치된 플랫폼:
  안드로이드 7.0.0
이용 가능한 플랫폼:
  브라우저 ~5.0.1
  iOS ~4.5.4
  OSX ~4.0.1
  Windows ~5.0.0
  www ^3.12.0



안드로이드 패키지


(이 명령어에 문제가 있다면, -release를 제거한 후 컴파일을 디버그할 수 있으며, 컴파일이 완료되면 DOS가 apk 디렉터리 위치를 표시합니다)

만약 당신의 똑똑한 눈이 다음 문구를 발견한다면: 성공을 쌓으세요! 이는 성공적으로 포장했다는 의미입니다. 인내심을 가지세요, 명령줄 끝에 apk가 어디서 생성되는지 알려줄 거예요.

패키징 명령을 다시 실행하면 다음과 같은 오류가 나옵니다. 오류는 jdk 버전이 너무 높다는 것, 저는 "jdk-10.0.1" 버전이고, 문제를 해결하려면 "1.8.0_171" 버전을 다시 다운로드하고 설치할 수 있습니다!!

C:\project\android\myApp>ionic cordova build android --release
실행 중인 app-scripts build: --platform android --target cordova
[17:06:47] 빌드 개발 시작 ...
[17:06:47] 청소 시작 ...
[17:06:47] 클린은 8ms 만에 끝냈다
[17:06:47] 복사 시작 ...
[17:06:47] 딥링크가 시작되었다...
[17:06:47] 딥링크는 15ms 만에 완료했습니다
[17:06:47] 트랜스파일 시작 ...
[17:06:50] 트랜스파일은 3.71초에 완주했다
[17:06:50] 전처리 시작 ...
[17:06:50] 전처리 완료 시간은 1ms
[17:06:50] 웹팩이 시작됐다 ...
[17:06:51] 복사 완료 시간은 3.96초
[17:06:56] 웹팩은 5.58초에 완주했다
[17:06:56] 새스가 시작했다...
'from' 옵션이 없으면 PostCSS가 잘못된 소스 맵을 생성할 수 있고, Browserslist 설정을 찾지 못할 수 있습니다. 이 경고를 막으려면 CSS 파일 경로나 '정의되지 않음'으로 설정하세요.
[17:06:58] 사스는 2.05초로 완주했다
[17:06:58] 후처리 시작 ...
[17:06:58] 후처리 완료 시간은 10ms
[17:06:58] 보풀이 시작됐다...
[17:06:58] 빌드 개발자는 11.65초 만에 완료했습니다
> cordova 빌드 안드로이드 --릴리스

텔레메트리 수신이 거부되었습니다. 이를 변경하려면 : cordova 텔레메트리 실행.
Android Studio 프로젝트 감지됨

ANDROID_HOME=C:\Users\itsvse_pc\AppData\Local\Android\sdk
JAVA_HOME=C:\Program Files\Java\jdk-10.0.1
(노드:14940) UnhandledPromiseRejectionWarning: UnhandledPromise 거부 (거부 ID: 1): CordovaError: JDK 1.8 이상 요구사항 검사 실패
(노드:14940) [DEP0018] 삭제 경고: 처리되지 않은 약속 거절은 권장되지 않습니다. 앞으로는 처리되지 않은 약속 거부 시 Node.js 프로세스가 0이 아닌 종료 코드로 종료됩니다.

[17:07:01] 린트는 3.00초로 완주했다

위 명령을 다시 실행하세요. 제 네트워크 속도가 느리고 처음으로 실행, 많은 컴포넌트를 다운로드하는 등 12분 동안 실행하는 것입니다. 아래 그림에 나와 있습니다:



C:\project\android\myApp\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk 是编译后的app存放地址。

"app-release-unsigned.apk"을 제 휴대폰(화웨이 아너 10)에 복사하면 오류가 다음과 같습니다:



이는 앱이 서명되지 않고 설치할 수 없기 때문입니다.

APK 서명

제 Java 디렉터리가 환경 변수에 있으니, 명령어를 다음과 같이 실행하면 됩니다:

/*说明:-genkey 产生密钥
       -alias demo.keystore alias demo.keystore
       -keyalg RSA는 서명을 암호화하기 위해 RSA 알고리즘을 사용합니다
       - 유효 40000 유효 4000일
       -keystore itsvse.keystore filename */

apksigner는 SDK 디렉터리의 build-tools 디렉터리에 위치해 있습니다. 참고로 v2 서명 방식은 Android 7.0 이후에야 도입되었기 때문에, apksigner.jar >25 버전 SDK\build-tools\에서만 찾을 수 있습니다.
cmd를 열고 디렉터리를 SDK\build-tools\버전 번호\lib(예: C:\Users\itsvse_pc\AppData\Local\Android\Sdk\build-tools\28.0.0\lib)로 자른 후 실행합니다:


본보기:

D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息
       -키스토어 데모.키스토어 키스토어 위치
       -signedjar demor_signed.apk demo.apk demo.keystore가 공식적으로 서명되었고, 서명 후 세 가지 매개변수 순서대로 demo_signed파일이 생성되며, 서명할 파일이 demo.apk 있으며, keystore demo.keystore가 생성됩니다.*/



apk가 이미 서명되어 있는지 확인하세요:

서명된 "output.apk" 파일을 휴대폰에 복사한 후 설치하면, 정상적으로 설치할 수 있고 정상적으로 실행될 수 있습니다. 아래 그림에서 보여드리듯이:







이전의:여러 버전의 자바를 완전히 삭제하는 방법
다음:ListPage에 대한 구성 요소 공장은 발견되지 않았습니다. 추가하셨나요?
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com