kakao / kakao_flutter_sdk

Flutter SDK for Kakao Open API
Apache License 2.0
193 stars 70 forks source link

[Bug] Dart library 'dart:js_interop_unsafe' is not available on this platform. #190

Closed cyb9701 closed 4 months ago

cyb9701 commented 4 months ago

이슈 설명 (Issue description)

패키지 충돌로 인해 Kakao Sdk를 낮은 버전으로 사용하고 있습니다. Flutter 프로젝트에서 웹을 빌드할 경우, 아래와 같은 오류가 발생해서 빌드가 안되는 상황입니다. iOS와 Android 빌드는 정상적으로 작동하고 있습니다.

앱 ID (App ID)

420236

플랫폼 (Platform)

Web

디바이스 (Device)

Chrome

Version

1.4.2

Flutter SDK

3.10.6

재현 방법 (Steps to reproduce)

  1. kakao_flutter_sdk_common: ^1.4.2 추가
  2. flutter create .
  3. flutter build web

코드 샘플 (Code Sample)

사용하고 있는 kakao sdk들입니다.

kakao_flutter_sdk_common: ^1.4.2
kakao_flutter_sdk_share: ^1.4.2
kakao_flutter_sdk_talk: ^1.4.2
kakao_flutter_sdk_user: ^1.4.2
kakao_flutter_sdk_navi: ^1.4.2

Logs

Launching lib/main.dart on Chrome in debug mode...
Waiting for connection from debug service on Chrome...
../../../.pub-cache/hosted/pub.dev/pointycastle-3.8.0/lib/src/platform_check/node_crypto.dart:5:8: Error: Dart library 'dart:js_interop_unsafe' is not available on this platform.
import 'dart:js_interop_unsafe';
       ^
Context: The unavailable library 'dart:js_interop_unsafe' is imported through these packages:

    web_entrypoint.dart => package:billyo_app => package:kakao_flutter_sdk_share => package:kakao_flutter_sdk_template => package:kakao_flutter_sdk_common => package:encrypt => package:pointycastle => dart:js_interop_unsafe
    ...

Detailed import paths for (some of) the these imports:

    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/concat_kdf.dart => package:pointycastle/key_derivators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/ecc/ecc_base.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/concat_kdf.dart => package:pointycastle/key_derivators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/ecdh_kdf.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/api.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/asymmetric/api.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/concat_kdf.dart => package:pointycastle/key_derivators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/ecc/ecc_base.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/asymmetric/api.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/concat_kdf.dart => package:pointycastle/key_derivators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/asymmetric/api.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/ecdh_kdf.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/asymmetric/api.dart => package:pointycastle/api.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/ecc/ecc_base.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/key_derivators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/ecc/ecc_base.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/key_derivators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/key_generators/api.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/concat_kdf.dart => package:pointycastle/key_derivators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/ecc/ecc_base.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/key_generators/api.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/concat_kdf.dart => package:pointycastle/key_derivators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/key_generators/api.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/ecdh_kdf.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/key_generators/api.dart => package:pointycastle/api.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/key_generators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/ecc/ecc_base.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/impl.dart => package:pointycastle/key_generators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/adapters/stream_cipher_as_block_cipher.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/concat_kdf.dart => package:pointycastle/key_derivators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/ecc/ecc_base.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/adapters/stream_cipher_as_block_cipher.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/concat_kdf.dart => package:pointycastle/key_derivators/api.dart => package:pointycastle/ecc/api.dart => package:pointycastle/ecc/ecdh.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    web_entrypoint.dart => package:billyo_app/main.dart => package:billyo_app/analytics/analytics.dart => package:billyo_app/analytics/analytics_event.dart => package:billyo_app/global.dart => package:billyo_app/pages/pages.dart => package:billyo_app/pages/b2b/b2b_place_reservation_offer_page.dart => package:billyo_app/api/repositories/repositories.dart => package:billyo_app/api/repositories/ad/b2b_ad_repository.dart => package:billyo_app/api/providers/providers.dart => package:billyo_app/api/providers/ad/ad_tracking_provider.dart => package:billyo_app/models/models.dart => package:billyo_app/models/ad/b2b/community_post/b2b_community_post_ad.dart => package:billyo_app/constants/constants.dart => package:billyo_app/constants/billyo_faq.dart => package:billyo_app/utils/util.dart => package:billyo_app/utils/controller/custom_web_view_controller.dart => package:kakao_flutter_sdk_share/kakao_flutter_sdk_share.dart => package:kakao_flutter_sdk_share/src/share_api.dart => package:kakao_flutter_sdk_template/kakao_flutter_sdk_template.dart => package:kakao_flutter_sdk_common/kakao_flutter_sdk_common.dart => package:kakao_flutter_sdk_common/src/aes_cipher.dart => package:encrypt/encrypt.dart => package:pointycastle/export.dart => package:pointycastle/adapters/stream_cipher_as_block_cipher.dart => package:pointycastle/api.dart => package:pointycastle/src/registry/registry.dart => package:pointycastle/src/registry/registration.dart => package:pointycastle/key_derivators/ecdh_kdf.dart => package:pointycastle/src/utils.dart => package:pointycastle/src/platform_check/platform_check.dart => package:pointycastle/src/platform_check/web.dart => package:pointycastle/src/platform_check/node_crypto.dart => dart:js_interop_unsafe
    ...

../../../.pub-cache/hosted/pub.dev/pointycastle-3.8.0/lib/src/platform_check/node_crypto.dart:11:2: Error: Undefined name 'staticInterop'.
@staticInterop
 ^^^^^^^^^^^^^
../../../.pub-cache/hosted/pub.dev/pointycastle-3.8.0/lib/src/platform_check/node_crypto.dart:11:2: Error: This can't be used as an annotation; an annotation should be a reference to a compile-time constant variable, or a call to a constant constructor.
@staticInterop
 ^
../../../.pub-cache/hosted/pub.dev/fluttertoast-8.2.5/lib/fluttertoast_web.dart:74:23: Error: Undefined name 'assetManager'.
    final cssUrl = ui.assetManager.getAssetUrl(
                      ^^^^^^^^^^^^
../../../.pub-cache/hosted/pub.dev/fluttertoast-8.2.5/lib/fluttertoast_web.dart:83:22: Error: Undefined name 'assetManager'.
    final jsUrl = ui.assetManager.getAssetUrl(
                     ^^^^^^^^^^^^
../../../.pub-cache/hosted/pub.dev/cached_network_image_web-1.2.0/lib/cached_network_image_web.dart:159:12: Error: The method 'createImageCodecFromUrl' isn't defined for the class 'ImageLoader'.
 - 'ImageLoader' is from 'package:cached_network_image_web/cached_network_image_web.dart' ('../../../.pub-cache/hosted/pub.dev/cached_network_image_web-1.2.0/lib/cached_network_image_web.dart').
Try correcting the name to the name of an existing method, or defining a method named 'createImageCodecFromUrl'.
    return createImageCodecFromUrl(
           ^^^^^^^^^^^^^^^^^^^^^^^
../../../.pub-cache/hosted/pub.dev/pointycastle-3.8.0/lib/src/platform_check/node_crypto.dart:15:19: Error: The method 'callMethod' isn't defined for the class 'JSObject'.
 - 'JSObject' is from 'dart:_interceptors'.
Try correcting the name to the name of an existing method, or defining a method named 'callMethod'.
    return crypto.callMethod('randomFillSync'.toJS, buf);
                  ^^^^^^^^^^
Failed to compile application.

Flutter Doctor

[!] Flutter (Channel stable, 3.10.6, on macOS 14.4 23E214 darwin-arm64, locale ko-KR)
    • Flutter version 3.10.6 on channel stable at /Users/cyb/Developer/flutter_3.10.6
    ! Warning: `flutter` on your path resolves to /Users/cyb/Developer/flutter/bin/flutter, which is not inside your current Flutter SDK checkout at
      /Users/cyb/Developer/flutter_3.10.6. Consider adding /Users/cyb/Developer/flutter_3.10.6/bin to the front of your path.
    ! Warning: `dart` on your path resolves to /Users/cyb/Developer/flutter/bin/dart, which is not inside your current Flutter SDK checkout at
      /Users/cyb/Developer/flutter_3.10.6. Consider adding /Users/cyb/Developer/flutter_3.10.6/bin to the front of your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision f468f3366c (11 months ago), 2023-07-12 15:19:05 -0700
    • Engine revision cdbeda788a
    • Dart version 3.0.6
    • DevTools version 2.23.1
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/cyb/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • ANDROID_HOME = /Users/cyb/Library/Android/sdk
    • Java binary at: /Users/cyb/Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 15C500b
    • CocoaPods version 1.14.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2023.3)
    • Android Studio at /Users/cyb/Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

[✓] IntelliJ IDEA Ultimate Edition (version 2024.1.2)
    • IntelliJ at /Users/cyb/Applications/IntelliJ IDEA Ultimate.app
    • Flutter plugin version 79.2.3
    • Dart plugin version 241.17502

[✓] VS Code (version 1.89.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.88.0

[✓] Connected device (1 available)
    • Chrome (web) • chrome • web-javascript • Google Chrome 125.0.6422.78

[✓] Network resources
    • All expected network resources are available.
mbkim95 commented 4 months ago

안녕하세요

kakao_flutter_sdk에서는 SDK 내부에 토큰 저장시 암호화를 하기 위해 encrypt 패키지를 사용하고 있습니다. 그리고 encrypt 패키지에서는 pointycastle 패키지를 사용하고 있습니다.

첨부해주신 에러 메시지를 확인해보면 pointycastle 3.8.0 버전이 문제가 되는 것으로 보이는데요, 확인해보니 pointycastle 3.8.0 버전은 Dart 3.0 이상부터 사용할 수 있기 때문에 flutter 3.10.6 버전에서 빌드가 실패하는 것으로 보여요. (참고 - https://pub.dev/packages/pointycastle/versions)

encrypt 패키지의 pubspec.yaml 파일을 확인해보면 ^ (caret syntax) 사용해서 pointycastle 패키지 의존성 추가가 되어있기 때문에 3.8.0 버전의 의존성 추가가 된 것 같습니다.

최신 버전의 flutter를 사용하시면 정상적으로 빌드가 될 것으로 보이나, 최신 버전을 사용하기 어려운 상황인 것으로 보여서 아래 내용 참고해서 dependency_overrides 선언을 통해 pointycastle 버전을 낮추어서 사용하시면 정상적으로 동작할 것 같아요.

dependencies:
  flutter:
    sdk: flutter
  kakao_flutter_sdk: ^1.4.2

dependency_overrides:
  pointycastle: 3.7.3  # 원하는 pointycastle 버전 설정
cyb9701 commented 4 months ago

@mbkim95 정상 작동하네요! 감사합니다