【问题标题】:Building swift package for iOS specifically using Github actions专门使用 Github 操作为 iOS 构建 swift 包
【发布时间】:2021-01-30 07:40:32
【问题描述】:

我有适用于 iOS 应用程序的 swift 包(它需要 UIKit 才能运行)。我不想使用 Github 操作来构建这个包,这就是我的工作流程的样子

name: Swift

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v2
    - uses: YOCKOW/Action-setup-swift@master
      with:
        swift-version: '5.3'
    - name: Build
      run: swift build -v
    - name: Run tests
      run: swift test -v

当我运行这个构建时,我得到了error: no such module 'UIKit'

所以我有两个选择:

  1. 让我的包UIKit独立(其实不知道怎么做)

  2. 将构建配置为专门在 iOS 上运行

我该怎么办?

【问题讨论】:

  • 即使 swift 命令可能在“最新的 macOS”上运行,但这并不一定意味着 UIKit 可用。解决此问题的最简单方法之一是在您的 UIKit 代码周围使用编译器 #if canImport(UIKit) #endif 语句。

标签: swift continuous-integration uikit github-actions swift-package-manager


【解决方案1】:

我们正在使用 xcodebuild 而不是 swift build 从 GitHub Actions 执行特定于平台的 CI。具体例子见https://github.com/firebase/firebase-ios-sdk/blob/master/.github/workflows/spm.ymlhttps://github.com/firebase/firebase-ios-sdk/blob/master/scripts/build.sh#L540

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 2022-06-30
    • 2021-05-18
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 2021-03-17
    相关资源
    最近更新 更多