콘텐츠로 건너뛰기

알려진 문제

  • 개발 시 CLI의 Ionic 라이브 리로드 기능을 사용하면 플러그인이 재정의되므로 업데이트를 볼 수 없습니다.
  • 내부적으로 ionic과 동일한 시스템을 사용하므로 업데이트를 볼 수 없습니다.
  • 일반적으로 큰 업데이트(> 20mb)를 푸시할 때 발생하며, 상당한 비율의 사용자가 최신 버전을 받지 못합니다. 과거에는 사용자가 다운로드가 완료될 때까지 앱을 열어두어야 했지만, 이제는 백그라운드 다운로드를 사용하지만 여전히 몇 초로 제한됩니다.

인도의 일부 기기에서 문제를 발견했고, 사용자와 통화하여 다양한 DNS 서버를 시도하게 했더니 작동했습니다.

따라서 문제가 있다면 Cloudflare 또는 Google DNS와 같은 다른 DNS 서버를 사용해 보세요.

Cloudflare: 1.1.1.1 및 1.0.0.1

Google DNS: 8.8.8.8 및 8.8.4.4 또는 dns.google

자체 호스팅 업데이트를 푸시할 때 “HTTP” 엔드포인트를 사용할 수 없다는 점에 유의하세요. 이는 Android 앱의 보안 정책에 위배됩니다. 그래도 사용하려면 다음 가이드를 따르세요:

압축 해제 문제: DEFLATED 항목에 EXT 설명자가 있을 수 있습니다

CLI가 아닌 다른 것으로 번들을 압축한 경우 zip의 형식이 올바르지 않을 수 있습니다. CLI 명령 npx @capgo/cli zip BUNDLE_FOLDER를 사용하세요.

이것은 Java의 알려진 문제입니다:

  • usesCleartextTraffic 문제가 있는 경우, 플러그인이 sonar cloud에서 권장하는 모범 사례를 따르기 때문입니다. 90%의 경우 잘 작동하지만 일부 플러그인에서는 문제가 발생합니다.

이를 수정하려면 android/app/src/main/AndroidManifest.xml<application> 키에 다음을 추가하세요:

tools:replace="android:usesCleartextTraffic"
xmlns:tools="http://schemas.android.com/tools"

NSPrivacyAccessedAPICategoryUserDefaults 딕셔너리 키를 개인정보 보호 매니페스트(일반적으로 ios/App/PrivacyInfo.xcprivacy)에 추가하세요:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>NSPrivacyAccessedAPITypes</key>
<array>
<!-- 파일이 이미 존재하는 경우 이 dict 항목을 배열에 추가합니다. -->
<dict>
<key>NSPrivacyAccessedAPIType</key>
<string>NSPrivacyAccessedAPICategoryUserDefaults</string>
<key>NSPrivacyAccessedAPITypeReasons</key>
<array>
<string>CA92.1</string>
</array>
</dict>
</array>
</dict>
</plist>

UserDefaults API에 액세스하는 이유로 CA92.1을 선언하는 것이 좋습니다.

업데이트 테스트를 위해 로컬 서버를 사용할 때 앱이 네트워크 권한을 요청하는 것은 정상적인 동작입니다. 원격 서버를 사용할 때는 그렇지 않습니다.

수동 모드 업데이트를 수행할 때 일부 이벤트는 포착하기 어렵습니다. 예를 들어 업데이트 실패는 JS 코드가 다시 로드되기 직전에 트리거되므로 포착할 수 없습니다.

한 가지 대안은 번들 목록을 나열하고 오류 통계를 확인하여 업데이트가 실패했는지 알아보는 것입니다.

향후 이를 처리하는 더 나은 방법을 찾아야 하지만, 자동 모드가 권장되는 업데이트 방법이므로 우선순위는 아닙니다.

이를 개선하는 데 도움이 되는 PR을 환영합니다.

CLI가 무언가를 수행하는 데 문제가 있는 경우,

capacitor.config.tsappIdappName이 있는지 확인하세요.

공식 문서의 가이드를 따르세요: