Closed byyoungjin closed 3 years ago
https://github.com/dooboolab/react-native-iap <-- 한국에서 만든 rn library 네 신기.. ios_youtube android_youtube
https://dev-yakuza.posstree.com/ko/react-native/ios-running-on-device/ https://medium.com/dev-genius/run-react-native-app-on-ios-device-6e8c67afb44b
https://medium.com/@klpdjolanta/how-to-deploy-ios-app-to-apple-store-using-xcode-c8c613ec13ee
archive 는 됐는데, organizer 가 뜨지않아서 찾아봄 https://stackoverflow.com/questions/7377162/xcode-but-where-are-our-archives
App store connect operation error 가 떠서 보니 apple connect 쪽에도 config 를 해줘야 한다. https://es1015.tistory.com/377
app icon 넣어주라는 error https://medium.com/@ansonmathew/app-icon-in-react-native-ios-and-android-6165757e3fdb 하나만넣었더니 안되서 아래와 같이 다넣음. https://appicon.co/ <- 유용한 appIcon generator
성공 (일단 내 개인 계정에 올림)
ios App distribution Best Practice <- xcode, apple connect 등 제대로 설명
ios, android Inapp purchase setting 법 https://betterprogramming.pub/react-native-in-app-purchase-subscription-bb7ad18ec5a0
App store server notification 에 내 서버를 등록해두면, in app purchase 관련한 사항에 대해 실시간으로 응답을 받을 수있는듯. (refund 등에 대해) https://developer.apple.com/documentation/appstoreservernotifications
sandbox account 에 대하여 https://www.revenuecat.com/blog/testing-in-app-purchases-ruins-your-phone
in app purchase https://www.raywenderlich.com/5456-in-app-purchase-tutorial-getting-started
tax form 입력(US) https://m.blog.naver.com/PostView.nhn?blogId=oakwoodpa&logNo=70094305582&proxyReferer=https:%2F%2Fwww.google.co.kr%2F
upload key 생성 및 업로드 https://reactnative.dev/docs/signed-apk-android
JDK 는 javascript development kit android 는 자바로 만드니까, upload key 를 만드는데 jdk 를 이용하는거 같다.
goole play store 의 upload key, sign key 두가지 개념
key store: pnuu-bareflow-upload-key.kestore key alias: pnuu-bareflow-alias key store password: pnuubareflow key password : pnuubareflow 이름 ,성 : youngjinHa 조직단위 : pnuu
background location 을 사용하지 않는데, 요청한다고 사유를 대라고한다. 아마 expo default 이거나, 내가 사용하는 library 중에서 background location 요청하는것이 있는것 같다. https://stackoverflow.com/questions/64541850/expo-delete-permission-location
bare workflow 에는 default 로 설정된 permission 들이있는데, https://docs.expo.io/versions/latest/sdk/permissions/#excluding-android-permissions-in-bare-workflow
그중엔 fine, coarse, background location 도 포함된다. android sdk 29 이전에는 fine, coarse 에 background location 도 포함되므로, 아래와 같은 방법으로 AndroidManifest.xml 파일에서 위 3가지 를 지워야 내 앱에서 background location 을 사용하지 않는것이 된다. https://github.com/expo/expo/issues/11918
android versioning version 코드는 그냥 integer 로 1씩 올린다. 어떤 version 이 먼저인지 알기위한 값. version name 이 사용자에게 표시되고, minor major 개념적용 https://developer.android.com/studio/publish/versioning
google play console 에 subscription 설정후
android device 로 테스트 https://reactnative.dev/docs/running-on-device
android 의 경우에 대부분의 케이블은 충전만되고, 데이터 전송은 되지않는다. 데이터 전송을 위해 예전에 폰샀을때 받은 모듈을 중간에 끼워보니 데이터가 전송된다.
근데 android file transfer 또는 Samsung Smart Switch 가 필요하다는 경고가 뜨는데, 무시하면되고
계속진행햇더니 아래와 같은 에러가 떳다. 이유는 아마 이 로컬 테스트 이전에, 내부테스트 올린것을 다운로드 받아서 폰에 있었는데, 이 앱과 번들아이디가 같은데, signing 이 다르다는 의미인것같다. 내부테스트 앱의 signing 은 google 에서 auto 로 제공한 것이고, 지금 local 앱의 signing 은 내가 upload 키로 만든(?) 것 이기때문에 다른것 같다. (확실하진 않다. 아무튼,, signing 이 다르다. upload key 와 signing key 에 대한 이해가 좀더 필요하다. )
* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.pnuubareworkflow signatures do not match previously installed version; ignoring!
일단 android 구독설정, link 되어서 구독정보 설정 가져오는 것 까지 완료
안드로이드 ios 모두 구독정보를 가지고오는 단계에서 credential 한 정보는 없고, 그냥 productId 와 결제 정보등의 단순 정보만 들어있다. 구독 요청, 환불 등의 로직은 이 Id 와 함께 expo sdk 에 넘기면, 내부적으로 구글 play, apple connect 서버에 요청, 결제가 진행이 되는 것 같다.
--> apple, google 에서 제공하는 rest api 이용하면 구독취소, 환불등의 기능도 앱내에서 구현할 수있다.
expo bareworkflow in app purchase example https://github.com/expo/expo/blob/cd44dd43bde87bbdcf53fe6fe62779e037a5f183/apps/native-component-list/src/screens/InAppPurchases/InAppPurchases.tsx
android inapp purchase local 에서 테스트하는법? https://stackoverflow.com/questions/42942046/how-to-test-google-play-in-app-purchase
android in app purchase test docs https://developer.android.com/google/play/billing/test#subs
testing on android medium post https://medium.com/bleeding-edge/testing-in-app-purchases-on-android-a6de74f78878
licensed testers https://support.google.com/googleplay/android-developer/answer/6062777
1-1 부분을 확실히 해줘야 google play console 에 나타난다. 2개 service account 를 생성했고, 각각 소유자, 뷰어 로 설정해봤다. 뭐가다른지 테스트 위해