Skip to content

Commit c60d8ec

Browse files
v1.5.1: ship SOS + BLE scan fixes, update website + roadmap + listing
- Bump pubspec 1.5.0+64 → 1.5.1+276 - Podfile: rewrite DT_TOOLCHAIN_DIR → TOOLCHAIN_DIR in all pod xcconfigs (Xcode 15+ workaround for LIBRARY_SEARCH_PATHS) - Runner.xcodeproj: pod install integration - docs/link.html: softwareVersion 1.3.1 → 1.5.1 - docs/roadmap.html: note v1.5.1 patch under v1.5 entry - docs/sitemap.xml: bump lastmod to 2026-04-10 - store.config.json: releaseNotes v1.2.1 → v1.5.1 - STORE_LISTING.md: add v1.5.0 and v1.5.1 What's New entries - .gitignore: add *.p8, *.p12, *.mobileprovision, *.cer, tools/asc-updater/, tools/certs/ so signing secrets and ASC tooling never get pushed - ios/.gitignore: add ExportOptions.plist Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 3f4f946 commit c60d8ec

11 files changed

Lines changed: 626 additions & 169 deletions

File tree

.gitignore

Lines changed: 56 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,48 +1,56 @@
1-
# Flutter/Dart
2-
.dart_tool/
3-
.packages
4-
build/
5-
.flutter-plugins
6-
.flutter-plugins-dependencies
7-
8-
# Generated code
9-
*.g.dart
10-
*.drift.g.part
11-
*.drift_module.json
12-
13-
# IDE
14-
*.iml
15-
.idea/
16-
.vscode/
17-
18-
# OS
19-
.DS_Store
20-
Thumbs.db
21-
22-
# Secrets
23-
*.jks
24-
*.keystore
25-
key.properties
26-
**/android/key.properties
27-
google-services.json
28-
29-
# Build artifacts
30-
*.apk
31-
*.aab
32-
*.ipa
33-
*.dSYM.zip
34-
*.dSYM
35-
36-
# Coverage
37-
coverage/
38-
.test_coverage.dart
39-
40-
# Pub
41-
.pub-cache/
42-
.pub/
43-
pubspec.lock
44-
45-
cert_key.pem
46-
47-
# MCP server logs
48-
.playwright-mcp/
1+
# Flutter/Dart
2+
.dart_tool/
3+
.packages
4+
build/
5+
.flutter-plugins
6+
.flutter-plugins-dependencies
7+
8+
# Generated code
9+
*.g.dart
10+
*.drift.g.part
11+
*.drift_module.json
12+
13+
# IDE
14+
*.iml
15+
.idea/
16+
.vscode/
17+
18+
# OS
19+
.DS_Store
20+
Thumbs.db
21+
22+
# Secrets
23+
*.jks
24+
*.keystore
25+
key.properties
26+
**/android/key.properties
27+
google-services.json
28+
29+
# Build artifacts
30+
*.apk
31+
*.aab
32+
*.ipa
33+
*.dSYM.zip
34+
*.dSYM
35+
36+
# Coverage
37+
coverage/
38+
.test_coverage.dart
39+
40+
# Pub
41+
.pub-cache/
42+
.pub/
43+
pubspec.lock
44+
45+
cert_key.pem
46+
47+
# MCP server logs
48+
.playwright-mcp/
49+
50+
# Local tooling + signing secrets — NEVER commit
51+
tools/asc-updater/
52+
tools/certs/
53+
*.p8
54+
*.p12
55+
*.mobileprovision
56+
*.cer

STORE_LISTING.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,24 @@ Track your team offline over Bluetooth -- no cell service needed. Encrypted GPS
8383
## Keywords (iOS, max 100 chars)
8484
offline tracker,team gps,blue force,walkie talkie,hunting gps,sar,mgrs,topo map,hiking,group track
8585

86+
## What's New (v1.5.1)
87+
Red Grid Link v1.5.1 -- critical fixes:
88+
89+
- Emergency Beacon: SOS button now correctly triggers the team alert and emergency overlay on the map screen.
90+
- Field Link discovery: Scan/Join now actually initiates BLE discovery and surfaces nearby teammates.
91+
- Hardened ECDH P-256 key exchange and stream cleanup during session teardown.
92+
- Stability improvements and minor bug fixes.
93+
94+
If you experienced trouble starting a Field Link session or triggering the SOS in v1.5.0, this update resolves it.
95+
96+
## What's New (v1.5.0)
97+
Security and communication update:
98+
- ECDH P-256 key exchange (per-peer encryption with forward secrecy)
99+
- Emergency beacon with one-tap SOS and team alerts
100+
- Tactical messaging: 8 pre-canned messages + free text
101+
- Actual BLE Coded PHY negotiation for extended range
102+
- Hardened stream cleanup and connection quality warnings
103+
86104
## What's New (v1.4.0)
87105
Extended range and navigation update:
88106
- BLE Long Range: up to 1km range on supported devices (BLE 5.0 Coded PHY)

docs/link.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737
"price": "0",
3838
"priceCurrency": "USD"
3939
},
40-
"softwareVersion": "1.3.1",
40+
"softwareVersion": "1.5.1",
4141
"description": "Encrypted Bluetooth team coordination with offline MGRS maps. Track 2-8 team members, share waypoints, set boundaries. No cell towers, no servers, no accounts.",
4242
"screenshot": "https://redgridtactical.com/images/appstore_1_map_team.png",
4343
"url": "https://redgridtactical.com/link.html",

docs/roadmap.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,7 @@ <h1>Product <span class="accent">Roadmap</span></h1>
155155
<li>Emergency beacon with one-tap SOS and team alerts</li>
156156
<li>Tactical messaging (8 pre-canned + free text)</li>
157157
<li>Connection quality warnings and signal bars</li>
158+
<li>V1.5.1 patch: repaired Emergency Beacon wiring and Field Link scan/join flow</li>
158159
</ul>
159160
</div>
160161

docs/sitemap.xml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,43 +2,43 @@
22
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
33
<url>
44
<loc>https://redgridtactical.com/</loc>
5-
<lastmod>2026-03-22</lastmod>
5+
<lastmod>2026-04-10</lastmod>
66
<changefreq>weekly</changefreq>
77
<priority>1.0</priority>
88
</url>
99
<url>
1010
<loc>https://redgridtactical.com/link.html</loc>
11-
<lastmod>2026-03-22</lastmod>
11+
<lastmod>2026-04-10</lastmod>
1212
<changefreq>weekly</changefreq>
1313
<priority>0.9</priority>
1414
</url>
1515
<url>
1616
<loc>https://redgridtactical.com/mgrs.html</loc>
17-
<lastmod>2026-03-22</lastmod>
17+
<lastmod>2026-04-10</lastmod>
1818
<changefreq>weekly</changefreq>
1919
<priority>0.9</priority>
2020
</url>
2121
<url>
2222
<loc>https://redgridtactical.com/roadmap.html</loc>
23-
<lastmod>2026-03-22</lastmod>
23+
<lastmod>2026-04-10</lastmod>
2424
<changefreq>monthly</changefreq>
2525
<priority>0.7</priority>
2626
</url>
2727
<url>
2828
<loc>https://redgridtactical.com/about.html</loc>
29-
<lastmod>2026-03-22</lastmod>
29+
<lastmod>2026-04-10</lastmod>
3030
<changefreq>monthly</changefreq>
3131
<priority>0.6</priority>
3232
</url>
3333
<url>
3434
<loc>https://redgridtactical.com/privacy.html</loc>
35-
<lastmod>2026-03-22</lastmod>
35+
<lastmod>2026-04-10</lastmod>
3636
<changefreq>yearly</changefreq>
3737
<priority>0.3</priority>
3838
</url>
3939
<url>
4040
<loc>https://redgridtactical.com/terms.html</loc>
41-
<lastmod>2026-03-22</lastmod>
41+
<lastmod>2026-04-10</lastmod>
4242
<changefreq>yearly</changefreq>
4343
<priority>0.3</priority>
4444
</url>

ios/.gitignore

Lines changed: 35 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,35 @@
1-
**/dgph
2-
*.mode1v3
3-
*.mode2v3
4-
*.moved-aside
5-
*.pbxuser
6-
*.perspectivev3
7-
**/*sync/
8-
.sconsign.dblite
9-
.tags*
10-
**/.vagrant/
11-
**/DerivedData/
12-
Icon?
13-
**/Pods/
14-
**/.symlinks/
15-
profile
16-
xcuserdata
17-
**/.generated/
18-
Flutter/App.framework
19-
Flutter/Flutter.framework
20-
Flutter/Flutter.podspec
21-
Flutter/Generated.xcconfig
22-
Flutter/ephemeral/
23-
Flutter/app.flx
24-
Flutter/app.zip
25-
Flutter/flutter_assets/
26-
Flutter/flutter_export_environment.sh
27-
ServiceDefinitions.json
28-
Runner/GeneratedPluginRegistrant.*
29-
30-
# Exceptions to above rules.
31-
!default.mode1v3
32-
!default.mode2v3
33-
!default.pbxuser
34-
!default.perspectivev3
1+
**/dgph
2+
*.mode1v3
3+
*.mode2v3
4+
*.moved-aside
5+
*.pbxuser
6+
*.perspectivev3
7+
**/*sync/
8+
.sconsign.dblite
9+
.tags*
10+
**/.vagrant/
11+
**/DerivedData/
12+
Icon?
13+
**/Pods/
14+
**/.symlinks/
15+
profile
16+
xcuserdata
17+
**/.generated/
18+
Flutter/App.framework
19+
Flutter/Flutter.framework
20+
Flutter/Flutter.podspec
21+
Flutter/Generated.xcconfig
22+
Flutter/ephemeral/
23+
Flutter/app.flx
24+
Flutter/app.zip
25+
Flutter/flutter_assets/
26+
Flutter/flutter_export_environment.sh
27+
ServiceDefinitions.json
28+
Runner/GeneratedPluginRegistrant.*
29+
30+
# Exceptions to above rules.
31+
!default.mode1v3
32+
!default.mode2v3
33+
!default.pbxuser
34+
!default.perspectivev3
35+
ExportOptions.plist

ios/Podfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,17 @@ post_install do |installer|
5454
]
5555
end
5656
end
57+
58+
# Xcode 15+ workaround: DT_TOOLCHAIN_DIR is not allowed in LIBRARY_SEARCH_PATHS.
59+
# Rewrite every xcconfig under Pods/Target Support Files/ to replace
60+
# DT_TOOLCHAIN_DIR with TOOLCHAIN_DIR.
61+
require 'find'
62+
pods_dir = File.join(installer.sandbox.root, 'Target Support Files')
63+
Find.find(pods_dir) do |path|
64+
next unless path.end_with?('.xcconfig')
65+
text = File.read(path)
66+
if text.include?('DT_TOOLCHAIN_DIR')
67+
File.write(path, text.gsub('DT_TOOLCHAIN_DIR', 'TOOLCHAIN_DIR'))
68+
end
69+
end
5770
end

0 commit comments

Comments
 (0)