【问题标题】:ionic 4 ios fails to build due to swift version 3由于 swift 版本 3,ionic 4 ios 无法构建
【发布时间】:2019-08-18 06:47:49
【问题描述】:

升级到 xcode 10.2 后,我的 ionic for ios 项目停止使用以下命令构建

ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"

我尝试升级 cordova-ios@5.0.0 并删除并读取 ios 平台但没有运气。

The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. Supported values are: 4.0, 4.2, 5.0. This setting can be set in the build settings editor.
Code Signing Error: Code signing is required for product type 'Application' in SDK 'iOS 12.2'

** ARCHIVE FAILED **


The following build commands failed:
    Check dependencies
(1 failure)
xcodebuild: Command failed with exit code 65
[ERROR] An error occurred while running subprocess cordova.

        cordova build ios --buildFlag=-UseModernBuildSystem=0 exited with exit code 65.

        Re-running this command with the --verbose flag may provide more information.

【问题讨论】:

  • 所以我尝试使用 Xcode 10.1 将项目从 Swift 3 转换为 Swift 4.2。但是,一些插件坏了。然后我试图修复,但结果是一团糟。所以我现在只是最终使用 Xcode 10.1 进行开发。你可以下载Xcode 10.1 https://developer.apple.com/download/more/
  • Xcode 10.1 无法在装有 iOS 12.2 的 iPhone 上运行应用程序。所以这是一个大问题,现在我们只能在模拟器上运行应用程序。如果有合适的解决方案就好了。
  • @BaoPham 是的 - 但在我的情况下,当用户在他们的 iPad 上升级到 iOS 12.2 时,应用程序仍然无法运行。
  • @P.Brian.Mackey 我认为 ionic 团队已经更新了他们的 Swift 代码。再次检查。
  • @P.Brian.Mackey 你试过安装这个吗? https://www.npmjs.com/package/cordova-plugin-add-swift-support 并将<preference name="UseSwiftLanguageVersion" value="5" /> 添加到config.js?

标签: ios ionic-framework ionic4


【解决方案1】:

我遇到了同样的错误。我首先尝试在 Xcode 构建设置中切换 Swift 语言版本,并很快意识到一些用 Swift 编写的插件坏了。值得庆幸的是,对我来说坏掉的插件是 QR Scanner,它维护得很好,并已针对 Swift 5 进行了更新。

所以我修复它的方法是首先运行以下节点命令来查找和更新过时的节点包。

npm outdated
npm update

然后我发现了过时/损坏的 cordova 插件,删除了它们,然后重新安装了最新版本。使用

cordova plugin list

为确保所有内容都正确更新,请使用插件存储库交叉引用版本号。最后我把它添加到 config.xml

<preference name="UseSwiftLanguageVersion" value="5" />

一切都在运行时成功构建,

ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"

不幸的是,如果您使用的是用 Swift 编写且维护不善的 cordova 插件,那么您就不走运了。如果你有勇气,你可以尝试自己更新插件。

希望这对您有所帮助,并且不需要您恢复 Xcode,从而失去为最新版本的 iO 构建的能力。

【讨论】:

    【解决方案2】:

    您应该按照以下步骤进行-

    1. 在Xcode中打开你的项目,方法是在platforms >> ios >> PROJECT_NAME.xcworkspace中点击workspace文件

    2. 转到构建设置

    3. 现在搜索“Swift 语言版本”

    4. 将版本更改为 4 或 5(根据需要)

    5. 在命令下运行

      Ionic cordova build ios --buildFlag="-UseModernBuildSystem=0"

    【讨论】:

      【解决方案3】:

      只需添加这个插件

      cordova plugin add cordova-plugin-add-swift-support --save
      

      或者如果您已经添加了,那么只需删除此插件并重新添加。

      【讨论】:

        猜你喜欢
        • 2019-12-25
        • 2018-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-03-05
        • 2018-02-20
        • 1970-01-01
        • 2019-02-08
        相关资源
        最近更新 更多