mirror of
https://github.com/yattee/yattee.git
synced 2026-02-20 01:39:46 +00:00
Yattee v2 rewrite
This commit is contained in:
@@ -1,22 +0,0 @@
|
||||
APP_NAME = "Yattee"
|
||||
|
||||
CERTIFICATES_GIT_URL = "git@github.com:developer/yattee-certificates.git"
|
||||
GIT_AUTHORIZATION = "" # For certificates repo, https://github.com/settings/tokens/new (repo scope)
|
||||
FASTLANE_USER = "developer@mail.com" # Apple ID
|
||||
FASTLANE_PASSWORD = "" # Apple ID Password
|
||||
ITC_TEAM_ID = "" # https://sarunw.com/posts/fastlane-find-team-id/
|
||||
TEAM_ID = "" # Developer ID
|
||||
DEVELOPER_NAME = "" # Developer Name (Developer ID)
|
||||
|
||||
# Developer Key
|
||||
DEVELOPER_KEY_ID = ""
|
||||
DEVELOPER_KEY_ISSUER_ID = ""
|
||||
DEVELOPER_KEY_CONTENT = ""
|
||||
|
||||
FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD = "" # Not needed for most users
|
||||
TEMP_KEYCHAIN_USER = "keychain-user"
|
||||
TEMP_KEYCHAIN_PASSWORD = "keychain-password"
|
||||
DEVELOPER_APP_IDENTIFIER = "stream.yattee.app"
|
||||
|
||||
# TestFlight
|
||||
TESTFLIGHT_EXTERNAL_GROUPS=Testers,"Other Testers" # Comma separated list of external groups
|
||||
@@ -1,8 +0,0 @@
|
||||
app_identifier(ENV['DEVELOPER_APP_IDENTIFIER']) # The bundle identifier of your app
|
||||
apple_id(ENV['FASTLANE_USER']) # Your Apple email address
|
||||
|
||||
itc_team_id(ENV['ITC_TEAM_ID']) # App Store Connect Team ID
|
||||
team_id(ENV['TEAM_ID']) # Developer Portal Team ID
|
||||
|
||||
# For more information about the Appfile, see:
|
||||
# https://docs.fastlane.tools/advanced/#appfile
|
||||
@@ -1,276 +0,0 @@
|
||||
# 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
|
||||
|
||||
APP_NAME = ENV['APP_NAME']
|
||||
DEVELOPER_KEY_ID = ENV['DEVELOPER_KEY_ID']
|
||||
DEVELOPER_KEY_ISSUER_ID = ENV['DEVELOPER_KEY_ISSUER_ID']
|
||||
DEVELOPER_KEY_CONTENT = ENV['DEVELOPER_KEY_CONTENT']
|
||||
TEAM_ID = ENV['TEAM_ID']
|
||||
TEMP_KEYCHAIN_USER = ENV['TEMP_KEYCHAIN_USER']
|
||||
TEMP_KEYCHAIN_PASSWORD = ENV['TEMP_KEYCHAIN_PASSWORD']
|
||||
DEVELOPER_APP_IDENTIFIER = ENV['DEVELOPER_APP_IDENTIFIER']
|
||||
GIT_AUTHORIZATION = ENV['GIT_AUTHORIZATION']
|
||||
TESTFLIGHT_EXTERNAL_GROUPS = ENV['TESTFLIGHT_EXTERNAL_GROUPS']
|
||||
|
||||
XCODEPROJ = "#{APP_NAME}.xcodeproj"
|
||||
|
||||
def delete_temp_keychain(name)
|
||||
delete_keychain(
|
||||
name: name
|
||||
) if File.exist? File.expand_path("~/Library/Keychains/#{name}-db")
|
||||
end
|
||||
|
||||
def create_temp_keychain(name, password)
|
||||
create_keychain(
|
||||
name: name,
|
||||
password: password,
|
||||
unlock: false,
|
||||
timeout: 0
|
||||
)
|
||||
end
|
||||
|
||||
def ensure_temp_keychain(name, password)
|
||||
delete_temp_keychain(name)
|
||||
create_temp_keychain(name, password)
|
||||
end
|
||||
|
||||
add_extra_platforms(platforms: [:tvos])
|
||||
|
||||
before_all do
|
||||
update_fastlane
|
||||
end
|
||||
|
||||
desc "Bump build number and commit"
|
||||
lane :bump_build do
|
||||
increment_build_number(xcodeproj: XCODEPROJ)
|
||||
|
||||
commit_version_bump(
|
||||
message: "Bump build number to #{get_build_number(xcodeproj: XCODEPROJ)}",
|
||||
xcodeproj: XCODEPROJ
|
||||
)
|
||||
end
|
||||
|
||||
desc "Bump version number and commit"
|
||||
lane :bump_version do
|
||||
increment_version_number
|
||||
commit_version_bump(
|
||||
message: "Bump version number to #{get_version_number}",
|
||||
xcodeproj: XCODEPROJ
|
||||
)
|
||||
end
|
||||
|
||||
platform :ios do
|
||||
desc "Push a new beta build to TestFlight"
|
||||
lane :beta do
|
||||
ensure_temp_keychain(TEMP_KEYCHAIN_USER, TEMP_KEYCHAIN_PASSWORD)
|
||||
|
||||
api_key = app_store_connect_api_key(
|
||||
key_id: DEVELOPER_KEY_ID,
|
||||
issuer_id: DEVELOPER_KEY_ISSUER_ID,
|
||||
key_content: DEVELOPER_KEY_CONTENT
|
||||
)
|
||||
|
||||
build = get_build_number(xcodeproj: XCODEPROJ)
|
||||
version = get_version_number(
|
||||
xcodeproj: XCODEPROJ,
|
||||
target: "#{APP_NAME} (iOS)"
|
||||
)
|
||||
|
||||
match(
|
||||
type: 'appstore',
|
||||
platform: 'ios',
|
||||
app_identifier: ["#{DEVELOPER_APP_IDENTIFIER}", "#{DEVELOPER_APP_IDENTIFIER}.Open-in-#{APP_NAME}"],
|
||||
git_basic_authorization: Base64.strict_encode64(GIT_AUTHORIZATION),
|
||||
readonly: true,
|
||||
keychain_name: TEMP_KEYCHAIN_USER,
|
||||
keychain_password: TEMP_KEYCHAIN_PASSWORD,
|
||||
api_key: api_key
|
||||
)
|
||||
|
||||
build_app(
|
||||
scheme: "#{APP_NAME} (iOS)",
|
||||
output_directory: "fastlane/builds/#{version}-#{build}/iOS",
|
||||
output_name: "#{APP_NAME}-#{version}-iOS.ipa",
|
||||
export_options: {
|
||||
provisioningProfiles: {
|
||||
"#{DEVELOPER_APP_IDENTIFIER}" => "match AppStore #{DEVELOPER_APP_IDENTIFIER}",
|
||||
"#{DEVELOPER_APP_IDENTIFIER}.Open-in-#{APP_NAME}" => "match AppStore #{DEVELOPER_APP_IDENTIFIER}.Open-in-#{APP_NAME}"
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
changelog = File.read('../CHANGELOG.md')
|
||||
|
||||
upload_to_testflight(
|
||||
api_key: api_key,
|
||||
ipa: lane_context[SharedValues::IPA_OUTPUT_PATH],
|
||||
# distribute_external: true,
|
||||
# groups: TESTFLIGHT_EXTERNAL_GROUPS,
|
||||
changelog: changelog
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
platform :tvos do
|
||||
desc "Push a new beta build to TestFlight"
|
||||
lane :beta do
|
||||
ensure_temp_keychain(TEMP_KEYCHAIN_USER, TEMP_KEYCHAIN_PASSWORD)
|
||||
|
||||
api_key = app_store_connect_api_key(
|
||||
key_id: DEVELOPER_KEY_ID,
|
||||
issuer_id: DEVELOPER_KEY_ISSUER_ID,
|
||||
key_content: DEVELOPER_KEY_CONTENT
|
||||
)
|
||||
|
||||
build = get_build_number(xcodeproj: XCODEPROJ)
|
||||
version = get_version_number(
|
||||
xcodeproj: XCODEPROJ,
|
||||
target: "#{APP_NAME} (tvOS)"
|
||||
)
|
||||
|
||||
match(
|
||||
type: 'appstore',
|
||||
platform: 'tvos',
|
||||
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
|
||||
git_basic_authorization: Base64.strict_encode64(GIT_AUTHORIZATION),
|
||||
readonly: true,
|
||||
keychain_name: TEMP_KEYCHAIN_USER,
|
||||
keychain_password: TEMP_KEYCHAIN_PASSWORD,
|
||||
api_key: api_key
|
||||
)
|
||||
|
||||
build_app(
|
||||
scheme: "#{APP_NAME} (tvOS)",
|
||||
output_directory: "fastlane/builds/#{version}-#{build}/tvOS",
|
||||
output_name: "#{APP_NAME}-#{version}-tvOS.ipa",
|
||||
export_method: "app-store",
|
||||
export_options: {
|
||||
provisioningProfiles: {
|
||||
"#{DEVELOPER_APP_IDENTIFIER}" => "match AppStore #{DEVELOPER_APP_IDENTIFIER} tvos"
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
changelog = File.read('../CHANGELOG.md')
|
||||
|
||||
upload_to_testflight(
|
||||
api_key: api_key,
|
||||
ipa: lane_context[SharedValues::IPA_OUTPUT_PATH],
|
||||
# distribute_external: true,
|
||||
# groups: TESTFLIGHT_EXTERNAL_GROUPS,
|
||||
changelog: changelog
|
||||
)
|
||||
end
|
||||
end
|
||||
|
||||
platform :mac do
|
||||
desc "Push a new beta build to TestFlight"
|
||||
lane :beta do
|
||||
ensure_temp_keychain(TEMP_KEYCHAIN_USER, TEMP_KEYCHAIN_PASSWORD)
|
||||
|
||||
api_key = app_store_connect_api_key(
|
||||
key_id: DEVELOPER_KEY_ID,
|
||||
issuer_id: DEVELOPER_KEY_ISSUER_ID,
|
||||
key_content: DEVELOPER_KEY_CONTENT
|
||||
)
|
||||
|
||||
build = get_build_number(xcodeproj: XCODEPROJ)
|
||||
version = get_version_number(
|
||||
xcodeproj: XCODEPROJ,
|
||||
target: "#{APP_NAME} (macOS)"
|
||||
)
|
||||
|
||||
match(
|
||||
type: 'appstore',
|
||||
platform: 'macos',
|
||||
additional_cert_types: ['mac_installer_distribution'],
|
||||
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
|
||||
git_basic_authorization: Base64.strict_encode64(GIT_AUTHORIZATION),
|
||||
readonly: true,
|
||||
keychain_name: TEMP_KEYCHAIN_USER,
|
||||
keychain_password: TEMP_KEYCHAIN_PASSWORD,
|
||||
api_key: api_key
|
||||
)
|
||||
|
||||
build_app(
|
||||
scheme: "#{APP_NAME} (macOS)",
|
||||
output_directory: "fastlane/builds/#{version}-#{build}/macOS",
|
||||
output_name: "#{APP_NAME}-#{version}-macOS.app",
|
||||
export_method: "app-store",
|
||||
export_options: {
|
||||
provisioningProfiles: {
|
||||
"#{DEVELOPER_APP_IDENTIFIER}" => "match AppStore #{DEVELOPER_APP_IDENTIFIER} macos"
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
changelog = File.read('../CHANGELOG.md')
|
||||
|
||||
upload_to_testflight(
|
||||
api_key: api_key,
|
||||
pkg: lane_context[SharedValues::PKG_OUTPUT_PATH],
|
||||
# distribute_external: true,
|
||||
# groups: TESTFLIGHT_EXTERNAL_GROUPS,
|
||||
changelog: changelog
|
||||
)
|
||||
end
|
||||
|
||||
desc "Build for Developer ID distribution and notarize"
|
||||
lane :build_and_notarize do
|
||||
ensure_temp_keychain(TEMP_KEYCHAIN_USER, TEMP_KEYCHAIN_PASSWORD)
|
||||
|
||||
api_key = app_store_connect_api_key(
|
||||
key_id: DEVELOPER_KEY_ID,
|
||||
issuer_id: DEVELOPER_KEY_ISSUER_ID,
|
||||
key_content: DEVELOPER_KEY_CONTENT
|
||||
)
|
||||
|
||||
build = get_build_number(xcodeproj: XCODEPROJ)
|
||||
version = get_version_number(
|
||||
xcodeproj: XCODEPROJ,
|
||||
target: "#{APP_NAME} (macOS)"
|
||||
)
|
||||
|
||||
match(
|
||||
type: 'developer_id',
|
||||
platform: 'macos',
|
||||
app_identifier: "#{DEVELOPER_APP_IDENTIFIER}",
|
||||
git_basic_authorization: Base64.strict_encode64(GIT_AUTHORIZATION),
|
||||
readonly: true,
|
||||
keychain_name: TEMP_KEYCHAIN_USER,
|
||||
keychain_password: TEMP_KEYCHAIN_PASSWORD,
|
||||
api_key: api_key
|
||||
)
|
||||
|
||||
build_mac_app(
|
||||
scheme: "#{APP_NAME} (macOS)",
|
||||
output_directory: "fastlane/builds/#{version}-#{build}/macOS",
|
||||
output_name: "#{APP_NAME}",
|
||||
export_method: "developer-id",
|
||||
export_options: {
|
||||
provisioningProfiles: {
|
||||
"#{DEVELOPER_APP_IDENTIFIER}" => "match Direct #{DEVELOPER_APP_IDENTIFIER} macos"
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
notarize(
|
||||
package: "fastlane/builds/#{version}-#{build}/macOS/#{APP_NAME}.app",
|
||||
bundle_id: "#{DEVELOPER_APP_IDENTIFIER}",
|
||||
api_key: api_key,
|
||||
print_log: true
|
||||
)
|
||||
end
|
||||
end
|
||||
@@ -1,13 +0,0 @@
|
||||
git_url(ENV['CERTIFICATES_GIT_URL'])
|
||||
|
||||
storage_mode("git")
|
||||
|
||||
type("appstore") # The default type, can be: appstore, adhoc, enterprise or development
|
||||
|
||||
# app_identifier(["tools.fastlane.app", "tools.fastlane.app2"])
|
||||
# username("user@fastlane.tools") # Your Apple Developer Portal username
|
||||
|
||||
# For all available options run `fastlane match --help`
|
||||
# Remove the # in the beginning of the line to enable the other options
|
||||
|
||||
# The docs are available on https://docs.fastlane.tools/actions/match
|
||||
@@ -1,3 +0,0 @@
|
||||
# Autogenerated by fastlane
|
||||
#
|
||||
# Ensure this file is checked in to source control!
|
||||
@@ -1,85 +0,0 @@
|
||||
fastlane documentation
|
||||
----
|
||||
|
||||
# Installation
|
||||
|
||||
Make sure you have the latest version of the Xcode command line tools installed:
|
||||
|
||||
```sh
|
||||
xcode-select --install
|
||||
```
|
||||
|
||||
For _fastlane_ installation instructions, see [Installing _fastlane_](https://docs.fastlane.tools/#installing-fastlane)
|
||||
|
||||
# Available Actions
|
||||
|
||||
### bump_build
|
||||
|
||||
```sh
|
||||
[bundle exec] fastlane bump_build
|
||||
```
|
||||
|
||||
Bump build number and commit
|
||||
|
||||
### bump_version
|
||||
|
||||
```sh
|
||||
[bundle exec] fastlane bump_version
|
||||
```
|
||||
|
||||
Bump version number and commit
|
||||
|
||||
----
|
||||
|
||||
|
||||
## iOS
|
||||
|
||||
### ios beta
|
||||
|
||||
```sh
|
||||
[bundle exec] fastlane ios beta
|
||||
```
|
||||
|
||||
Push a new beta build to TestFlight
|
||||
|
||||
----
|
||||
|
||||
|
||||
## tvos
|
||||
|
||||
### tvos beta
|
||||
|
||||
```sh
|
||||
[bundle exec] fastlane tvos beta
|
||||
```
|
||||
|
||||
Push a new beta build to TestFlight
|
||||
|
||||
----
|
||||
|
||||
|
||||
## Mac
|
||||
|
||||
### mac beta
|
||||
|
||||
```sh
|
||||
[bundle exec] fastlane mac beta
|
||||
```
|
||||
|
||||
Push a new beta build to TestFlight
|
||||
|
||||
### mac build_and_notarize
|
||||
|
||||
```sh
|
||||
[bundle exec] fastlane mac build_and_notarize
|
||||
```
|
||||
|
||||
Build for Developer ID distribution and notarize
|
||||
|
||||
----
|
||||
|
||||
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
|
||||
|
||||
More information about _fastlane_ can be found on [fastlane.tools](https://fastlane.tools).
|
||||
|
||||
The documentation of _fastlane_ can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
|
||||
Reference in New Issue
Block a user