일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- VirtualBox
- MachineLearning
- centos
- localserver
- IOS
- 네트워크
- 개발
- qunit
- webpack
- build
- vsCode
- MAC
- PYTHON
- Android
- ReactNative
- 티스토리챌린지
- react
- 오블완
- 맥
- xcode
- androidstudio
- Chrome
- node
- 리눅스
- jest
- linux
- unittest
- TensorFlow
- 센토스
- Today
- Total
로메오의 블로그
[React Native] URL 배포하기 [Android/iOS] 본문
앱을 개발해서 스토어에 올리지 않고 URL로 배포하는 방법입니다.
프로젝트 생성
$ cd /my/project/path
$ react-native init deployTest --version 0.59.8
$ code ./deployTest
이 포스트는 최종적으로 firebase push notification을 적용하는 과정을 알아봅니다.
포스트를 작성하는 지금 현재 react native는 0.69.4까지 출시 되었는데,
해당 버전으로 프로젝트를 만들 경우 다른 라이브러리들과 호환에 문제가 많았습니다.
그래서 제가 사용해봤던 검증된 버전으로 포스트를 진행하도록 하겠습니다.
최신 버전에 대해서는 직접 적용해보시기 바랍니다.
Android 배포준비
Android Studio에서 프로젝트를 열어서 Application ID를 원하는 이름으로 변경합니다.
[React Native] 패키지명, 번들명 변경하기 Package, Bundle [Android, iOS]
위 포스트를 참조하세요.
키스토어 생성하기
$ keytool -genkey -v -keystore deploy-test-key.keystore -alias deploy-test-alias -keyalg RSA -keysize 2048 -validity 10000
keytool -genkey -v
-keystore deploy-test-key.keystore : 키스토어 이름: deploy-test-key.keystore
-alias deploy-test-alias : 알리아스: deploy-test-alias
-keyalg RSA -keysize 2048
-validity 10000 : 유효기간: 10,000일
위 명령어로 키스토어를 생성합니다.
질문에 답을 하시면 됩니다.
중요한건 키 저장소 비밀번호와 인증서 비밀번호입니다.
deploy-test-key.keystore가 생성되었습니다.
$ mv deploy-test-key.keystore android/app/
생성된 키스토어를 android/app 폴더로 이동합니다.
gradle.properties
MYAPP_RELEASE_STORE_FILE=deploy-test-key.keystore
MYAPP_RELEASE_KEY_ALIAS=deploy-test-alias
MYAPP_RELEASE_STORE_PASSWORD=abc123
MYAPP_RELEASE_KEY_PASSWORD=abc123
키스토어 파일명과 alias, 비밀번호를 추가합니다.
app/build.gradle
android {
defaultConfig {
....
}
signingConfigs {
release {
if (project.hasProperty('MYAPP_RELEASE_STORE_FILE')) {
storeFile file(MYAPP_RELEASE_STORE_FILE)
storePassword MYAPP_RELEASE_STORE_PASSWORD
keyAlias MYAPP_RELEASE_KEY_ALIAS
keyPassword MYAPP_RELEASE_KEY_PASSWORD
}
}
}
buildTypes {
release {
....
signingConfig signingConfigs.release
}
}
}
app/build.gradle에 위 코드를 추가합니다.
bundle 생성
$ mkdir android/app/src/main/assets
$ react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
bundle을 만들면서 개발자 모드를 false 합니다.
release apk 생성
$ cd android
$ ./gradlew assembleRelease
android/app/build/outputs/apk/release/app-release.apk가 생성되었습니다.
app-release.apk를 서버에 올려서 배포하면 됩니다.
iOS 배포준비
$ cd ios
$ pod init
ios/Podfile을 열어서 아래와 같이 deployTest와 deployTestTests 타겟만 남기고 나머지는 제거합니다.
# Uncomment the next line to define a global platform for your project
# platform :ios, '9.0'
target 'deployTest' do
# Comment the next line if you don't want to use dynamic frameworks
use_frameworks!
# Pods for deployTest
target 'deployTestTests' do
inherit! :search_paths
# Pods for testing
end
end
$ pod install
$ open deployTest.xcworkspace
react native 0.60 이상 버전은 podfile이 자동으로 생성되어 있으니 위 과정은 생략하셔도 됩니다.
Bundle Identifier를 변경합니다.
iOS 인증서와 프로비저닝 만들기
[XCode] iOS 인증서 / 프로비즈닝 프로파일 등록하기
위 포스트를 참조해서 인증서를 만듭니다.
참고로 iOS를 URL로 배포할려면 회사 차원의 Enterprise 계정이 필요합니다.
XCdoe > Proferences > Accounts에서 로그인 하시고 Download Manual Profiles를 누릅니다.
Target > deployTest > General > Signing에서 Automatically manage signing을 체크하고
Team에서 인증서 등록한 Team명을 선택합니다.
Target > deployTestTests > General > Signing에서 Automatically manage signing을 체크하고
Team에서 인증서 등록한 Team명을 선택합니다.
Archive 생성
아이폰을 연결하고 scheme을 기기로 선택합니다.
Product > Archive를 누릅니다.
Distribute Ap을 누릅니다.
Enterprise를 선택하고 Next
Next
짜짠~
안됩니다.ㅋㅋ
회사에서 Enterprise 계정을 사용하는데, 저는 개인개발자 계정이라서 더이상 진행이 안됩니다.
회사에서 Enterprise 계정을 구매하셨으면 여기서 Next만 누르면 바로 Export 버튼이 나오고 plist와 ipa 파일을 생성할 수 있습니다.
'App & OS > Hybrid' 카테고리의 다른 글
[React Native] Firebase Push Notification 추가 [Android] (0) | 2019.07.29 |
---|---|
[React Native] Firebase 연동하기 (2019년 기준) (1) | 2019.07.29 |
[React Native] 특정버전으로 프로젝트 생성하기 (0) | 2019.07.22 |
[React Native] 리소스 파일 다운로드하기 (zip 압축해제) (3) | 2019.07.13 |
[React Native] 디바이스에 Local Server 구동하기 (0) | 2019.07.13 |