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]

  • 相关阅读:
    结合人工智能的高性能医学:现状、挑战与未来
    2019年人工智能行业25大趋势
    睡眠分期--深度学习算法
    并行技术
    元数据--你有没有注意?
    战略、策略与执行
    机器学习前沿03
    元学习--learn to learn
    机器学习前沿02
    机器学习玩法
  • 原文地址:https://www.cnblogs.com/hzyy/p/10006158.html
Copyright © 2011-2022 走看看