zoukankan      html  css  js  c++  java
  • Xcode 升级到10.x 之后 ionic cordova build ios 失败的解决

    问题描述

    Xcode 升级到10.0 或10.1 之后再次通过命令行cordova build ios 失败,没有错误提示,运行到‘SWIFT_OBJC_BRIDGING_HEADER’后直接退出build命令。

    错误提示

    Build settings from configuration file '/***/****/*****/platforms/ios/cordova/build-debug.xcconfig':
        CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES = YES
        CODE_SIGN_ENTITLEMENTS = $(PROJECT_DIR)/$(PROJECT_NAME)/Entitlements-$(CONFIGURATION).plist
        CODE_SIGN_IDENTITY = iPhone Developer
        ENABLE_BITCODE = NO
        GCC_PREPROCESSOR_DEFINITIONS = DEBUG=1
        HEADER_SEARCH_PATHS = "$(TARGET_BUILD_DIR)/usr/local/lib/include" "$(OBJROOT)/UninstalledProducts/include" "$(OBJROOT)/UninstalledProducts/$(PLATFORM_NAME)/include" "$(BUILT_PRODUCTS_DIR)"
        OTHER_LDFLAGS = -ObjC
        SWIFT_OBJC_BRIDGING_HEADER = $(PROJECT_DIR)/$(PROJECT_NAME)/Bridging-Header.h
    

    问题截图

    原因

    Xcode 10默认使用新的构建系统(以前在Xcode 9中选择加入)。cordova-ios项目结构与这个新的构建系统不兼容并导致失败。
    Cordva官方并不声称支持Xcode 10。
    目前最好的解决方法是选择退出新的构建系统:

    • 命令行构建项目的方式:指定 --buildFlag="-UseModernBuildSystem=0":
    ionic cordova run ios -- --buildFlag="-UseModernBuildSystem=0"
    ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
    
    • 如果使用build.json配置文件构建:
     "ios": {
        "release": {
          "buildFlag": [
            "-UseModernBuildSystem=0"
          ]
        }
      }
    
    • 如果要在Xcode中打开项目,则需要将Workspace Settings中的构建系统更改为“Legacy Build System”:

    (解决办法来自github)[https://github.com/apache/cordova-ios/issues/407]

  • 相关阅读:
    天明闹钟开发过程3
    降低 TCP ACK 延迟造成的网络性能损失
    TCP SYN,ACK 详解
    TCP的SEQ和ACK的生成
    python之线程(threading)
    python之进程(multiprocess)
    python之发送邮件~
    python之函数参数问题(参数为可变对象)
    python之斐波那契数列递归推导在性能方面的反思
    linux中一些简便的命令之tac/comm
  • 原文地址:https://www.cnblogs.com/hzyy/p/10006158.html
Copyright © 2011-2022 走看看