feat: add native local location capture (#4)

Add explicit permission handling, independent continuous and single capture,
location status and deterministic CI coverage.

Final decisions and validation:
https://github.com/jayanezj/traccar-client-macos/issues/4#issuecomment-6399189792
This commit is contained in:
jayanezj committed 2026-10-25 15:58:05 +01:00
1 parent db90ad9a0e
commit 3f351296b8
18 files changed
+1030 -38

No files matched your search

+2 -2
View File
@@ -50,11 +50,11 @@ for configuration in Debug Release; do
scripts/build.sh "$validation_root/build" "$configuration"
done
echo "Running configuration tests..."
echo "Running application tests..."
scripts/test.sh "$validation_root/build"
echo "Checking application binaries and signatures..."
scripts/verify-build.sh "$validation_root/build"
echo "Local checks passed ($profile, $signing_mode): lint, Debug, Release, configuration tests, arm64, macOS 15.0 minimum and signatures."
echo "Local checks passed ($profile, $signing_mode): lint, Debug, Release, application tests, arm64, macOS 15.0 minimum and signatures."
echo "Hosted workflow execution and manual application checks remain separate."
+2 -2
View File
@@ -11,7 +11,7 @@ source "$repo_root/scripts/signing-options.sh"
mkdir -p "$build_root/TestResults"
result_root="$(mktemp -d "$build_root/TestResults/run.XXXXXX")"
echo "Test results: $result_root/Configuration.xcresult"
echo "Test results: $result_root/Application.xcresult"
exec xcodebuild \
-project "$repo_root/TraccarClient.xcodeproj" \
-scheme TraccarClient \
@@ -19,7 +19,7 @@ exec xcodebuild \
-destination 'platform=macOS,arch=arm64' \
-parallel-testing-enabled NO \
-derivedDataPath "$build_root/DerivedData" \
-resultBundlePath "$result_root/Configuration.xcresult" \
-resultBundlePath "$result_root/Application.xcresult" \
"CLANG_MODULE_CACHE_PATH=$build_root/ModuleCache" \
"SWIFT_MODULE_CACHE_PATH=$build_root/ModuleCache" \
"${signing_options[@]}" \
+1
View File
@@ -15,6 +15,7 @@ for configuration in Debug Release; do
echo "Verifying $configuration..."
test "$(lipo -archs "$executable")" = arm64
test "$(xcrun vtool -show-build "$executable" | awk '/minos/ {print $2}')" = 15.0
test -n "$(/usr/libexec/PlistBuddy -c 'Print :NSLocationUsageDescription' "$app/Contents/Info.plist")"
codesign --verify --strict "$app"
metadata="$(codesign --display --verbose=4 "$app" 2>&1)"
case "$signing_mode" in