• 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]

  • 相关阅读:
    struts2乱码
    修改maven的war包生成路径
    cookie的坑
    linux jps 命令
    (转)如何使VMware ip与本机ip处于同一网段
    springboot + swagger2 学习笔记
    can not find java.util.map java.lang.Double问题
    为什么不写 @RequestParam 也能拿到参数?
    乱码问题
    PostMan的使用注意事项
  • 原文地址:https://www.cnblogs.com/hzyy/p/10006158.html
Copyright © 2020-2023  润新知