快车道,调用多平台

Gaz*_*kus 6 ruby fastlane

我有一个 React Native 项目。我能够像这样构建 iOS 和 Android 版本:

fastlane android build
fastlane ios build
Run Code Online (Sandbox Code Playgroud)

然而,这就是我想做的,所以 iOS 和 Android 都构建了。

fastlane all build
Run Code Online (Sandbox Code Playgroud)

这是我的 Fastfile 的简化版本:

default_platform(:android)

platform :android do
  desc "Simply build a release apk"
  lane :build do |options|
    gradle(
        project_dir: "android",
        task: "clean assemble",
        build_type: "Release",
    )
  end
end

platform :ios do
  desc "Simply build a release ipa"
  lane :build do |options|
    build_app(workspace: "ios/myproject.xcworkspace")
  end
end
Run Code Online (Sandbox Code Playgroud)

有人告诉我这都是 Ruby 代码,我应该能够做任何我想做的事情。所以,我希望“all”同时调用 Android 和 iOS。但是,我不懂 Ruby,所以非常感谢您的帮助。

Dun*_*ell 2

我发现实现这一目标的唯一方法是完全摆脱平台并创建 3 个独立的通道:

desc 'Build iOS and Android'
lane :build do
  build_android
  build_ios
end

desc 'Compiles the Android project'
lane :build_android do
   ....
end

desc 'Compiles the iOS project'
lane :build_ios do
  ....
end
Run Code Online (Sandbox Code Playgroud)

我知道这违背了拥有平台的目的,但我还没有找到一种更简洁的方法来做到这一点,因为似乎不可能从该区块外部调用平台区块中的车道。