티스토리 뷰
윈도우 개발 환경에서 VSCode나 기타 IDE에서 Cordova, Ionic 등의 Node.js 패키지를 실행하려 할 때, UnauthorizedAccess 오류가 발생되는 현상에 대해 해결 방법을 알아보겠습니다.
우선 글쓴이가 만난 오류 상황입니다.
윈도우10에서 Node.js는 설치가 되어있었고, 명령 프롬프트에서 npm install -g cordova 명령어로 Cordova를 처음 설치하고 cordova create webapp 명령어로 앱 프로젝트를 생성 후 VSCode로 해당 프로젝트를 열었습니다.
그리고 안드로이드 플랫폼을 추가하기 위해 VSCode 터미널에서 명령어를 실행하니 아래와 같은 오류가 발생되었습니다.
> cordova platform add android
cordova : 이 시스템에서 스크립트를 실행할 수 없으므로 C:\Users\User\AppData\Roaming\npm\cordova.ps1 파일을 로드할 수 없습니다. 자세한 내용은 about_Execution_Policies(https://go.microsoft.com/fwlink/?LinkID=135170)를 참조
하십시오.
위치 줄:1 문자:1
+ cordova platform add android
+ ~~~~~~~
+ CategoryInfo : 보안 오류: (:) [], PSSecurityException
+ FullyQualifiedErrorId : UnauthorizedAccess
문제의 원인은, VSCode가 사용자 권한으로 실행되면서 덩달아 VSCode의 터미널의 권한이 사용자 수준으로 낮아진 상황이였습니다. (대부분 VSCode 등의 프로그램을 설치할 때 User only로 설치되는 경우 발생)
문제를 해결하기 위해 스크립트 실행 제한을 풀어줍니다.
Windows PowerShell(윈도우 파워셸)을 관리자 모드로 실행하고 아래 명령어로 제한을 확인해봅니다.
> Get-ExecutionPolicy
Restricted
Get-ExecutionPolicy 실행 후 Restricted가 출력된다면 스크립트 실행이 제한된 상태입니다. 이 제한을 풀어보겠습니다.
> Set-ExecutionPolicy RemoteSigned
실행 규칙 변경
실행 정책은 신뢰하지 않는 스크립트로부터 사용자를 보호합니다. 실행 정책을 변경하면 about_Execution_Policies 도움말
항목(https://go.microsoft.com/fwlink/?LinkID=135170)에 설명된 보안 위험에 노출될 수 있습니다. 실행 정책을
변경하시겠습니까?
[Y] 예(Y) [A] 모두 예(A) [N] 아니요(N) [L] 모두 아니요(L) [S] 일시 중단(S) [?] 도움말 (기본값은 "N"): y
Set-ExecutionPolicy RemoteSigned를 실행하고 y를 입력하여 진행하고, 다시 제한을 확인해봅니다.
> Get-ExecutionPolicy
RemoteSigned
RemoteSigned로 정상적으로 반영되었습니다.
이제 다시 Cordova로 돌아와서 안드로이드 플랫폼을 추가해봅니다.
> cordova platform add android
Using cordova-fetch for cordova-android@^9.1.0
Adding android project...
Creating Cordova project for the Android platform:
Path: platforms\android
Package: io.cordova.hellocordova
Name: HelloCordova
Activity: MainActivity
Android target: android-29
Subproject Path: CordovaLib
Subproject Path: app
Android project created with cordova-android@9.1.0
실행이 정상적으로 되었습니다.
'SW개발 > Mobile-Hybrid' 카테고리의 다른 글
Cordova(코르도바) Orientation(화면) 가로,세로 고정 및 회전 지정 (0) | 2021.12.08 |
---|---|
Cordova(코르도바) 실행 로딩화면 Splashscreen(스플래시 스크린) 적용 (0) | 2021.12.08 |
Cordova(코르도바) Hosted WebApp에서 Plugin 연동하기 (0) | 2021.12.06 |
Cordova(코르도바) Hybrid Hosted WebApp(하이브리드 웹앱) 베이스 만들기 (0) | 2021.12.06 |
Cordova(코르도바) Android(안드로이드) ANDROID_SDK_ROOT , JAVA_HOME, Gradle 빌드 오류 (0) | 2021.12.06 |