iOS 기기에서 플러터 서명이 유효하지 않습니다


11

TL; DR

아래 답변을 참조하십시오 : https://stackoverflow.com/a/60013390/1121497

방금 13.4를 설치했고 이제 Flutter가 iPhone에서 작동하기 때문에 iOS 13.3에 문제가있는 것 같습니다. :)


flutter createiOS 기기 (iPhone XS) 에서 새로운 Flutter 앱 (에서 만든 샘플 앱 ) 을 실행하려고합니다 . Xcode가 설치를 관리하지만 다음 메시지와 함께 충돌합니다.

dyld: Library not loaded: @rpath/Flutter.framework/Flutter
  Referenced from: /private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Runner
  Reason: no suitable image found.  Did find:
    /private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Frameworks/Flutter.framework/Flutter: code signature invalid for '/private/var/containers/Bundle/Application/BA807438-FA5B-4021-B37D-FC437B2C80CA/Runner.app/Frameworks/Flutter.framework/Flutter'

시도 flutter run하면 앱도 열리고 충돌합니다. 그리고 명령은 영원히 계속 기다립니다.

$ flutter run
Launching lib/main.dart on Ferran Maylinch’s iPhone in debug mode...

Automatically signing iOS for device deployment using specified development team in Xcode project: 25D86TPBWG
Running Xcode build...                                                  

 ├─Assembling Flutter resources...                           4.3s
 └─Compiling, linking and signing...                        13.3s
Xcode build done.                                           21.0s
Installing and launching...                                             
(This is taking an unexpectedly long time.)

Xcode에서 팀 (개인 팀)을 구성하고 서명 인증서 (Apple 개발 인증서)를 장치에 Hello world Swift 프로젝트를 설치할 수 있기 때문에 괜찮습니다.

참고 : Apple Developer Program의 계정을 지불하지 않습니다 . iOS 기기에서 Flutter 앱을 실행하려면 반드시 필요한가요?

나는 따랐다 맥 OS 지침flutter doctor내가 iOS 용 모든 것을 I의 필요가 말한다 :

[] Flutter (Channel stable, v1.12.13+hotfix.5, on Mac OS X 10.15.2 19C57, locale en-ES)

[!] Android toolchain - develop for Android devices (Android SDK version 28.0.3)
    ! Some Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[] Xcode - develop for iOS and macOS (Xcode 11.3)
[!] Android Studio (version 3.5)Flutter plugin not installed; this adds Flutter specific functionality.Dart plugin not installed; this adds Dart specific functionality.
[] IntelliJ IDEA Ultimate Edition (version 2019.3.1)
[!] VS Code (version 1.41.1)Flutter extension not installed; install from
      https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[] Connected device (1 available)

! Doctor found issues in 3 categories.

보시다시피, 나는 안정된 채널을 사용하여 베타 채널의 문제를 버렸지 만 일반적으로 베타 채널에서 웹용 플러터 를 만들기 위해 일합니다 (잘 작동합니다).

iOS 시뮬레이터에서 앱도 제대로 작동합니다.

최근에 나는 파일이 없다는 것을 알았습니다 ios/Podfile. 나는 이 게시물이 그것에 대해 이야기하는 것을 발견 했습니다. 필자의 경우 이것이 중요한지 아닌지는 모르겠지만 수동 으로이 Podfile을 추가하려고했습니다 . 어쨌든 동일한 서명 오류가 발생합니다.

이것에 좌절하여 지금 은 NativeScript 로 전환했습니다 .


실제 장치에서 디버그 또는 릴리스 모드로 실행하려고합니까?
Sunkuu7

@SlahLayouni 디버그 모드에있었습니다. 릴리스 모드를 시도했지만 동일한 오류로 실패합니다.
Ferran Maylinch

먼저 빌드 릴리스를 시도한 다음 xcode에서 릴리스로 실행하십시오. flutter build ios --release
Sunkuu7

1) iOS 시뮬레이터를 사용해 보셨습니까? 2) Swift / Xcode에서 "Hello World"를 iPhone 장치에 배포 / 실행 했습니까? 개인 인증서는 전화기에 배포하기에 좋습니다.
Morrison Chang

답변:


8

편집 : 이것은 3 월 24 일에 릴리스 된 iOS 13.4에서 수정되었습니다.

Flutter와 관련이없는 iOS 13.3.1 회귀입니다. 새로운 Xcode 프로젝트를 만들고, 프레임 워크 대상을 추가하고, 개인 팀 프로비저닝 프로파일을 선택하여 Flutter 또는 CocoaPods 코드없이 충돌을 재현 할 수있었습니다.

GitHub 문제 https://github.com/flutter/flutter/issues/49504#issuecomment-581554697을 참조하십시오 .

버그는 App Store에서 이미 서명되고 배포 된 개발자 계정 팀 프로비저닝 프로파일 또는 앱에 영향을 미치지 않아야합니다.

불행히도 유일한 해결 방법은 이것이 해결 될 때까지 개발 장치를 13.3.1로 업그레이드하지 않는 것입니다.


대단히 감사합니다! 나는 이것이 최대한 빨리 해결되기를 바랍니다!
Ferran Maylinch

이것이 iOS 수준의 문제입니까? iOS 13.3.1 버전의 iPhone에서이 문제가 발생했습니다
Adromil Balais

예, 이것은 iOS 13.3.1 이상에서 Personal Team 프로비저닝 프로파일 서명 프레임 워크를 거부하는 문제입니다. Flutter에만 국한된 것은 아닙니다. GitHub 주석의 링크는 다른 프로젝트를 참조하고 있으며 Flutter를 포함하지 않고 Xcode의 새로운 프레임 워크로 쉽게 재현 할 수있었습니다.
Jenn

방금 iOS 13.4로 시도했지만 작동합니다! Xcode 및 IntelliJ IDEA의 실제 iPhone에서 Flutter 앱을 실행할 수 있습니다. 명령 줄에서도 작동한다고 생각합니다.
Ferran Maylinch

4

내가 볼 수있는 한 그것은 iOS 13.3.1의 Flutter 호환성 문제입니다. 필자의 경우 내 앱은 iOS 13.3이 설치된 iPhone XR에서 완벽하게 실행되지만 iOS 13.3.1이 설치된 다른 iPhone XR에서 시작하면 작동이 중단됩니다. 카메라 앱이므로 시뮬레이터에서 테스트 할 수 없지만 실제 Android 기기와 Android 에뮬레이터 모두에서 작동합니다.


네 말이 맞아 13.3의 iPad로 테스트했습니다. 내 전화가 13.3.1에서 작동하지 않습니다. 베타 2로 업데이트하고 시도해보십시오 :-)
Ken Hui

13.3.1 공개 베타 2도 같은 문제가 있습니다.
켄 후이

3
  1. xcode 라이센스 계약에 동의 했습니까? 그렇지 않은 경우 시도하십시오 sudo xcodebuild -license.
  2. 포드가 업데이트 되었습니까? 그렇지 않은 경우 터미널의 flutter 프로젝트에서 ios 폴더로 이동 pod install한 다음pod update

그래도 문제가 해결되지 않으면 flutter 프로젝트의 ios 폴더로 이동하여 Runner.xcworkspace를 두 번 탭하여 엽니 다. 다음과 같아야합니다.

여기에 이미지 설명을 입력하십시오

xcode가 열리면 왼쪽 상단의 Runner를 클릭하십시오.

여기에 이미지 설명을 입력하십시오

그런 다음 서명 및 기능으로 이동하여 "팀"드롭 다운에서 필드를 선택하십시오. 존재하지 않는 경우 계정을 만듭니다.

여기에 이미지 설명을 입력하십시오

그런 다음 "번들 식별자"에서 앱의 번들 이름이 표시되어야합니다. 끝에 .app를 추가하십시오. 예를 들어 "com.example.yourapp"인 경우 "com.example.yourapp.app"로 만들고 enter를 누릅니다.

선택한 기기에서 앱을 실행하려면 왼쪽 상단의 재생 버튼을 누릅니다.


포드 파일이 없습니다. 이 게시물을보고 있습니다 stackoverflow.com/questions/51599686/…
Ferran Maylinch

컴퓨터에 cocoapod를 설치하고 ios 디렉토리에서 pod 명령을 실행하십시오.
Yudhishthir Singh

나는 코코아 포드가 있습니다. 어떤 포드 명령을 사용해야합니까?
Ferran Maylinch

포드 설치 및 포드 업데이트
Yudhishthir Singh

내 답변을 수정했습니다.보세요.
Yudhishthir Singh

1

한 단계 씩 따라갈 수 있습니까

flutter channel master
flutter upgrade
flutter clean
flutter build ios

나는 그것을 시도했다. 베타 채널에도 있습니다.
Ferran Maylinch

오류는 서명 기능과 관련이 있으며, flutter 브랜치는 이와 관련이 없습니다.
Yudhishthir Singh

1

이 게시물은 내가이 문제로 어려움을 겪고 있고 수정없이 한동안 있었기 때문에 이것을 작성했기 때문에 아닙니다.

내가 원하는 것은 여기 OP 및 다른 회원에게 자세한 내용을 제공하는 것입니다. 그래서 나는 OP가 말한대로 모든 것을 가지고 있습니다.

이것이 내가 시도한 것입니다.

  1. Podfile은 (시뮬레이터 등에서 실행 한 후에도) 생성되지 않으므로 Flutter Github의 flutter 예제 앱에서 하나를 포함 시키려고했습니다.

    • iOS 디렉토리 지우기
    • 포드 파일 추가
    • 포드 업데이트를 실행했습니다.
    • 수정 된 경고 (Pod 디버그 및 릴리스 구성을 Xcode에 제공)
    • FLUTTER_ROOT를 사용자 정의 설정에 추가하고 (없음) Xcode-backend.sh 오류가 발생했습니다 (정확히 기억하지 마십시오, 죄송합니다)
    • 세워짐

그래서 다음 단계는 생산 : 시뮬레이터에 오류가 발생했습니다. 물리적 장치에 포드가없는 것과 동일한 서명 오류

  • Keychain Access에서 모든 인증서를 삭제하고 Xcode를 통해 복원했습니다.

    결과 : 변경 사항 없음

  • Xcode, 포드 및 관련 설정을 제거했습니다. 인증서를 제거했습니다. 재부팅 후 새로 복원 (새로 설치)

    결과 : 다시, 포드로 빌드하거나 동일한 오류 를 제공하지 않고 빌드

  • Flutter를 개발자 채널 (1.14.1)로 업그레이드하고 다음을 사용하여 프로젝트를 재생성했습니다. flutter create .

    Reran 빌드. 포드가 있거나없는. 여전히 같은

  • 또한 모든 대상 (Pod 포함)에서 Apple Developer에서 iOS Developer로 서명을 변경하려고했습니다.

    Pods-Runner에 서명을 시도했기 때문에 약간의 오류가 발생했습니다 (약간의 희망이있었습니다). 그러나 전반적으로 새로운 것은 없습니다.

  • iOS 13.3.1 Beta에서 장치를 실행하면서 Target을 13.2로 업그레이드했습니다 (지금 최대 값이 있습니까?).

    아니

  • macOS 빌드를 활성화하고 Mac 앱을 빌드했습니다.

    그것은 정해진대로 실행되며 모든 것이 괜찮습니다.

요약하면 :

  • 이 문제는 Pod / Non-Pod 프로젝트에 의존하지 않습니다.
  • 최신 안정적인 flutter와 최신 개발자간에이 문제와 관련하여 변경된 사항이 없습니다 (사후 작성).
  • 이 버그는 Xcode 재설치로 해결되지 않으며 키 체인 인증서와 관련이 없습니다.
  • 실제 iOS 기기 (필자의 경우 iPhone X) 전용으로 빌드 할 때만 문제가 발생합니다. 시뮬레이터 (팟없이)가 잘 작동합니다.

Btw. Catalina 10.15.3 및 Xcode 11.3.1이 설치된 MacBook Pro 13에서 모든 것이 실행되었습니다.

모든 실행에는 -v 플래그가 있었으며 빌드 중에 로그에서 의심스러운 것이 없습니다.

다시. 이 게시물을 잘못 게시 한 경우 죄송하지만이 게시물이 꽤 길어서이 문제를 복제하거나 OP 수정을 제안하고 싶지 않습니다.


이 답변에 감사드립니다. 솔루션이 아니지만 매우 유용합니다. 분명히, Flutter에 문제가 있습니다. 구글이 애플이 정확히 무엇을 기대하는지 알지 못하거나 애플이 Flutter의 원활한 작동에 관심이없는 것 같다 ... :)
Ferran Maylinch

그건 그렇고, 어제 Mojave와 함께 다른 Mac에서 Flutter를 사용해 보았습니다 (광산에는 Catalina가 있음). 그리고 같은 오류가 발생했습니다.
Ferran Maylinch

아마도 이것은 CodeSign 또는 Flutter 자체와 관련된 것입니다. 우리는 문제 열립니다 github.com/flutter/flutter/issues을
에민 Guliev

예. 좋은 생각. 당신이 그것을 할 경우 알려주십시오, 또는 내가 직접 할 수 있습니다.
Ferran Maylinch

0

를 통해 안정적인 채널로 전환하고 flutter channel stable실행 flutter upgrade한 다음 앱 프로젝트로 이동하여 실행하십시오.flutter run


불행히도 같은 오류가 발생합니다. 안정적인 채널로 변경 한 후에도 새로운 플러터 앱을 만들었습니다. 나는 지금 안정적인 채널에 있음을 보여주기 위해 내 질문을 업데이트했습니다.
Ferran Maylinch

또한 flutter run의 출력을 추가했습니다.
Ferran Maylinch

0

앱을 디버그 모드로 실행하기 위해 Apple 유료 계정이 필요하지 않습니다. 1) 해당 프로젝트의 xCode를 열고 장치를 선택하고 실행하십시오.

해당 프로젝트의 XCode를 열고 FLUTTER_ROOT 경로가 올바르므로 빌드 설정을 확인하십시오 (플러터 루트가 없으면 경로를 제공하십시오).


나는 맞다 FLUTTER_ROOT. 그것은 문제가 아닙니다 ... :(
Ferran Maylinch


0

당신은 당신이 원하는 출력 줄 수도이 링크를 확인 했 https://github.com/flutter/flutter/issues/16507을 . 그것이 작동하는 것이 서명 문제 일 수 있는지 알려주십시오.이 게시물은 무엇이 잘못되었는지에 대한 아이디어를 줄 것입니다. 감사


Podfile이 없으므로 이것을 확인하고 있습니다 : stackoverflow.com/questions/51599686/… 어쨌든, 내가 필요한 Podfile을 모르겠습니다. 하나 만들었지 만 여전히 같은 오류가 발생합니다. 어쩌면 Podfile이 필요하지 않거나 어쨌든 문제는 다른 것입니다.
Ferran Maylinch

0

좋아, 대답을 만들 순간이 있습니다.

근거로 Subaharan VEL 대답 , 질문 : 떨림 Podfile와 포드 폴더가 IOS 디렉토리에 생성되지 아이폰 OS 시뮬레이터 구축하는 것을 제안 대답 잘못된 장소에 podfile를 만들 수 있습니다 (아이폰 OS 디렉토리에 자동으로 직접 작성해야합니다 그래서 가능성이 보인다 귀하의 Podfile. 그것을 찾거나 전체 ios 디렉토리를 제거하고 프로젝트를 정리하고 다시 만드십시오. 또한 Flutter 플러그인을 추가하기 전에 iOS 포드를 추가하기 위해 Podfile을 작성하여 플러그인 포드를 연결하지 마십시오. 기존 Podfile .

행운을 빕니다.


Podfile어디에도 없습니다 . 나는 달리고 find . -name Podfile아무것도 얻지 못한다. ios디렉토리를 제거 했지만 이제 어떻게 다시 만들 수 있습니까? 내가 실행 flutter build ios하면 오류가 발생 Application not configured for iOS합니다.
Ferran Maylinch

@ Ferran Maylinch Surbahan Vel (첫 번째 링크)에서 모든 단계를 반복하십시오-그는 ios 디렉토리를 제거하고 프로젝트를 정리 한 후에 다시 작성했습니다. 필요한 경우 수동으로 podfile을 추가하십시오 ( stackoverflow.com/a/53492243/7183675 에서 불필요한 포드를 제거 하고이 답변 아래 두 번째 주석도 확인하십시오). 최후의 수단으로-Flutter가 Podfile을 자동으로 생성하도록 pubspec에 패키지를 하나 이상 추가하면 도움이 될 수 있습니다. 이 패키지가 실제로 사용되지 않더라도
Adam Tucholski

0

이상적인 해결책은 아니지만 다음이 나를 위해 일했습니다.

  1. 기기를 iOS 13.4 베타 로 업그레이드하십시오 .
  2. 수행 플러터 실행
  3. 빌드가 성공해야합니다.
  4. 그것은 던질 것이다 "엑스 코드 버전은 iOS 버전에 대한 너무 나이가 될 수있다" 오류입니다.
  5. 응용 프로그램이 장치에 설치됩니다. 참고 : 프로세스가 종료되면 응용 프로그램이 자동으로 시작되지 않습니다.
  6. 기기에서 설치된 앱 아이콘을 클릭하여 앱을 시작합니다.

그러나 오류가 발생한 후 프로세스가 종료되므로 디버그 창에 아무것도 표시되지 않습니다. 이상적인 솔루션은 아니지만 다음 Xcode 업데이트를 얻을 때까지 해결 방법입니다. 

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.