mirror of
https://github.com/DefinedNet/mobile_nebula.git
synced 2025-09-06 03:06:04 +00:00
According to https://github.com/actions/runner-images#available-images, currently `macos-latest` is pointing to macos 14 images, which come bundled with xcode 15. Apple now requires xcode 16, which we'll get by updating to `macos-15`. This also bumps the version github uses to `16.3` (by default it will stay at 16.0), and adds a note to the README that ideally we should all be using the same version of xcode that is used to build the app that is sent to Apple. We could get fancier with this, but I don't think it's really necessary right now. See https://www.polpiella.dev/managing-xcode-installs-using-fastlane for other approaches.
89 lines
2.7 KiB
Ruby
89 lines
2.7 KiB
Ruby
# This file contains the fastlane.tools configuration
|
|
# You can find the documentation at https://docs.fastlane.tools
|
|
#
|
|
# For a list of all available actions, check out
|
|
#
|
|
# https://docs.fastlane.tools/actions
|
|
#
|
|
# For a list of all available plugins, check out
|
|
#
|
|
# https://docs.fastlane.tools/plugins/available-plugins
|
|
#
|
|
|
|
# Uncomment the line if you want fastlane to automatically update itself
|
|
# update_fastlane
|
|
|
|
default_platform(:ios)
|
|
|
|
platform :ios do
|
|
desc "Push a new beta build to TestFlight"
|
|
|
|
before_all do
|
|
xcode_select("/Applications/Xcode_16.3.0.app")
|
|
end
|
|
|
|
|
|
lane :build do
|
|
# Do some things like setting up a temporary keystore to host secrets in CI
|
|
setup_ci
|
|
|
|
# # Authenticate with Apple app store connect
|
|
# app_store_connect_api_key
|
|
|
|
# Change signing behavior to work in CI
|
|
update_code_signing_settings(
|
|
# Automatic signing seems to be a good thing to have on in dev but will not work in CI
|
|
use_automatic_signing: false,
|
|
# The default value for this is iOS Development which is not appropriate for release
|
|
code_sign_identity: "Apple Distribution",
|
|
)
|
|
|
|
# Find our signing certs and profiles, these come from a private repository and managed by `fastlane match`
|
|
match(type: 'appstore', app_identifier: ["net.defined.mobileNebula","net.defined.mobileNebula.NebulaNetworkExtension"], readonly: true)
|
|
|
|
# Update our main program to have the correct provisioning profile from Apple
|
|
update_project_provisioning(
|
|
xcodeproj: "Runner.xcodeproj",
|
|
target_filter: "Runner",
|
|
# This comes from match() above
|
|
profile:ENV["sigh_net.defined.mobileNebula_appstore_profile-path"],
|
|
build_configuration: "Release"
|
|
)
|
|
|
|
# Update our network extension to have the correct provisioning profile from Apple
|
|
update_project_provisioning(
|
|
xcodeproj: "Runner.xcodeproj",
|
|
target_filter: "NebulaNetworkExtension",
|
|
# This comes from match() above
|
|
profile:ENV["sigh_net.defined.mobileNebula.NebulaNetworkExtension_appstore_profile-path"],
|
|
build_configuration: "Release"
|
|
)
|
|
|
|
increment_build_number(
|
|
xcodeproj: "Runner.xcodeproj",
|
|
build_number: ENV['BUILD_NUMBER']
|
|
)
|
|
|
|
increment_version_number(
|
|
xcodeproj: "Runner.xcodeproj",
|
|
version_number: ENV['BUILD_NAME']
|
|
)
|
|
|
|
build_app(
|
|
output_name: "MobileNebula.ipa",
|
|
workspace: "Runner.xcworkspace",
|
|
scheme: "Runner",
|
|
export_method: "app-store",
|
|
)
|
|
end
|
|
|
|
lane :release do
|
|
# Do some things like setting up a temporary keystore to host secrets in CI
|
|
setup_ci
|
|
|
|
# Authenticate with Apple app store connect
|
|
app_store_connect_api_key
|
|
|
|
upload_to_testflight(skip_waiting_for_build_processing: true)
|
|
end
|
|
end
|