Problemi noti
Ionic 실시간 리로드
- 개발할 때 CLI에서 Ionic 실시간 리로드 기능을 사용하면 플러그인을 덮어쓰므로 업데이트가 반영되지 않습니다
Quasar 실시간 리로드
- 내부적으로 Ionic과 동일한 시스템을 사용하므로 업데이트가 반영되지 않습니다
업데이트 실패
- 일반적으로 큰 업데이트(> 20mb)를 푸시할 때 발생하며, 많은 사용자가 최신 버전을 받지 못합니다
이전에는 사용자가 다운로드가 완료될 때까지 앱을 열어두어야 했지만, 이제는 백그라운드 다운로드를 사용합니다. 하지만 여전히 몇 초로 제한됩니다
Android
다운로드 불가
인도의 기기에서 문제가 발생했고, 사용자와 통화하여 다른 DNS 서버를 시도하게 했더니 작동했습니다
따라서 문제가 있다면 Cloudflare나 Google DNS와 같은 다른 DNS 서버를 사용해보세요
Cloudflare: 1111 및 1001
Google DNS: 8888 및 8844 또는 dnsgoogle
자체 호스팅
자체 호스팅 업데이트를 푸시할 때, Android 앱의 보안 정책 때문에 “HTTP” 엔드포인트를 사용할 수 없다는 점을 유의하세요. 그래도 사용하고 싶다면 이 가이드를 따르세요:
압축 해제
압축 해제 문제: DEFLATED entries can have EXT descriptor
CLI가 아닌 다른 방법으로 번들을 압축했다면 zip 형식이 잘못되었을 수 있습니다. CLI 명령어 npx @capgo/cli zip BUNDLE_FOLDER
를 사용하세요
이는 Java의 알려진 문제입니다:
Clearfix 문제
- usesCleartextTraffic 문제가 있다면, 플러그인이 sonar cloud에서 권장하는 모범 사례를 따르기 때문입니다. 90%의 경우에는 잘 작동하지만 일부 플러그인에서 문제가 발생할 수 있습니다
해결하려면 android/app/src/main/AndroidManifestxml
의 <application>
키에 다음을 추가하세요:
tools:replace="android:usesCleartextTraffic"xmlns:tools="http://schemasandroidcom/tools"
IOS
개인정보 보호 매니페스트
Privacy Manifest(일반적으로 ios/App/PrivacyInfoxcprivacy
)에 NSPrivacyAccessedAPICategoryUserDefaults
사전 키를 추가하세요:
<?xml version="10" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 10//EN" "http://wwwapplecom/DTDs/PropertyList-10dtd"><plist version="10"> <dict> <key>NSPrivacyAccessedAPITypes</key> <array> <!-- 파일이 이미 존재하는 경우 배열에 이 dict 항목을 추가하세요 --> <dict> <key>NSPrivacyAccessedAPIType</key> <string>NSPrivacyAccessedAPICategoryUserDefaults</string> <key>NSPrivacyAccessedAPITypeReasons</key> <array> <string>CA921</string> </array> </dict> </array> </dict></plist>
UserDefaults
API 접근 이유로 CA921
을 선언하는 것을 권장합니다
네트워크 권한
업데이트 테스트를 위해 로컬 서버를 사용할 때 앱이 네트워크 권한을 요청하는 것은 정상적인 동작입니다. 원격 서버를 사용할 때는 이런 일이 발생하지 않습니다
양쪽 OS
수동 모드 업데이트를 할 때 일부 이벤트를 캐치하기가 어렵습니다. 예를 들어 업데이트 실패는 JS 코드가 리로드되기 직전에 트리거되므로 캐치할 수 없습니다
대안으로 번들을 나열하고 오류 통계를 확인하여 업데이트 실패 여부를 알 수 있습니다
향후 더 나은 방법을 찾아야 하지만, 자동 모드가 권장되는 업데이트 방법이므로 우선순위는 아닙니다
PR을 통해 개선에 도움을 주시면 환영합니다
CLI
CLI에 문제가 있다면,
capacitorconfigts에 appId와 appName이 있는지 확인하세요
공식 문서의 가이드를 따르세요: