如果您愿意在本地修改 fastlane sigh 的一行代码,我找到了一种解决方法。
首先你需要找到 fastlane 的安装位置。对我 (macOS) 来说,它安装在这里:~/.gem/gems/fastlane-2.206.2。您可能在项目文件夹$projectRoot/vendor/bundle/ruby/2.6.0/gems/fastlane-2.206.2 中安装了 fastlane。
接下来,您将在sigh 工具中修改一个文件。使用文本编辑器打开文件:vim ~/.gem/gems/fastlane-2.206.2/sigh/lib/sigh/runner.rb。
搜索device_classes = 。对我来说,这是在第 272 行附近:
device_classes = case Sigh.config[:platform].to_s
when 'ios'
[
Spaceship::ConnectAPI::Device::DeviceClass::APPLE_WATCH,
Spaceship::ConnectAPI::Device::DeviceClass::IPAD,
Spaceship::ConnectAPI::Device::DeviceClass::IPHONE,
Spaceship::ConnectAPI::Device::DeviceClass::IPOD
]
when 'tvos'
[Spaceship::ConnectAPI::Device::DeviceClass::APPLE_TV]
when 'macos', 'catalyst'
[Spaceship::ConnectAPI::Device::DeviceClass::MAC]
end
在when 'ios' 的情况下,我们将附加一行:Spaceship::ConnectAPI::Device::DeviceClass::MAC。它看起来像这样:
device_classes = case Sigh.config[:platform].to_s
when 'ios'
[
Spaceship::ConnectAPI::Device::DeviceClass::APPLE_WATCH,
Spaceship::ConnectAPI::Device::DeviceClass::IPAD,
Spaceship::ConnectAPI::Device::DeviceClass::IPHONE,
Spaceship::ConnectAPI::Device::DeviceClass::IPOD,
Spaceship::ConnectAPI::Device::DeviceClass::MAC
]
when 'tvos'
[Spaceship::ConnectAPI::Device::DeviceClass::APPLE_TV]
when 'macos', 'catalyst'
[Spaceship::ConnectAPI::Device::DeviceClass::MAC]
end
保存并退出。
重新运行 fastlane match 以像往常一样重新生成您的证书。
在 developer.apple.com 上检查您的新配置文件。进入编辑模式,向下滚动到设备列表,查看它是否包含所有 iOS 和 macOS 设备。
最后一件事,如果你仍然有麻烦。 (仍在编辑您的配置文件)确保选中“包括 mac 设备”开关。
我不确定这是否真的有用,因为匹配会重新生成配置文件,但我想我会提到它。也许你们中的一个人可以回复一个答案。
请注意,每次将更新安装到 fastlane 时,您都需要重复此修改。