← All repositories

listless

A simple list app for Apple platforms

git clone https://code.inqk.net/listless.git


commit 87a0bbf90e0b3d1bb693c7cda6035c486994e831
parent 754a85d44b2f535c1954eba9b4e040127aec683f
Author: Michael Camilleri <[email protected]>
Date:   Thu, 26 Feb 2026 09:06:03 +0900

Add build number script to project settings

Diffstat

MListless.xcodeproj/project.pbxproj | 53+++++++++++++++++++++++++++++++++++++++++++----------
Mproject.yml | 14++++++++++++++

2 files changed, 57 insertions(+), 10 deletions(-)

diff --git a/Listless.xcodeproj/project.pbxproj b/Listless.xcodeproj/project.pbxproj

@@ -125,7 +125,6 @@
 		C71466C5CD1A5BA984352F8D /* Listless iOS Unit Tests.xctest */ = {isa = PBXFileReference; includeInIndex = 0; lastKnownFileType = wrapper.cfbundle; path = "Listless iOS Unit Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; };
 		C9B14DC786A336008AAB78EE /* .gitkeep */ = {isa = PBXFileReference; path = .gitkeep; sourceTree = "<group>"; };
 		CB43816B8E7F083A2AD07F28 /* TaskListView+Toolbar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TaskListView+Toolbar.swift"; sourceTree = "<group>"; };
-		D10B5491A53E77C80F8F75CD /* .gitkeep */ = {isa = PBXFileReference; path = .gitkeep; sourceTree = "<group>"; };
 		D2C018476BD91B73870244B9 /* TaskListViewProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TaskListViewProtocol.swift; sourceTree = "<group>"; };
 		D2D9CDDA8913CD116FB4DA74 /* TaskListView+PullGestures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TaskListView+PullGestures.swift"; sourceTree = "<group>"; };
 		D57C3CC81C4380EFAE4DB910 /* TaskRowDragGesture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TaskRowDragGesture.swift; sourceTree = "<group>"; };
@@ -185,7 +184,6 @@
 			children = (
 				A1A9B54C4CBA03BEE12B34A9 /* Extensions */,
 				78E0184C210B140892690CD4 /* Helpers */,
-				AA563E991F69ED14DCD9A1AB /* Infrastructure */,
 				8656EEF3161BE20196B8042E /* Models */,
 				E98EF3B4638A9E8473EA62FA /* Sync */,
 			);
@@ -260,14 +258,6 @@
 			path = Extensions;
 			sourceTree = "<group>";
 		};
-		AA563E991F69ED14DCD9A1AB /* Infrastructure */ = {
-			isa = PBXGroup;
-			children = (
-				D10B5491A53E77C80F8F75CD /* .gitkeep */,
-			);
-			path = Infrastructure;
-			sourceTree = "<group>";
-		};
 		D12ECC901ABED96B86CC85B5 /* Views */ = {
 			isa = PBXGroup;
 			children = (
@@ -354,6 +344,7 @@
 			buildPhases = (
 				409D108909CBEC2F69B56D0E /* Sources */,
 				6BCB6F65428622E5AA66936D /* Resources */,
+				AB71BC51B745C8453D165362 /* Set Build Number */,
 			);
 			buildRules = (
 			);
@@ -372,6 +363,7 @@
 			buildPhases = (
 				67F773566AF3BC117AA393B9 /* Sources */,
 				EC5CE716D5948EC163595BF2 /* Resources */,
+				2AF6CF799FE78291393A6F88 /* Set Build Number */,
 			);
 			buildRules = (
 			);
@@ -465,6 +457,47 @@
 		};
 /* End PBXResourcesBuildPhase section */
 
+/* Begin PBXShellScriptBuildPhase section */
+		2AF6CF799FE78291393A6F88 /* Set Build Number */ = {
+			isa = PBXShellScriptBuildPhase;
+			alwaysOutOfDate = 1;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputFileListPaths = (
+			);
+			inputPaths = (
+			);
+			name = "Set Build Number";
+			outputFileListPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "buildYear=`xcrun git log -1 --format=%cd --date=format:%Y`\nbuildVersion=`xcrun git rev-list HEAD | wc -l | tr -d ' '`\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $buildYear.$buildVersion\" \"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\"\n";
+		};
+		AB71BC51B745C8453D165362 /* Set Build Number */ = {
+			isa = PBXShellScriptBuildPhase;
+			alwaysOutOfDate = 1;
+			buildActionMask = 2147483647;
+			files = (
+			);
+			inputFileListPaths = (
+			);
+			inputPaths = (
+			);
+			name = "Set Build Number";
+			outputFileListPaths = (
+			);
+			outputPaths = (
+			);
+			runOnlyForDeploymentPostprocessing = 0;
+			shellPath = /bin/sh;
+			shellScript = "buildYear=`xcrun git log -1 --format=%cd --date=format:%Y`\nbuildVersion=`xcrun git rev-list HEAD | wc -l | tr -d ' '`\n/usr/libexec/PlistBuddy -c \"Set :CFBundleVersion $buildYear.$buildVersion\" \"${TARGET_BUILD_DIR}/${INFOPLIST_PATH}\"\n";
+		};
+/* End PBXShellScriptBuildPhase section */
+
 /* Begin PBXSourcesBuildPhase section */
 		409D108909CBEC2F69B56D0E /* Sources */ = {
 			isa = PBXSourcesBuildPhase;

diff --git a/project.yml b/project.yml

@@ -51,6 +51,13 @@ targets:
       ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
       CODE_SIGN_STYLE: Automatic
       DEVELOPMENT_TEAM: 7TD7PZBNXP
+    postBuildScripts:
+      - name: Set Build Number
+        basedOnDependencyAnalysis: false
+        script: |
+          buildYear=`xcrun git log -1 --format=%cd --date=format:%Y`
+          buildVersion=`xcrun git rev-list HEAD | wc -l | tr -d ' '`
+          /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildYear.$buildVersion" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
 
   Listless macOS:
     type: application
@@ -83,6 +90,13 @@ targets:
       ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
       CODE_SIGN_STYLE: Automatic
       DEVELOPMENT_TEAM: 7TD7PZBNXP
+    postBuildScripts:
+      - name: Set Build Number
+        basedOnDependencyAnalysis: false
+        script: |
+          buildYear=`xcrun git log -1 --format=%cd --date=format:%Y`
+          buildVersion=`xcrun git rev-list HEAD | wc -l | tr -d ' '`
+          /usr/libexec/PlistBuddy -c "Set :CFBundleVersion $buildYear.$buildVersion" "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}"
 
   Listless iOS Unit Tests:
     type: bundle.unit-test