美文网首页Flutter学习IOSflutter
【Android开发学Flutter】Xcode编译问题汇总

【Android开发学Flutter】Xcode编译问题汇总

作者: JairusTse | 来源:发表于2019-09-26 10:08 被阅读0次

    Xcode编译经常遇到各种问题,处理起来费时费力,挺打击学习积极性的。记录下这些问题,方便自己也帮助后来人。

    1、The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

    编译的时候遇到:

    Showing All Messages
    :-1: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.

    网上有很多解决方法,我是用这个方法解决的:

    移除cocopods后重新安装
    1、打开终端,运行sudo gem install cocoapods-deintegrate安装快速解除项目cocopods依赖的库
    2、安装成功后,cd到你项目的更目录运行pod deintegrate解除项目cocopods依赖
    3、运行pod install,重新安装cocopods

    2、Command PhaseScriptExecution failed with a nonzero exit code

    编译的时候遇到:

    /bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: No such file or directory
    Command PhaseScriptExecution failed with a nonzero exit code

    解决办法:
    Project -> User-Defined -> FLUTTER_ROOT 改成本地 flutter SDK路径

    image.png

    感谢 issues 上的小哥,给你个🚀

    还有种情况, Project -> User-Defined 并没有 FLUTTER_ROOT 选项:

    在项目目录下执行 flutter run 可以正常运行到手机,但是在Xcode build 还是有问题。

    这时需要手动添加 FLUTTER_ROOTUser-Defined

    添加完变成了灰色,不知道为什么

    添加之后:


    image.png

    就可以正常在Xcode build 安装到手机了。

    3、could not find included file 'Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig' in search paths (in target 'Runner')

    Showing All Messages
    :-1: /Users/项目路径/ios/Flutter/Debug.xcconfig:1: could not find included file 'Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig' in search paths (in target 'Runner')

    flutter build ios 后出现:

    Error output from CocoaPods:
    ↳
             Cloning into '/var/folders/tn/1d782flx6z11fczzvkj0cbkh0000gn/T/d20190923-87862-53h87v'...
             fatal: unable to access 'https://chromium.googlesource.com/webm/libwebp/': Failed to connect to chromium.googlesource.com port 443: Operation timed out
    
        [!] Automatically assigning platform `ios` with version `8.0` on target `Runner` because no platform was specified. Please specify a platform for this target in your
        Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
    
    

    pod install 后出现:

    Failed to connect to chromium.googlesource.com port 443: Operation timed out
    

    解决办法:
    这是因为terminal没有走代理的流量,
    使用git config --global http.proxy "localhost:port",设置代理。
    port是端口号,根据不同的vpn不一样,我的端口是10080。
    执行 git config --global http.proxy "localhost:10080"

    4、Xcode build succeed,启动空白,出现下面信息:

    2019-09-23 16:50:13.088675+0800 Runner[1474:642130] [VERBOSE-2:dart_vm_data.cc(19)] VM snapshot invalid and could not be inferred from settings.
    2019-09-23 16:50:13.089348+0800 Runner[1474:642130] [VERBOSE-2:dart_vm.cc(245)] Could not setup VM data to bootstrap the VM from.
    2019-09-23 16:50:13.089495+0800 Runner[1474:642130] [VERBOSE-2:dart_vm_lifecycle.cc(89)] Could not create Dart VM instance.
    2019-09-23 16:50:13.090369+0800 Runner[1474:642130] [VERBOSE-3:shell.cc(212)] Check failed: vm. Must be able to initialize the VM.
    (lldb)

    5、 CocoaPods did not set the base configuration of your project because your project already has a custom config set.

    Xcode build 的时候出现:

    [!] CocoaPods did not set the base configuration of your project because your project already has a custom config set. In order for CocoaPods integration to work at all, please either set the base configurations of the target Runner to Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig or include the Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig in your build configuration (Flutter/Release.xcconfig).

    image.png
    6、 Automatically assigning platform ios with version 8.0 on target Runner because no platform was specified

    [!] Automatically assigning platform ios with version 8.0 on target Runner because no platform was specified. Please specify a platform for this target in your Podfile. See https://guides.cocoapods.org/syntax/podfile.html#platform.

    解决办法:打开 ios/Podflie 文件:

    # Using a CDN with CocoaPods 1.7.2 or later can save a lot of time on pod installation, but it's experimental rather than the default.
    # source 'https://cdn.cocoapods.org/'
    
    # Uncomment this line to define a global platform for your project
    # platform :ios, '9.0'
    platform :ios, '8.0'
    
    
    7、打包时遇到:Failed to verify bitcode in Flutter.framework/Flutter:error: Bundle only contains bitcode-marker xxx

    Failed to verify bitcode in Flutter.framework/Flutter:
    error: Bundle only contains bitcode-marker /var/folders/tn/1d782flx6z11fczzvkj0cbkh0000gn/T/IDEDistributionOptionThinning.~~~yLNftH/Payload/Runner.app/Frameworks/Flutter.framework/Flutter (armv7)

    image.png

    关于 bitcode的问题,我检查了下用到的第三方SDK,应该是百度地图的问题,我引入了个第三方插件(吐槽下没官方插件),百度地图有支持和不支持bitcode的两个SDK,我取消这个插件就没有报这个错了,奇怪的是,再次引入同一个插件,也可以正常打包,所以说这个问题还没有完全解决。
    大家可以试下这个处理方法:

    image.png

    TARGETS -> Build Seettingsarm,试一下把其他删除,只留下armv7跟armv7s或者只留下armv7

    8、error: linker command failed with exit code 1 (use -v to see invocation)

    ld: framework not found App
    clang: error: linker command failed with exit code 1 (use -v to see invocation)

    解决办法:
    https://www.jianshu.com/p/201df7e9a52f

    我是clean Xcode之后就可以了

    9、Runner has conflicting provisioning settings. Runner is automatically signed, but code signing identity iPhone Distribution

    Showing All Messages
    :-1: Runner has conflicting provisioning settings. Runner is automatically signed, but code signing identity iPhone Distribution: (开发者账号) has been manually specified. Set the code signing identity value to "iPhone Developer" in the build settings editor, or switch to manual signing in the project editor. (in target 'Runner')

    解决办法:
    用的是P12证书,改成手动签名:


    image.png

    相关文章

      网友评论

        本文标题:【Android开发学Flutter】Xcode编译问题汇总

        本文链接:https://www.haomeiwen.com/subject/vcrdyctx.html