mirror of
https://github.com/passepartoutvpn/passepartout-apple.git
synced 2025-02-02 05:52:18 +00:00
Resolve several issues in bump script/lane (#1075)
- Simplify build/version updates by moving MARKETING_VERSION and CURRENT_PROJECT_VERSION to Config.xcconfig - Provide Ruby (for fastlane) and Bash (for CI) versions of xconfig-get/set - Copy release notes atomically inside the lane to guarantee they are included in the version commit - Add -nt to skip the build tag
This commit is contained in:
parent
72c4a11c5e
commit
8972d9773e
5
.github/workflows/release.yml
vendored
5
.github/workflows/release.yml
vendored
@ -10,7 +10,6 @@ env:
|
|||||||
FASTLANE_USERNAME: ${{ secrets.FASTLANE_USERNAME }}
|
FASTLANE_USERNAME: ${{ secrets.FASTLANE_USERNAME }}
|
||||||
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
|
FASTLANE_PASSWORD: ${{ secrets.FASTLANE_PASSWORD }}
|
||||||
TESTFLIGHT_PREFACE: ${{ vars.TESTFLIGHT_PREFACE }}
|
TESTFLIGHT_PREFACE: ${{ vars.TESTFLIGHT_PREFACE }}
|
||||||
XCODEPROJ: "Passepartout.xcodeproj/project.pbxproj"
|
|
||||||
PLATFORMS: "iOS macOS tvOS"
|
PLATFORMS: "iOS macOS tvOS"
|
||||||
|
|
||||||
concurrency:
|
concurrency:
|
||||||
@ -29,8 +28,8 @@ jobs:
|
|||||||
- name: Save app version
|
- name: Save app version
|
||||||
id: app_version
|
id: app_version
|
||||||
run: |
|
run: |
|
||||||
VERSION=`ci/version-number.sh $XCODEPROJ`
|
VERSION=`ci/version-number.sh`
|
||||||
BUILD=`ci/build-number.sh $XCODEPROJ`
|
BUILD=`ci/build-number.sh`
|
||||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||||
echo "build=$BUILD" >> $GITHUB_OUTPUT
|
echo "build=$BUILD" >> $GITHUB_OUTPUT
|
||||||
- name: Run Xcode tests
|
- name: Run Xcode tests
|
||||||
|
2
Gemfile
2
Gemfile
@ -1,6 +1,6 @@
|
|||||||
source "https://rubygems.org"
|
source "https://rubygems.org"
|
||||||
|
|
||||||
gem "fastlane", :github => "keeshux/fastlane", :ref => "57b2e988e862b14c557419210dc5bd7c9a1636cc"
|
gem "fastlane", :github => "keeshux/fastlane", :ref => "77198d601b9237c223dfe5550ce1c20f43140c79"
|
||||||
gem "dotenv"
|
gem "dotenv"
|
||||||
|
|
||||||
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
|
||||||
|
44
Gemfile.lock
44
Gemfile.lock
@ -1,7 +1,7 @@
|
|||||||
GIT
|
GIT
|
||||||
remote: https://github.com/keeshux/fastlane.git
|
remote: https://github.com/keeshux/fastlane.git
|
||||||
revision: 57b2e988e862b14c557419210dc5bd7c9a1636cc
|
revision: 77198d601b9237c223dfe5550ce1c20f43140c79
|
||||||
ref: 57b2e988e862b14c557419210dc5bd7c9a1636cc
|
ref: 77198d601b9237c223dfe5550ce1c20f43140c79
|
||||||
specs:
|
specs:
|
||||||
fastlane (2.226.0)
|
fastlane (2.226.0)
|
||||||
CFPropertyList (>= 2.3, < 4.0.0)
|
CFPropertyList (>= 2.3, < 4.0.0)
|
||||||
@ -58,30 +58,30 @@ GEM
|
|||||||
artifactory (3.0.17)
|
artifactory (3.0.17)
|
||||||
atomos (0.1.3)
|
atomos (0.1.3)
|
||||||
aws-eventstream (1.3.0)
|
aws-eventstream (1.3.0)
|
||||||
aws-partitions (1.1022.0)
|
aws-partitions (1.1040.0)
|
||||||
aws-sdk-core (3.214.0)
|
aws-sdk-core (3.216.0)
|
||||||
aws-eventstream (~> 1, >= 1.3.0)
|
aws-eventstream (~> 1, >= 1.3.0)
|
||||||
aws-partitions (~> 1, >= 1.992.0)
|
aws-partitions (~> 1, >= 1.992.0)
|
||||||
aws-sigv4 (~> 1.9)
|
aws-sigv4 (~> 1.9)
|
||||||
jmespath (~> 1, >= 1.6.1)
|
jmespath (~> 1, >= 1.6.1)
|
||||||
aws-sdk-kms (1.96.0)
|
aws-sdk-kms (1.97.0)
|
||||||
aws-sdk-core (~> 3, >= 3.210.0)
|
aws-sdk-core (~> 3, >= 3.216.0)
|
||||||
aws-sigv4 (~> 1.5)
|
aws-sigv4 (~> 1.5)
|
||||||
aws-sdk-s3 (1.176.1)
|
aws-sdk-s3 (1.178.0)
|
||||||
aws-sdk-core (~> 3, >= 3.210.0)
|
aws-sdk-core (~> 3, >= 3.216.0)
|
||||||
aws-sdk-kms (~> 1)
|
aws-sdk-kms (~> 1)
|
||||||
aws-sigv4 (~> 1.5)
|
aws-sigv4 (~> 1.5)
|
||||||
aws-sigv4 (1.10.1)
|
aws-sigv4 (1.11.0)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
babosa (1.0.4)
|
babosa (1.0.4)
|
||||||
base64 (0.2.0)
|
base64 (0.2.0)
|
||||||
bigdecimal (3.1.8)
|
bigdecimal (3.1.9)
|
||||||
claide (1.1.0)
|
claide (1.1.0)
|
||||||
colored (1.2)
|
colored (1.2)
|
||||||
colored2 (3.1.2)
|
colored2 (3.1.2)
|
||||||
commander (4.6.0)
|
commander (4.6.0)
|
||||||
highline (~> 2.0.0)
|
highline (~> 2.0.0)
|
||||||
csv (3.3.0)
|
csv (3.3.2)
|
||||||
declarative (0.0.20)
|
declarative (0.0.20)
|
||||||
digest-crc (0.6.5)
|
digest-crc (0.6.5)
|
||||||
rake (>= 12.0.0, < 14.0.0)
|
rake (>= 12.0.0, < 14.0.0)
|
||||||
@ -108,8 +108,8 @@ GEM
|
|||||||
faraday-em_synchrony (1.0.0)
|
faraday-em_synchrony (1.0.0)
|
||||||
faraday-excon (1.1.0)
|
faraday-excon (1.1.0)
|
||||||
faraday-httpclient (1.0.1)
|
faraday-httpclient (1.0.1)
|
||||||
faraday-multipart (1.0.4)
|
faraday-multipart (1.1.0)
|
||||||
multipart-post (~> 2)
|
multipart-post (~> 2.0)
|
||||||
faraday-net_http (1.0.2)
|
faraday-net_http (1.0.2)
|
||||||
faraday-net_http_persistent (1.2.0)
|
faraday-net_http_persistent (1.2.0)
|
||||||
faraday-patron (1.0.0)
|
faraday-patron (1.0.0)
|
||||||
@ -117,11 +117,10 @@ GEM
|
|||||||
faraday-retry (1.0.3)
|
faraday-retry (1.0.3)
|
||||||
faraday_middleware (1.2.1)
|
faraday_middleware (1.2.1)
|
||||||
faraday (~> 1.0)
|
faraday (~> 1.0)
|
||||||
fastimage (2.3.1)
|
fastimage (2.4.0)
|
||||||
fastlane-plugin-translate_gpt (0.1.8.2)
|
fastlane-plugin-translate_gpt (0.1.8.2)
|
||||||
loco_strings (~> 0.1.4.1)
|
loco_strings (~> 0.1.4.1)
|
||||||
ruby-openai (~> 3.7)
|
ruby-openai (~> 3.7)
|
||||||
fastlane-plugin-versioning (0.7.0)
|
|
||||||
fastlane-sirp (1.0.0)
|
fastlane-sirp (1.0.0)
|
||||||
sysrandom (~> 1.0)
|
sysrandom (~> 1.0)
|
||||||
gh_inspector (1.1.3)
|
gh_inspector (1.1.3)
|
||||||
@ -170,8 +169,8 @@ GEM
|
|||||||
multi_xml (>= 0.5.2)
|
multi_xml (>= 0.5.2)
|
||||||
httpclient (2.8.3)
|
httpclient (2.8.3)
|
||||||
jmespath (1.6.2)
|
jmespath (1.6.2)
|
||||||
json (2.9.0)
|
json (2.9.1)
|
||||||
jwt (2.9.3)
|
jwt (2.10.1)
|
||||||
base64
|
base64
|
||||||
loco_strings (0.1.4.1)
|
loco_strings (0.1.4.1)
|
||||||
nokogiri (~> 1.13, >= 1.13.8)
|
nokogiri (~> 1.13, >= 1.13.8)
|
||||||
@ -185,14 +184,14 @@ GEM
|
|||||||
nanaimo (0.4.0)
|
nanaimo (0.4.0)
|
||||||
naturally (2.2.1)
|
naturally (2.2.1)
|
||||||
nkf (0.2.0)
|
nkf (0.2.0)
|
||||||
nokogiri (1.17.2)
|
nokogiri (1.18.1)
|
||||||
mini_portile2 (~> 2.8.2)
|
mini_portile2 (~> 2.8.2)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
nokogiri (1.17.2-arm64-darwin)
|
nokogiri (1.18.1-arm64-darwin)
|
||||||
racc (~> 1.4)
|
racc (~> 1.4)
|
||||||
optparse (0.6.0)
|
optparse (0.6.0)
|
||||||
os (1.1.4)
|
os (1.1.4)
|
||||||
plist (3.7.1)
|
plist (3.7.2)
|
||||||
public_suffix (6.0.1)
|
public_suffix (6.0.1)
|
||||||
racc (1.8.1)
|
racc (1.8.1)
|
||||||
rake (13.2.1)
|
rake (13.2.1)
|
||||||
@ -201,12 +200,12 @@ GEM
|
|||||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||||
uber (< 0.2.0)
|
uber (< 0.2.0)
|
||||||
retriable (3.1.2)
|
retriable (3.1.2)
|
||||||
rexml (3.3.9)
|
rexml (3.4.0)
|
||||||
rouge (3.28.0)
|
rouge (3.28.0)
|
||||||
ruby-openai (3.7.0)
|
ruby-openai (3.7.0)
|
||||||
httparty (>= 0.18.1)
|
httparty (>= 0.18.1)
|
||||||
ruby2_keywords (0.0.5)
|
ruby2_keywords (0.0.5)
|
||||||
rubyzip (2.3.2)
|
rubyzip (2.4.1)
|
||||||
security (0.1.5)
|
security (0.1.5)
|
||||||
signet (0.19.0)
|
signet (0.19.0)
|
||||||
addressable (~> 2.8)
|
addressable (~> 2.8)
|
||||||
@ -248,7 +247,6 @@ DEPENDENCIES
|
|||||||
dotenv
|
dotenv
|
||||||
fastlane!
|
fastlane!
|
||||||
fastlane-plugin-translate_gpt
|
fastlane-plugin-translate_gpt
|
||||||
fastlane-plugin-versioning
|
|
||||||
|
|
||||||
BUNDLED WITH
|
BUNDLED WITH
|
||||||
2.5.17
|
2.5.17
|
||||||
|
@ -1 +1 @@
|
|||||||
Subproject commit d46881b818ac532032324ad518c89779b7ae45a1
|
Subproject commit f6d85fdf1e186fa13c820166f3a414962bcc52c1
|
@ -262,17 +262,7 @@
|
|||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
/* Begin PBXFileSystemSynchronizedRootGroup section */
|
/* Begin PBXFileSystemSynchronizedRootGroup section */
|
||||||
0E3D7F242D347A41003F1C4B /* Packages */ = {
|
0E3D7F242D347A41003F1C4B /* Packages */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Packages; sourceTree = "<group>"; };
|
||||||
isa = PBXFileSystemSynchronizedRootGroup;
|
|
||||||
exceptions = (
|
|
||||||
);
|
|
||||||
explicitFileTypes = {
|
|
||||||
};
|
|
||||||
explicitFolders = (
|
|
||||||
);
|
|
||||||
path = Packages;
|
|
||||||
sourceTree = "<group>";
|
|
||||||
};
|
|
||||||
/* End PBXFileSystemSynchronizedRootGroup section */
|
/* End PBXFileSystemSynchronizedRootGroup section */
|
||||||
|
|
||||||
/* Begin PBXFrameworksBuildPhase section */
|
/* Begin PBXFrameworksBuildPhase section */
|
||||||
@ -1229,7 +1219,6 @@
|
|||||||
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=appletvos*]" = TV;
|
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=appletvos*]" = TV;
|
||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
CODE_SIGN_ENTITLEMENTS = Passepartout/App/App.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Passepartout/App/App.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 3718;
|
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
INFOPLIST_FILE = Passepartout/App/App.plist;
|
INFOPLIST_FILE = Passepartout/App/App.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
||||||
@ -1250,7 +1239,6 @@
|
|||||||
INFOPLIST_KEY_UISupportsDocumentBrowser = NO;
|
INFOPLIST_KEY_UISupportsDocumentBrowser = NO;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
|
||||||
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
|
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
|
||||||
MARKETING_VERSION = 3.0.1;
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_ID)";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_ID)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
@ -1268,7 +1256,6 @@
|
|||||||
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=appletvos*]" = TV;
|
"ASSETCATALOG_COMPILER_APPICON_NAME[sdk=appletvos*]" = TV;
|
||||||
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
|
||||||
CODE_SIGN_ENTITLEMENTS = Passepartout/App/App.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Passepartout/App/App.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 3718;
|
|
||||||
ENABLE_PREVIEWS = YES;
|
ENABLE_PREVIEWS = YES;
|
||||||
INFOPLIST_FILE = Passepartout/App/App.plist;
|
INFOPLIST_FILE = Passepartout/App/App.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
||||||
@ -1289,7 +1276,6 @@
|
|||||||
INFOPLIST_KEY_UISupportsDocumentBrowser = NO;
|
INFOPLIST_KEY_UISupportsDocumentBrowser = NO;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/Frameworks";
|
||||||
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
|
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../Frameworks";
|
||||||
MARKETING_VERSION = 3.0.1;
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_ID)";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_APP_ID)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
@ -1329,7 +1315,6 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = Passepartout/LoginItem/LoginItem.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Passepartout/LoginItem/LoginItem.entitlements;
|
||||||
CODE_SIGN_STYLE = Manual;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = 3718;
|
|
||||||
ENABLE_HARDENED_RUNTIME = YES;
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
||||||
@ -1338,7 +1323,6 @@
|
|||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
||||||
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
|
||||||
MARKETING_VERSION = 3.0.0;
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_LOGIN_ITEM_ID)";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_LOGIN_ITEM_ID)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
@ -1354,7 +1338,6 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = Passepartout/LoginItem/LoginItem.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Passepartout/LoginItem/LoginItem.entitlements;
|
||||||
CODE_SIGN_STYLE = Manual;
|
CODE_SIGN_STYLE = Manual;
|
||||||
CURRENT_PROJECT_VERSION = 3718;
|
|
||||||
ENABLE_HARDENED_RUNTIME = YES;
|
ENABLE_HARDENED_RUNTIME = YES;
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
||||||
@ -1363,7 +1346,6 @@
|
|||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
||||||
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
|
||||||
MARKETING_VERSION = 3.0.0;
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_LOGIN_ITEM_ID)";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_LOGIN_ITEM_ID)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
SDKROOT = macosx;
|
SDKROOT = macosx;
|
||||||
@ -1408,7 +1390,6 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = Passepartout/Tunnel/Tunnel.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Passepartout/Tunnel/Tunnel.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 3718;
|
|
||||||
INFOPLIST_FILE = Passepartout/Tunnel/Tunnel.plist;
|
INFOPLIST_FILE = Passepartout/Tunnel/Tunnel.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
||||||
@ -1418,7 +1399,6 @@
|
|||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../../../../Frameworks";
|
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../../../../Frameworks";
|
||||||
MARKETING_VERSION = 3.0.0;
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_TUNNEL_ID)";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_TUNNEL_ID)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
@ -1434,14 +1414,12 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = Passepartout/Tunnel/Tunnel.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Passepartout/Tunnel/Tunnel.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 3718;
|
|
||||||
INFOPLIST_FILE = Passepartout/Tunnel/Tunnel.plist;
|
INFOPLIST_FILE = Passepartout/Tunnel/Tunnel.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
INFOPLIST_KEY_CFBundleDisplayName = "$(TARGET_NAME)";
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "$(CFG_COPYRIGHT)";
|
||||||
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../../Frameworks";
|
||||||
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../../../../Frameworks";
|
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../../../../Frameworks";
|
||||||
MARKETING_VERSION = 3.0.0;
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_TUNNEL_ID)";
|
PRODUCT_BUNDLE_IDENTIFIER = "$(CFG_TUNNEL_ID)";
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
@ -1457,7 +1435,6 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = Passepartout/Intents/Intents.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Passepartout/Intents/Intents.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 3718;
|
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = Passepartout/Intents/Intents.plist;
|
INFOPLIST_FILE = Passepartout/Intents/Intents.plist;
|
||||||
@ -1469,7 +1446,6 @@
|
|||||||
"@executable_path/../../Frameworks",
|
"@executable_path/../../Frameworks",
|
||||||
);
|
);
|
||||||
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../../../../Frameworks";
|
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../../../../Frameworks";
|
||||||
MARKETING_VERSION = 3.0.0;
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.Passepartout.Intents;
|
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.Passepartout.Intents;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
PROVISIONING_PROFILE_SPECIFIER = "";
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
@ -1488,7 +1464,6 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
CODE_SIGN_ENTITLEMENTS = Passepartout/Intents/Intents.entitlements;
|
CODE_SIGN_ENTITLEMENTS = Passepartout/Intents/Intents.entitlements;
|
||||||
CURRENT_PROJECT_VERSION = 3718;
|
|
||||||
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
ENABLE_USER_SCRIPT_SANDBOXING = YES;
|
||||||
GENERATE_INFOPLIST_FILE = YES;
|
GENERATE_INFOPLIST_FILE = YES;
|
||||||
INFOPLIST_FILE = Passepartout/Intents/Intents.plist;
|
INFOPLIST_FILE = Passepartout/Intents/Intents.plist;
|
||||||
@ -1497,7 +1472,6 @@
|
|||||||
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
INFOPLIST_KEY_UIRequiredDeviceCapabilities = arm64;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../../Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../../Frameworks";
|
||||||
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../../../../Frameworks";
|
"LD_RUNPATH_SEARCH_PATHS[sdk=macosx*]" = "@executable_path/../../../../Frameworks";
|
||||||
MARKETING_VERSION = 3.0.0;
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.Passepartout.Intents;
|
PRODUCT_BUNDLE_IDENTIFIER = com.algoritmico.ios.Passepartout.Intents;
|
||||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||||
"PROVISIONING_PROFILE_SPECIFIER[sdk=appletvos*]" = "match AppStore com.algoritmico.ios.Passepartout.Intents tvos";
|
"PROVISIONING_PROFILE_SPECIFIER[sdk=appletvos*]" = "match AppStore com.algoritmico.ios.Passepartout.Intents tvos";
|
||||||
|
@ -26,6 +26,9 @@
|
|||||||
// Configuration settings file format documentation can be found at:
|
// Configuration settings file format documentation can be found at:
|
||||||
// https://help.apple.com/xcode/#/dev745c5c974
|
// https://help.apple.com/xcode/#/dev745c5c974
|
||||||
|
|
||||||
|
MARKETING_VERSION = 3.0.1
|
||||||
|
CURRENT_PROJECT_VERSION = 3718
|
||||||
|
|
||||||
// tweak these based on app and team
|
// tweak these based on app and team
|
||||||
CFG_APP_ID = com.algoritmico.ios.Passepartout
|
CFG_APP_ID = com.algoritmico.ios.Passepartout
|
||||||
CFG_APP_STORE_ID = 1433648537
|
CFG_APP_STORE_ID = 1433648537
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cwd=`dirname $0`
|
cwd=`dirname $0`
|
||||||
xcodeproj="$cwd/../Passepartout.xcodeproj/project.pbxproj"
|
xcconfig="$cwd/../Passepartout/Config.xcconfig"
|
||||||
$cwd/xcode-get-setting.sh $xcodeproj CURRENT_PROJECT_VERSION "([0-9]+)"
|
$cwd/xcconfig-get.sh $xcconfig CURRENT_PROJECT_VERSION
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
cwd=`dirname $0`
|
cwd=`dirname $0`
|
||||||
xcodeproj="$cwd/../Passepartout.xcodeproj/project.pbxproj"
|
xcconfig="$cwd/../Passepartout/Config.xcconfig"
|
||||||
$cwd/xcode-get-setting.sh $xcodeproj MARKETING_VERSION "([0-9]\.[0-9]\.[0-9])"
|
$cwd/xcconfig-get.sh $xcconfig MARKETING_VERSION
|
||||||
|
12
ci/xcconfig-get.sh
Executable file
12
ci/xcconfig-get.sh
Executable file
@ -0,0 +1,12 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
if [[ -z "$1" ]]; then
|
||||||
|
echo "Path to Xcode project required"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if [[ -z "$2" ]]; then
|
||||||
|
echo "Setting key required"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
xcconfig="$1"
|
||||||
|
setting_key="$2"
|
||||||
|
grep $setting_key $xcconfig | sed -E "s/^.*${setting_key} = (.*)$/\1/"
|
@ -8,10 +8,10 @@ if [[ -z "$2" ]]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
if [[ -z "$3" ]]; then
|
if [[ -z "$3" ]]; then
|
||||||
echo "Setting regex required"
|
echo "Setting value required"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
xcodeproj="$1"
|
xcconfig="$1"
|
||||||
setting_key="$2"
|
setting_key="$2"
|
||||||
setting_pattern="$3"
|
setting_value="$3"
|
||||||
grep $setting_key $xcodeproj | sed -E "s/^.*${setting_key} = ${setting_pattern};/\1/" | uniq | tr -d '\n'
|
sed -i "" -E "s/^(.*${setting_key} =) .*$/\1 ${setting_value}/" $xcconfig
|
@ -7,4 +7,5 @@ FL_VERSION_NUMBER_TARGET="Passepartout"
|
|||||||
FL_BUILD_NUMBER_PROJECT="Passepartout.xcodeproj"
|
FL_BUILD_NUMBER_PROJECT="Passepartout.xcodeproj"
|
||||||
PILOT_BETA_APP_DESCRIPTION="Passepartout is your go-to app for VPN and privacy."
|
PILOT_BETA_APP_DESCRIPTION="Passepartout is your go-to app for VPN and privacy."
|
||||||
|
|
||||||
|
XCCONFIG_PATH="Passepartout/Config.xcconfig"
|
||||||
API_PACKAGE_PATH="Packages/App/Sources/CommonAPI/API"
|
API_PACKAGE_PATH="Packages/App/Sources/CommonAPI/API"
|
||||||
|
@ -15,9 +15,12 @@
|
|||||||
|
|
||||||
fastlane_require "dotenv"
|
fastlane_require "dotenv"
|
||||||
fastlane_require "fileutils"
|
fastlane_require "fileutils"
|
||||||
|
load "xcconfig.rb"
|
||||||
Dotenv.load ".env.secret"
|
Dotenv.load ".env.secret"
|
||||||
|
|
||||||
setup_ci if ENV["CI"]
|
setup_ci if ENV["CI"]
|
||||||
|
|
||||||
|
xcconfig = ENV["XCCONFIG_PATH"]
|
||||||
api = ENV["API_PACKAGE_PATH"]
|
api = ENV["API_PACKAGE_PATH"]
|
||||||
metadata = "fastlane/metadata"
|
metadata = "fastlane/metadata"
|
||||||
logname = "CHANGELOG.txt"
|
logname = "CHANGELOG.txt"
|
||||||
@ -49,23 +52,32 @@ lane :bump do |options|
|
|||||||
UI.user_error!("CHANGELOG editor cancelled")
|
UI.user_error!("CHANGELOG editor cancelled")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
version = options[:version]
|
|
||||||
build = options[:build]
|
build = options[:build]
|
||||||
increment_build_number(build_number: build)
|
version = options[:version]
|
||||||
unless version.nil? || version.empty?
|
if build.nil? || build.empty?
|
||||||
increment_version_number_in_xcodeproj(version_number: version)
|
build = xcconfig_get("../#{xcconfig}", "CURRENT_PROJECT_VERSION").to_i + 1
|
||||||
end
|
end
|
||||||
git_add(
|
xcconfig_set("../#{xcconfig}", "CURRENT_PROJECT_VERSION", build)
|
||||||
path: [api, metadata, logname]
|
unless version.nil? || version.empty?
|
||||||
)
|
xcconfig_set("../#{xcconfig}", "MARKETING_VERSION", version)
|
||||||
commit_version_bump(
|
end
|
||||||
message: "Bump version",
|
system("../scripts/copy-release-notes.sh")
|
||||||
force: true
|
git_commit(
|
||||||
)
|
path: [
|
||||||
add_git_tag(
|
xcconfig,
|
||||||
includes_lane: false,
|
api,
|
||||||
sign: true
|
metadata,
|
||||||
|
logname
|
||||||
|
],
|
||||||
|
message: "Bump version"
|
||||||
)
|
)
|
||||||
|
unless options[:no_tag]
|
||||||
|
add_git_tag(
|
||||||
|
includes_lane: false,
|
||||||
|
sign: true,
|
||||||
|
build_number: build
|
||||||
|
)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Run Xcode tests"
|
desc "Run Xcode tests"
|
||||||
|
@ -3,4 +3,3 @@
|
|||||||
# Ensure this file is checked in to source control!
|
# Ensure this file is checked in to source control!
|
||||||
|
|
||||||
gem 'fastlane-plugin-translate_gpt'
|
gem 'fastlane-plugin-translate_gpt'
|
||||||
gem 'fastlane-plugin-versioning'
|
|
||||||
|
23
fastlane/xcconfig.rb
Normal file
23
fastlane/xcconfig.rb
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
def xcconfig_set(path, key, value)
|
||||||
|
unless File.exist?(path)
|
||||||
|
raise "File not found: #{path}"
|
||||||
|
end
|
||||||
|
content = File.read(path)
|
||||||
|
pattern = /^(#{key}) = .*$/
|
||||||
|
replacement = "\\1 = #{value}"
|
||||||
|
modified_content = content.gsub(pattern, replacement)
|
||||||
|
File.write(path, modified_content)
|
||||||
|
end
|
||||||
|
|
||||||
|
def xcconfig_get(path, key)
|
||||||
|
unless File.exist?(path)
|
||||||
|
raise "File not found: #{path}"
|
||||||
|
end
|
||||||
|
pattern = /^#{key} = (.*)$/
|
||||||
|
File.foreach(path) do |line|
|
||||||
|
if (match = line.match(pattern))
|
||||||
|
return match[1]
|
||||||
|
end
|
||||||
|
end
|
||||||
|
nil
|
||||||
|
end
|
@ -28,6 +28,10 @@ while [[ $# -gt 0 ]]; do
|
|||||||
opt_no_log="no_log:true"
|
opt_no_log="no_log:true"
|
||||||
shift # past argument
|
shift # past argument
|
||||||
;;
|
;;
|
||||||
|
-nt)
|
||||||
|
opt_no_tag="no_tag:true"
|
||||||
|
shift
|
||||||
|
;;
|
||||||
-d)
|
-d)
|
||||||
opt_dry_run=1
|
opt_dry_run=1
|
||||||
shift # past argument
|
shift # past argument
|
||||||
@ -47,8 +51,7 @@ set -- "${positional_args[@]}" # restore positional parameters
|
|||||||
|
|
||||||
cwd=`dirname $0`
|
cwd=`dirname $0`
|
||||||
cmd_api="$cwd/update-bundled-api.sh"
|
cmd_api="$cwd/update-bundled-api.sh"
|
||||||
cmd_release_notes="$cwd/copy-release-notes.sh"
|
cmd_fastlane="cd $cwd/.. && bundle exec fastlane bump $opt_version $opt_build $opt_since $opt_no_log $opt_no_tag"
|
||||||
cmd_fastlane="cd $cwd/.. && bundle exec fastlane bump $opt_version $opt_build $opt_since $opt_no_log"
|
|
||||||
|
|
||||||
if [[ -n $opt_dry_run ]]; then
|
if [[ -n $opt_dry_run ]]; then
|
||||||
echo "version = $opt_version"
|
echo "version = $opt_version"
|
||||||
@ -56,10 +59,10 @@ if [[ -n $opt_dry_run ]]; then
|
|||||||
echo "since = $opt_since"
|
echo "since = $opt_since"
|
||||||
echo "no_api = $opt_no_api"
|
echo "no_api = $opt_no_api"
|
||||||
echo "no_log = $opt_no_log"
|
echo "no_log = $opt_no_log"
|
||||||
|
echo "no_tag = $opt_no_tag"
|
||||||
if [[ -z $opt_no_api ]]; then
|
if [[ -z $opt_no_api ]]; then
|
||||||
echo "$cmd_api"
|
echo "$cmd_api"
|
||||||
fi
|
fi
|
||||||
echo "$cmd_release_notes"
|
|
||||||
echo "$cmd_fastlane"
|
echo "$cmd_fastlane"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
@ -67,5 +70,4 @@ fi
|
|||||||
if [[ -z $opt_no_api ]]; then
|
if [[ -z $opt_no_api ]]; then
|
||||||
eval "$cmd_api"
|
eval "$cmd_api"
|
||||||
fi
|
fi
|
||||||
eval "$cmd_release_notes"
|
|
||||||
eval "$cmd_fastlane"
|
eval "$cmd_fastlane"
|
||||||
|
Loading…
Reference in New Issue
Block a user