Xcode 컴파일 패키지 Flutter 프로젝트 문제 요약

카탈로그
  • 1. 컴파일 운행 과정에 문제가 발생했다
  • 2. 포장 과정에 문제가 있다
  • 셋째, App Store 랙 마운트에서 발생한 문제
  • 1. 컴파일 운행 과정에 문제가 있다
    1. 컨트롤러 출력의 오류 정보에서 일부 방법이 존재하지 않거나 이름이 없는 파라미터가 있거나 일부 변수, 파라미터가 존재하지 않는 것을 발견할 수 있다.
    해결 방법: Flutter 프로젝트에서pubspec.이 ml는 문제가 발생한 플러그인의 버전 번호를 지정한 버전으로 전환합니다. 즉 ^ 기호를 제거합니다. 일부 플러그인은 최신으로 사용하면 호환되지 않는 문제가 발생할 수 있으며, Flutter 버전이 개발 프로젝트에 사용된 버전과 일치하는지 확인하십시오.
    2、[VERBOSE-2:platform_view_layer.cc(20)] Trying to embed a platform view but the PrerollContext does not support embedding
    해결 방법: 프로젝트 디렉토리의 IOS에서 Runner를 실행하여 Info를 수정합니다.plist
    <key>io.flutter.embedded_views_previewkey>
    <true/>
    

    3、linked and embedded framework ‘App.framework’ was built for iOS Simulator linked and embedded framework ‘Flutter.framework’ was built for iOS Simulator
    해결 방법: a, 수정 targets=> Build Setting=>Validate Workspace는 NOb, App. 삭제framework와 Flutter.framework 이후 다시 컴파일 실행
    4, 실행 프로세스 콘솔 보고서 0x00000010f8854d5 - [JPushPlugin setup:result:] + 437 6 Runner 0x000000010f8 오류
    해결 방법: 프로젝트에서 JPush 플러그인과 관련 코드를 주석하면 됩니다
    5、warning: The iOS deployment target ‘IPHONEOS_DEPLOYMENT_TARGET’ is set to 8.0, but the range of supported deployment target versions is 9.0 to 14.0.99. (in target ‘flutter_local_notifications’ from project ‘Pods’)
    해결 방법: a, 프로젝트 디렉토리에 있는 IOS, 아래 Podfile 파일 수정
    post_install do |installer| 
    	installer.pods_project.targets.each do |target| 
    		target.build_configurations.each do |config| 
    			if config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'].to_f < 10.0 
    				config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'
    			end 
    		end
    	end
    end
    

    b. 상술한 방법은 아직 완전히 해결되지 않을 때가 있다. Xcode에서 수정을 해야 한다. 왼쪽 항목 표시줄에서 8.0을 검색하고 관련 파라미터를 10.0으로 설정해야 한다.
    6、The linked library ‘xxxx.a/Framework’ is missing one or more architectures required by this target: armv7.
    해결 방법: Target=>Build Settings=>Excluded Architectures에 다음 코드 추가
    EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_simulator__NATIVE_ARCH_64_BIT_x86_64=arm64 arm64e armv7 armv7s armv6 armv8 EXCLUDED_ARCHS=$(inherited) $(EXCLUDED_ARCHS__EFFECTIVE_PLATFORM_SUFFIX_$(EFFECTIVE_PLATFORM_SUFFIX)__NATIVE_ARCH_64_BIT_$(NATIVE_ARCH_64_BIT))
    

    7、Unable to install “…” Domain: com.apple.dt.MobileDeviceErrorDomain Code
    해결 방법: 인증서를 다시 설정한 다음 컴파일하여 실행합니다
    2. 포장 과정에 문제가 있다
    1、ld: bitcode bundle could not be generated because …
    해결 방법: a, 수정 targets=> Build Setting=>Enable Bitcode는 NOb로 터미널에서 프로젝트 루트 디렉터리에 들어가고 flutter clean, flutter build ios를 실행하면 다시 포장할 수 있습니다
    2、ERROR ITMS-90189: "Redundant Binary Upload. You’ve already uploaded a build with build number ‘1’ for…
    해결 방법: targets=>General=>Identity에서 대응하는version 및 Build를 수정하여 기존의 기초 위에서 추가하면 됩니다.
    3. App Store의 출시 문제
    1. App Store 타임스 오류 ERROR ITMS-90087: "Unsupported Architectures. The executable for.../Frameworks/Flutter. framework contains unsupported architectures"[x86 64]"해결 방법:
    targets=>Build Phases에서 왼쪽 상단에 New Run Script Phase를 누르면 셸에 추가됩니다(참고: 네 번째 줄에 있는 Flutter.framework는 오류 메시지에 있는 Flutter.framework입니다)
    APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
    # This script loops through the frameworks embedded in the application and
    # removes unused architectures.
    find "$APP_PATH" -name 'Flutter.framework' -type d | while read -r FRAMEWORK
    do
    FRAMEWORK_EXECUTABLE_NAME=$(defaults read    "$FRAMEWORK/Info.plist" CFBundleExecutable)
    FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTAB LE_NAME"
    echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
     
    EXTRACTED_ARCHS=() 
    for ARCH in $ARCHS
    do
    echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
    lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o       "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
    EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
    done
     
    echo "Merging extracted architectures: ${ARCHS}"
    lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create   "${EXTRACTED_ARCHS[@]}"
    rm "${EXTRACTED_ARCHS[@]}"
     
    echo "Replacing original executable with thinned version"
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    mv "$FRAMEWORK_EXECUTABLE_PATH-merged"    "$FRAMEWORK_EXECUTABLE_PATH" 
    done	
    

    2. Application Loader를 사용하여 ipa를 App Store에 업로드한 후 메일박스에 오류 메시지가 반환됩니다.
    ITMS-90683: Missing Purpose String in Info.plist - Your app’s code references one or more APIs that access sensitive user data. The app’s Info.plist file should contain a NSContactsUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you’re using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn’t contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy). ITMS-90683: Missing Purpose String in Info.plist - Your app’s code references one or more APIs that access sensitive user data. The app’s Info.plist file should contain a NSCalendarsUsageDescription key with a user-facing purpose string explaining clearly and completely why your app needs the data. Starting Spring 2019, all apps submitted to the App Store that access user data are required to include a purpose string. If you’re using external libraries or SDKs, they may reference APIs that require a purpose string. While your app might not use these APIs, a purpose string is still required. You can contact the developer of the library or SDK and request they release a version of their code that doesn’t contain the APIs. Learn more (https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy). …
    해결 방법: 프로젝트 디렉토리에 있는 ios=> Runner로 이동하여 Info. 수정plist, 안에 키 값을 추가하고 오류 메시지가 필요하면 추가하고 모두 추가해도 됩니다.
    <key>NSAppleMusicUsageDescription</key>
    <string>     app       </string>
    <key>NSBluetoothPeripheralUsageDescription</key>
    <string>     app    </string>
    <key>NSCalendarsUsageDescription</key>
    <string>     app    </string>
    <key>NSCameraUsageDescription</key>
    <string>     app    </string>
    <key>NSContactsUsageDescription</key>
    <string>     app     </string>
    <key>NSHealthShareUsageDescription</key>
    <string>     app      </string>
    <key>NSHealthUpdateUsageDescription</key>
    <string>     app       </string>
    <key>NSLocationAlwaysUsageDescription</key>
    <string>     app    </string>
    <key>NSLocationUsageDescription</key>
    <string>     app    </string>
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>     app         </string>
    <key>NSMicrophoneUsageDescription</key>
    <string>     app     </string>
    <key>NSMotionUsageDescription</key>
    <string>     app       </string>
    <key>NSPhotoLibraryUsageDescription</key>
    <string>     app    </string>
    <key>NSRemindersUsageDescription</key>
    <string>     app      </string>
    <key>NSSpeechRecognitionUsageDescription</key>
    <string>     app      </string>
    

    문제가 있으면 함께 교류하고 토론하는 것을 환영합니다.

    좋은 웹페이지 즐겨찾기