KMM으로 개발하면서 발견한 몇 가지 오류

내가 해결한 목록과 여전히 나를 괴롭히는 목록





따라서 Kotlin Multiplatform 모듈을 코딩하려고 합니다.

이 새로운 모듈을 사용하여 Android 프로젝트용 빌드 Gradle 파일을 설정한 후 다음과 같이 하게 될 것이라고 믿게 됩니다.
  • Android에서 빌드합니다.
  • 그런 다음 pod install을 실행하여 미리 컴파일된 이 새 모듈을 iOS 프로젝트에 설치합니다.
  • 그런 다음 Xcode로 이동하여 빌드를 실행하면 모든 것이 제대로 작동해야 합니다. 오른쪽?

  • 잘못된!

    현재 Kotlin Multiplatform은 아직 베타 버전이 아닙니다. 그래서 그 과정에서 몇 가지 오류가 있었습니다. 내가 찾은 몇 가지가 있습니다.

    액세스 관련 MAC 문제



    이러한 애플리케이션에 폴더(또는 최소한 Android 및 iOS 프로젝트에 필요한 폴더)에 대한 전체 액세스 권한이 있는지 확인하십시오.

    터미널, Xcode, 안드로이드 스튜디오.

    MAC에서 PodFile을 찾을 수 없습니다.



    아직 생성하지 않은 경우 하나의 청사진은 다음과 같습니다.

    https://medium.com/media/937ac78eadd1ad3cec816488504a6ecd/href

    PodFile이 이미 있는 경우 발생할 수 있는 몇 가지 일이 있습니다.
  • Android Studio는 build.gradle.kts에 선언된 PodFile이 없기 때문에 찾을 수 없습니다.
  • Android 스튜디오에 해당 폴더를 검색할 수 있는 권한이 없습니다.

  • 예시:

    https://medium.com/media/4838ced1357cdf02ca9b793b018de6ac/href

    이 경우 파일이 존재하는지 그리고 올바른 경로인지 확인하십시오.

    또한 Android Studio에 해당 경로에 대한 액세스 권한이 있는지 확인하세요.

    아무 것도 작동하지 않으면 build.gradle.kts에서 podfile을 선언하는 해당 줄을 삭제할 수 있습니다. Android에서 빌드한 후 수동으로 pod 설치를 실행하세요.

    MAC M1 문제



    M1용 Cocoapod 설치



    이 답변을 확인하십시오.

    How to install Cocoapods on Apple Silicon M1 computers? by Nikolay Nikonov

    시뮬레이터 + M1



    Mac M1을 사용 중이고 시뮬레이터용으로 빌드하려는 경우 수행해야 할 작업은 다음과 같습니다.

    https://medium.com/media/273fb3549ba005d7420edd7c9302b0ae/href

    실제 iPhone으로 실행 중인 경우 Rosetta가 필요하지 않습니다.

    M1 + 룸 라이브러리



    change your room dependency value:

    From: ext.room_version = '2.3.0' 
    To: ext.room_version = '2.4.0-alpha03'
    


    Xcode M1의 JAVA_HOME



    Azul’s M1 OpenJDK builds에서 OpenJDK를 다운로드합니다. 사용되는 기본 버전이 11보다 크지 않도록 합니다. Gradle을 빌드하는 동안 버전이 11보다 큰 XCode 버그.

    여기 더 있습니다 detailed answer.

    XCode에서 [yourSharedModule].klib를 찾을 수 없습니다.



    Android 폴더의 프로젝트에서 검색할 수 있도록 Xcode 및 터미널에 대한 액세스 권한을 부여했는지 확인하십시오.

    Android 프로젝트에서 .gradle을 삭제합니다.

    iOS 프로젝트에서 .konan을 삭제합니다.

    Android 프로젝트의 gradle 폴더로 이동하여 다음을 입력하십시오.

    chmod -R +x * 
    -R means recursive through directories 
    +x means add to every file the permission to be executed
    * means all files and directories in the current folder
    


    그들 모두를 재건하십시오. (Android 빌드, Pod 설치, iOS 빌드).

    이제 이 .klib 파일이 마음에 들지 않아 찾을 수 없는 일부 Mac Intel을 찾았습니다. 여전히 성가신 특정 Mac에 대해 이 문제를 해결하려고 노력하고 있습니다. 할 수 있습니다check how it’s going here.

    여기까지가 KMM이 지금까지 겪었던 각 개별 문제를 해결하기 위해 책상에 머리를 부딪힌 약 한 달을 요약한 것입니다.

    https://skiraindustries.com에 원래 게시됨

    좋은 웹페이지 즐겨찾기