Compare commits
11 commits
77ddf095a1
...
43bc7f6f63
| Author | SHA1 | Date | |
|---|---|---|---|
| 43bc7f6f63 | |||
| 5e67e81f0a | |||
| c2285691a7 | |||
| de22655d72 | |||
| 3a9affac0d | |||
| cc6e5c0015 | |||
| f69e959eb6 | |||
| 2da80b0ca9 | |||
| d0be878993 | |||
| 457b9f3d5c | |||
| bf09f968a7 |
19 changed files with 403 additions and 124 deletions
28
CHANGELOG.md
28
CHANGELOG.md
|
|
@ -2,6 +2,34 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
All notable changes to this project will be documented in this file. See [commit-and-tag-version](https://github.com/absolute-version/commit-and-tag-version) for commit guidelines.
|
||||||
|
|
||||||
|
## [1.14.3](https://github.com/alerte-secours/as-app/compare/v1.14.2...v1.14.3) (2025-12-10)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **ios:** ok ([c228569](https://github.com/alerte-secours/as-app/commit/c2285691a75591bfa9e17bf20f710cab66c241ac))
|
||||||
|
|
||||||
|
## [1.14.2](https://github.com/alerte-secours/as-app/compare/v1.14.1...v1.14.2) (2025-12-09)
|
||||||
|
|
||||||
|
## [1.14.1](https://github.com/alerte-secours/as-app/compare/v1.14.0...v1.14.1) (2025-12-08)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **ios:** wip ([2da80b0](https://github.com/alerte-secours/as-app/commit/2da80b0ca963efdc6df3cc6f3d1c8c86fd4f5c50))
|
||||||
|
|
||||||
|
## [1.14.0](https://github.com/alerte-secours/as-app/compare/v1.13.11...v1.14.0) (2025-11-30)
|
||||||
|
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
* **android:** phone-call ([52fc3bc](https://github.com/alerte-secours/as-app/commit/52fc3bc24b2a2bf1fe5ae919cddca41d95b1053c))
|
||||||
|
* connect loader ([cccb491](https://github.com/alerte-secours/as-app/commit/cccb49134f55faf5f5d536e91509eba2743f2af8))
|
||||||
|
* **ios:** bundle export scipt ([457b9f3](https://github.com/alerte-secours/as-app/commit/457b9f3d5cb884551758df09bf69d09a179610db))
|
||||||
|
* **ios:** expo 53 upgrade crash and black screen ([bf09f96](https://github.com/alerte-secours/as-app/commit/bf09f968a7937ccfd90171cb12b74cd66d482466))
|
||||||
|
* **menu:** call emergency ([d755217](https://github.com/alerte-secours/as-app/commit/d7552171318cacb4a8df87add6462f49696b5d93))
|
||||||
|
* phone call ([492904c](https://github.com/alerte-secours/as-app/commit/492904cbe8a5ceec35a79610ea59cf5eaed42735))
|
||||||
|
|
||||||
## [1.13.13](https://github.com/alerte-secours/as-app/compare/v1.13.12...v1.13.13) (2025-10-23)
|
## [1.13.13](https://github.com/alerte-secours/as-app/compare/v1.13.12...v1.13.13) (2025-10-23)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -83,8 +83,8 @@ android {
|
||||||
applicationId 'com.alertesecours'
|
applicationId 'com.alertesecours'
|
||||||
minSdkVersion rootProject.ext.minSdkVersion
|
minSdkVersion rootProject.ext.minSdkVersion
|
||||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||||
versionCode 225
|
versionCode 229
|
||||||
versionName "1.13.13"
|
versionName "1.14.3"
|
||||||
multiDexEnabled true
|
multiDexEnabled true
|
||||||
testBuildType System.getProperty('testBuildType', 'debug')
|
testBuildType System.getProperty('testBuildType', 'debug')
|
||||||
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,6 @@ let config = {
|
||||||
appCompatVersion: "1.4.2",
|
appCompatVersion: "1.4.2",
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
"react-native-background-fetch",
|
|
||||||
"@maplibre/maplibre-react-native",
|
"@maplibre/maplibre-react-native",
|
||||||
"expo-location",
|
"expo-location",
|
||||||
"react-native-map-link",
|
"react-native-map-link",
|
||||||
|
|
|
||||||
|
|
@ -3,14 +3,16 @@
|
||||||
archiveVersion = 1;
|
archiveVersion = 1;
|
||||||
classes = {
|
classes = {
|
||||||
};
|
};
|
||||||
objectVersion = 46;
|
objectVersion = 54;
|
||||||
objects = {
|
objects = {
|
||||||
|
|
||||||
/* Begin PBXBuildFile section */
|
/* Begin PBXBuildFile section */
|
||||||
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
|
13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB01A68108700A75B9A /* AppDelegate.mm */; };
|
||||||
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; };
|
||||||
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; };
|
||||||
|
14D5B34E2ED75B470019B7A4 /* MapLibre in Frameworks */ = {isa = PBXBuildFile; productRef = 190140CCA04FF5320B13EF02 /* MapLibre */; };
|
||||||
1BBEED8C23934E2FB66E5E99 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA27B437DADB447888114546 /* noop-file.swift */; };
|
1BBEED8C23934E2FB66E5E99 /* noop-file.swift in Sources */ = {isa = PBXBuildFile; fileRef = BA27B437DADB447888114546 /* noop-file.swift */; };
|
||||||
|
C0F27A011234567800000002 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = C0F27A001234567800000001 /* AppDelegate.swift */; };
|
||||||
35CD05A718E2ABA5E9E4C339 /* Pods_AlerteSecours.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E5BBA8AFAF4DDE1BA21D931 /* Pods_AlerteSecours.framework */; };
|
35CD05A718E2ABA5E9E4C339 /* Pods_AlerteSecours.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E5BBA8AFAF4DDE1BA21D931 /* Pods_AlerteSecours.framework */; };
|
||||||
3D137242100D4373995DC4E1 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7ECA2CAAE2DA44D8B2037DD1 /* GoogleService-Info.plist */; };
|
3D137242100D4373995DC4E1 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = 7ECA2CAAE2DA44D8B2037DD1 /* GoogleService-Info.plist */; };
|
||||||
3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; };
|
3E461D99554A48A4959DE609 /* SplashScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */; };
|
||||||
|
|
@ -33,9 +35,10 @@
|
||||||
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = AlerteSecours/SplashScreen.storyboard; sourceTree = "<group>"; };
|
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = SplashScreen.storyboard; path = AlerteSecours/SplashScreen.storyboard; sourceTree = "<group>"; };
|
||||||
ABCB8E07F9F748F9B1CF7AF4 /* AlerteSecours-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "AlerteSecours-Bridging-Header.h"; path = "AlerteSecours/AlerteSecours-Bridging-Header.h"; sourceTree = "<group>"; };
|
ABCB8E07F9F748F9B1CF7AF4 /* AlerteSecours-Bridging-Header.h */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.c.h; name = "AlerteSecours-Bridging-Header.h"; path = "AlerteSecours/AlerteSecours-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||||
BA27B437DADB447888114546 /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "AlerteSecours/noop-file.swift"; sourceTree = "<group>"; };
|
BA27B437DADB447888114546 /* noop-file.swift */ = {isa = PBXFileReference; explicitFileType = undefined; fileEncoding = 4; includeInIndex = 0; lastKnownFileType = sourcecode.swift; name = "noop-file.swift"; path = "AlerteSecours/noop-file.swift"; sourceTree = "<group>"; };
|
||||||
|
C0F27A001234567800000001 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = AlerteSecours/AppDelegate.swift; sourceTree = "<group>"; };
|
||||||
BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = "<group>"; };
|
BB2F792C24A3F905000567C9 /* Expo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Expo.plist; sourceTree = "<group>"; };
|
||||||
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; };
|
||||||
F1755F69573E34927548F1C6 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; name = PrivacyInfo.xcprivacy; path = AlerteSecours/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
|
F1755F69573E34927548F1C6 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xml; name = PrivacyInfo.xcprivacy; path = AlerteSecours/PrivacyInfo.xcprivacy; sourceTree = "<group>"; };
|
||||||
FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-AlerteSecours/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
FAC715A2D49A985799AEE119 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-AlerteSecours/ExpoModulesProvider.swift"; sourceTree = "<group>"; };
|
||||||
/* End PBXFileReference section */
|
/* End PBXFileReference section */
|
||||||
|
|
||||||
|
|
@ -44,6 +47,7 @@
|
||||||
isa = PBXFrameworksBuildPhase;
|
isa = PBXFrameworksBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
|
14D5B34E2ED75B470019B7A4 /* MapLibre in Frameworks */,
|
||||||
35CD05A718E2ABA5E9E4C339 /* Pods_AlerteSecours.framework in Frameworks */,
|
35CD05A718E2ABA5E9E4C339 /* Pods_AlerteSecours.framework in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
|
@ -63,6 +67,7 @@
|
||||||
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */,
|
AA286B85B6C04FC6940260E9 /* SplashScreen.storyboard */,
|
||||||
7ECA2CAAE2DA44D8B2037DD1 /* GoogleService-Info.plist */,
|
7ECA2CAAE2DA44D8B2037DD1 /* GoogleService-Info.plist */,
|
||||||
BA27B437DADB447888114546 /* noop-file.swift */,
|
BA27B437DADB447888114546 /* noop-file.swift */,
|
||||||
|
C0F27A001234567800000001 /* AppDelegate.swift */,
|
||||||
ABCB8E07F9F748F9B1CF7AF4 /* AlerteSecours-Bridging-Header.h */,
|
ABCB8E07F9F748F9B1CF7AF4 /* AlerteSecours-Bridging-Header.h */,
|
||||||
F1755F69573E34927548F1C6 /* PrivacyInfo.xcprivacy */,
|
F1755F69573E34927548F1C6 /* PrivacyInfo.xcprivacy */,
|
||||||
);
|
);
|
||||||
|
|
@ -188,9 +193,13 @@
|
||||||
6261F4CAFAC24C76A6BFFF3F /* Fix Xcode 15 Bug */,
|
6261F4CAFAC24C76A6BFFF3F /* Fix Xcode 15 Bug */,
|
||||||
C81C81F52B15447FABB43839 /* Fix Xcode 15 Bug */,
|
C81C81F52B15447FABB43839 /* Fix Xcode 15 Bug */,
|
||||||
CF366B2D9A42438884440324 /* Fix Xcode 15 Bug */,
|
CF366B2D9A42438884440324 /* Fix Xcode 15 Bug */,
|
||||||
AE541D03A693440EB0578C34 /* Remove signature files (Xcode workaround) */,
|
|
||||||
BAD00DBFD7D44CD2956A18DF /* Fix Xcode 15 Bug */,
|
BAD00DBFD7D44CD2956A18DF /* Fix Xcode 15 Bug */,
|
||||||
13769CCD78FE49A199BF8B6D /* Remove signature files (Xcode workaround) */,
|
9E6F0A1338934BA5AD468D4B /* Fix Xcode 15 Bug */,
|
||||||
|
229987488EA44E69AA932D58 /* Fix Xcode 15 Bug */,
|
||||||
|
A891237ADBD54747890A99FB /* Fix Xcode 15 Bug */,
|
||||||
|
B700EE07E2A24654A0953D3B /* Remove signature files (Xcode workaround) */,
|
||||||
|
9E272D599E42446BB8DFD8D0 /* Fix Xcode 15 Bug */,
|
||||||
|
CBAD4F53ADB04F499371D5DE /* Remove signature files (Xcode workaround) */,
|
||||||
);
|
);
|
||||||
buildRules = (
|
buildRules = (
|
||||||
);
|
);
|
||||||
|
|
@ -923,6 +932,142 @@
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "if [ \"$XCODE_VERSION_MAJOR\" = \"1500\" ]; then\n echo \"Remove signature files (Xcode 15 workaround)\"\n find \"$BUILD_DIR/${CONFIGURATION}-iphoneos\" -name \"*.signature\" -type f | xargs -r rm\nfi";
|
shellScript = "if [ \"$XCODE_VERSION_MAJOR\" = \"1500\" ]; then\n echo \"Remove signature files (Xcode 15 workaround)\"\n find \"$BUILD_DIR/${CONFIGURATION}-iphoneos\" -name \"*.signature\" -type f | xargs -r rm\nfi";
|
||||||
};
|
};
|
||||||
|
9E6F0A1338934BA5AD468D4B /* Fix Xcode 15 Bug */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
name = "Fix Xcode 15 Bug";
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "if [ \"$XCODE_VERSION_MAJOR\" = \"1500\" ]; then
|
||||||
|
echo \"Remove signature files (Xcode 15 workaround)\"
|
||||||
|
find \"$BUILD_DIR/${CONFIGURATION}-iphoneos\" -name \"*.signature\" -type f | xargs -r rm
|
||||||
|
fi";
|
||||||
|
};
|
||||||
|
55D4C23AA23142E9AE24042B /* Remove signature files (Xcode workaround) */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
name = "Remove signature files (Xcode workaround)";
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "
|
||||||
|
echo \"Remove signature files (Xcode workaround)\";
|
||||||
|
rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\";
|
||||||
|
";
|
||||||
|
};
|
||||||
|
229987488EA44E69AA932D58 /* Fix Xcode 15 Bug */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
name = "Fix Xcode 15 Bug";
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "if [ \"$XCODE_VERSION_MAJOR\" = \"1500\" ]; then
|
||||||
|
echo \"Remove signature files (Xcode 15 workaround)\"
|
||||||
|
find \"$BUILD_DIR/${CONFIGURATION}-iphoneos\" -name \"*.signature\" -type f | xargs -r rm
|
||||||
|
fi";
|
||||||
|
};
|
||||||
|
1B0B11FFE0884C2B9A75B09D /* Remove signature files (Xcode workaround) */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
name = "Remove signature files (Xcode workaround)";
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "
|
||||||
|
echo \"Remove signature files (Xcode workaround)\";
|
||||||
|
rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\";
|
||||||
|
";
|
||||||
|
};
|
||||||
|
A891237ADBD54747890A99FB /* Fix Xcode 15 Bug */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
name = "Fix Xcode 15 Bug";
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "if [ \"$XCODE_VERSION_MAJOR\" = \"1500\" ]; then
|
||||||
|
echo \"Remove signature files (Xcode 15 workaround)\"
|
||||||
|
find \"$BUILD_DIR/${CONFIGURATION}-iphoneos\" -name \"*.signature\" -type f | xargs -r rm
|
||||||
|
fi";
|
||||||
|
};
|
||||||
|
B700EE07E2A24654A0953D3B /* Remove signature files (Xcode workaround) */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
name = "Remove signature files (Xcode workaround)";
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "
|
||||||
|
echo \"Remove signature files (Xcode workaround)\";
|
||||||
|
rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\";
|
||||||
|
";
|
||||||
|
};
|
||||||
|
9E272D599E42446BB8DFD8D0 /* Fix Xcode 15 Bug */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
name = "Fix Xcode 15 Bug";
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "if [ \"$XCODE_VERSION_MAJOR\" = \"1500\" ]; then
|
||||||
|
echo \"Remove signature files (Xcode 15 workaround)\"
|
||||||
|
find \"$BUILD_DIR/${CONFIGURATION}-iphoneos\" -name \"*.signature\" -type f | xargs -r rm
|
||||||
|
fi";
|
||||||
|
};
|
||||||
|
CBAD4F53ADB04F499371D5DE /* Remove signature files (Xcode workaround) */ = {
|
||||||
|
isa = PBXShellScriptBuildPhase;
|
||||||
|
buildActionMask = 2147483647;
|
||||||
|
files = (
|
||||||
|
);
|
||||||
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
|
name = "Remove signature files (Xcode workaround)";
|
||||||
|
inputPaths = (
|
||||||
|
);
|
||||||
|
outputPaths = (
|
||||||
|
);
|
||||||
|
shellPath = /bin/sh;
|
||||||
|
shellScript = "
|
||||||
|
echo \"Remove signature files (Xcode workaround)\";
|
||||||
|
rm -rf \"$CONFIGURATION_BUILD_DIR/MapLibre.xcframework-ios.signature\";
|
||||||
|
";
|
||||||
|
};
|
||||||
/* End PBXShellScriptBuildPhase section */
|
/* End PBXShellScriptBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXSourcesBuildPhase section */
|
/* Begin PBXSourcesBuildPhase section */
|
||||||
|
|
@ -934,6 +1079,7 @@
|
||||||
13B07FC11A68108700A75B9A /* main.m in Sources */,
|
13B07FC11A68108700A75B9A /* main.m in Sources */,
|
||||||
B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */,
|
B18059E884C0ABDD17F3DC3D /* ExpoModulesProvider.swift in Sources */,
|
||||||
1BBEED8C23934E2FB66E5E99 /* noop-file.swift in Sources */,
|
1BBEED8C23934E2FB66E5E99 /* noop-file.swift in Sources */,
|
||||||
|
C0F27A011234567800000002 /* AppDelegate.swift in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
|
@ -957,7 +1103,10 @@
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = AlerteSecours/Info.plist;
|
INFOPLIST_FILE = AlerteSecours/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 1.0;
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
|
|
@ -966,7 +1115,7 @@
|
||||||
);
|
);
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
|
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.alertesecours.alertesecours;
|
PRODUCT_BUNDLE_IDENTIFIER = com.alertesecours.alertesecours;
|
||||||
PRODUCT_NAME = AlerteSecours;
|
PRODUCT_NAME = "AlerteSecours";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "AlerteSecours/AlerteSecours-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "AlerteSecours/AlerteSecours-Bridging-Header.h";
|
||||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
|
|
@ -982,13 +1131,17 @@
|
||||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = AlerteSecours/AlerteSecours.entitlements;
|
CODE_SIGN_ENTITLEMENTS = AlerteSecours/AlerteSecours.entitlements;
|
||||||
|
CODE_SIGN_IDENTITY = "Apple Development";
|
||||||
CODE_SIGN_STYLE = Automatic;
|
CODE_SIGN_STYLE = Automatic;
|
||||||
CURRENT_PROJECT_VERSION = 1;
|
CURRENT_PROJECT_VERSION = 1;
|
||||||
DEVELOPMENT_TEAM = 2PZ49Y23LX;
|
DEVELOPMENT_TEAM = 2PZ49Y23LX;
|
||||||
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64;
|
"EXCLUDED_ARCHS[sdk=iphonesimulator*]" = "arm64";
|
||||||
INFOPLIST_FILE = AlerteSecours/Info.plist;
|
INFOPLIST_FILE = AlerteSecours/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
"$(inherited)",
|
||||||
|
"@executable_path/Frameworks",
|
||||||
|
);
|
||||||
MARKETING_VERSION = 1.0;
|
MARKETING_VERSION = 1.0;
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
|
|
@ -997,7 +1150,8 @@
|
||||||
);
|
);
|
||||||
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
|
OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE";
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = com.alertesecours.alertesecours;
|
PRODUCT_BUNDLE_IDENTIFIER = com.alertesecours.alertesecours;
|
||||||
PRODUCT_NAME = AlerteSecours;
|
PRODUCT_NAME = "AlerteSecours";
|
||||||
|
PROVISIONING_PROFILE_SPECIFIER = "";
|
||||||
SWIFT_OBJC_BRIDGING_HEADER = "AlerteSecours/AlerteSecours-Bridging-Header.h";
|
SWIFT_OBJC_BRIDGING_HEADER = "AlerteSecours/AlerteSecours-Bridging-Header.h";
|
||||||
SWIFT_VERSION = 5.0;
|
SWIFT_VERSION = 5.0;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
|
|
@ -1064,7 +1218,10 @@
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
|
"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
/usr/lib/swift,
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
|
LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
|
|
@ -1131,7 +1288,10 @@
|
||||||
"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
|
"${PODS_CONFIGURATION_BUILD_DIR}/React-graphics/React_graphics.framework/Headers/react/renderer/graphics/platform/ios",
|
||||||
);
|
);
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
IPHONEOS_DEPLOYMENT_TARGET = 15.1;
|
||||||
LD_RUNPATH_SEARCH_PATHS = "/usr/lib/swift $(inherited)";
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
|
/usr/lib/swift,
|
||||||
|
"$(inherited)",
|
||||||
|
);
|
||||||
LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
|
LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"$(inherited)\"";
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
OTHER_LDFLAGS = (
|
OTHER_LDFLAGS = (
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,10 @@
|
||||||
//
|
//
|
||||||
// Use this file to import your target's public headers that you would like to expose to Swift.
|
// Use this file to import your target's public headers that you would like to expose to Swift.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
#if __has_include(<React-RCTAppDelegate/RCTAppDelegate.h>)
|
||||||
|
#import <React-RCTAppDelegate/RCTAppDelegate.h>
|
||||||
|
#elif __has_include(<React_RCTAppDelegate/RCTAppDelegate.h>)
|
||||||
|
// for importing the header from framework, the dash will be transformed to underscore
|
||||||
|
#import <React_RCTAppDelegate/RCTAppDelegate.h>
|
||||||
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
#import <RCTAppDelegate.h>
|
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
#import <Expo/Expo.h>
|
|
||||||
|
|
||||||
@interface AppDelegate : EXAppDelegateWrapper
|
// Legacy Objective-C AppDelegate left in place for compatibility.
|
||||||
|
// The actual application delegate is implemented in Swift as `AppDelegate`
|
||||||
|
// (subclassing ExpoAppDelegate).
|
||||||
|
@interface LegacyAppDelegate : UIResponder <UIApplicationDelegate>
|
||||||
|
|
||||||
|
@property (nonatomic, strong) UIWindow *window;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
||||||
|
|
@ -1,75 +1,12 @@
|
||||||
#import "AppDelegate.h"
|
#import "AppDelegate.h"
|
||||||
// @generated begin react-native-background-fetch-import - expo prebuild (DO NOT MODIFY) sync-fb890e6efd6cc6e67ebbda1087e0a6d7e0bcc527
|
|
||||||
#import <TSBackgroundFetch/TSBackgroundFetch.h>
|
|
||||||
// @generated end react-native-background-fetch-import
|
|
||||||
#import <Firebase/Firebase.h>
|
#import <Firebase/Firebase.h>
|
||||||
|
|
||||||
#import <React/RCTBundleURLProvider.h>
|
@implementation LegacyAppDelegate
|
||||||
#import <React/RCTLinkingManager.h>
|
|
||||||
|
|
||||||
@implementation AppDelegate
|
// This legacy Objective-C AppDelegate is no longer used as the main
|
||||||
|
// application delegate. The app now uses the Swift-based
|
||||||
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
|
// `AppDelegate: ExpoAppDelegate` defined in AppDelegate.swift.
|
||||||
{
|
// We keep this stub implementation so that any generated references
|
||||||
// @generated begin @react-native-firebase/app-didFinishLaunchingWithOptions - expo prebuild (DO NOT MODIFY) sync-ecd111c37e49fdd1ed6354203cd6b1e2a38cccda
|
// to `LegacyAppDelegate` continue to compile.
|
||||||
[FIRApp configure];
|
|
||||||
// @generated end @react-native-firebase/app-didFinishLaunchingWithOptions
|
|
||||||
self.moduleName = @"main";
|
|
||||||
|
|
||||||
// You can add your custom initial props in the dictionary below.
|
|
||||||
// They will be passed down to the ViewController used by React Native.
|
|
||||||
self.initialProps = @{};
|
|
||||||
// @generated begin react-native-background-fetch-didFinishLaunchingWithOptions - expo prebuild (DO NOT MODIFY) sync-2d5ef5f3788ef11f6e72e5480fdbef5f7a21f0f0
|
|
||||||
[[TSBackgroundFetch sharedInstance] didFinishLaunching];
|
|
||||||
// @generated end react-native-background-fetch-didFinishLaunchingWithOptions
|
|
||||||
// @generated begin react-native-background-fetch-didFinishLaunching - expo prebuild (DO NOT MODIFY) sync-2d5ef5f3788ef11f6e72e5480fdbef5f7a21f0f0
|
|
||||||
[[TSBackgroundFetch sharedInstance] didFinishLaunching];
|
|
||||||
// @generated end react-native-background-fetch-didFinishLaunching
|
|
||||||
|
|
||||||
return [super application:application didFinishLaunchingWithOptions:launchOptions];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)sourceURLForBridge:(RCTBridge *)bridge
|
|
||||||
{
|
|
||||||
return [self bundleURL];
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSURL *)bundleURL
|
|
||||||
{
|
|
||||||
#if DEBUG
|
|
||||||
return [[RCTBundleURLProvider sharedSettings] jsBundleURLForBundleRoot:@".expo/.virtual-metro-entry"];
|
|
||||||
#else
|
|
||||||
return [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
// Linking API
|
|
||||||
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
|
|
||||||
return [super application:application openURL:url options:options] || [RCTLinkingManager application:application openURL:url options:options];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Universal Links
|
|
||||||
- (BOOL)application:(UIApplication *)application continueUserActivity:(nonnull NSUserActivity *)userActivity restorationHandler:(nonnull void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
|
|
||||||
BOOL result = [RCTLinkingManager application:application continueUserActivity:userActivity restorationHandler:restorationHandler];
|
|
||||||
return [super application:application continueUserActivity:userActivity restorationHandler:restorationHandler] || result;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
|
|
||||||
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
|
|
||||||
{
|
|
||||||
return [super application:application didRegisterForRemoteNotificationsWithDeviceToken:deviceToken];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
|
|
||||||
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
|
|
||||||
{
|
|
||||||
return [super application:application didFailToRegisterForRemoteNotificationsWithError:error];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Explicitly define remote notification delegates to ensure compatibility with some third-party libraries
|
|
||||||
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
|
|
||||||
{
|
|
||||||
return [super application:application didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
|
||||||
76
ios/AlerteSecours/AppDelegate.swift
Normal file
76
ios/AlerteSecours/AppDelegate.swift
Normal file
|
|
@ -0,0 +1,76 @@
|
||||||
|
import EXUpdates
|
||||||
|
import FirebaseCore
|
||||||
|
import React
|
||||||
|
import TSBackgroundFetch
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
@objc(AppDelegate)
|
||||||
|
class AppDelegate: RCTAppDelegate {
|
||||||
|
override func application(
|
||||||
|
_ application: UIApplication,
|
||||||
|
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
|
||||||
|
) -> Bool {
|
||||||
|
NSLog("[AppDelegate] didFinishLaunchingWithOptions (RCTAppDelegate)")
|
||||||
|
|
||||||
|
// Configure Firebase (react-native-firebase).
|
||||||
|
FirebaseApp.configure()
|
||||||
|
|
||||||
|
// Transistorsoft background fetch bootstrap.
|
||||||
|
TSBackgroundFetch.sharedInstance().didFinishLaunching()
|
||||||
|
NSLog("[AppDelegate] TSBackgroundFetch didFinishLaunching")
|
||||||
|
|
||||||
|
// Initialize expo-updates controller so AppController.sharedInstance can be used safely.
|
||||||
|
AppController.initializeWithoutStarting()
|
||||||
|
AppController.sharedInstance.start()
|
||||||
|
|
||||||
|
// Configure React Native root module.
|
||||||
|
self.moduleName = "main"
|
||||||
|
self.initialProps = [:]
|
||||||
|
|
||||||
|
let result = super.application(application, didFinishLaunchingWithOptions: launchOptions)
|
||||||
|
NSLog("[AppDelegate] super.application(...) -> %@", result ? "true" : "false")
|
||||||
|
return result
|
||||||
|
}
|
||||||
|
|
||||||
|
// MARK: - RCTBridgeDelegate / JS bundle location
|
||||||
|
|
||||||
|
@objc
|
||||||
|
override func sourceURL(for bridge: RCTBridge!) -> URL! {
|
||||||
|
#if DEBUG
|
||||||
|
let url = RCTBundleURLProvider.sharedSettings().jsBundleURL(
|
||||||
|
forBundleRoot: ".expo/.virtual-metro-entry",
|
||||||
|
fallbackExtension: nil
|
||||||
|
)
|
||||||
|
NSLog("[AppDelegate] sourceURL(for:) (DEBUG) -> %@", url?.absoluteString ?? "nil")
|
||||||
|
return url
|
||||||
|
#else
|
||||||
|
let url = self.bundleURL()
|
||||||
|
NSLog("[AppDelegate] sourceURL(for:) (RELEASE) -> %@", url?.absoluteString ?? "nil")
|
||||||
|
return url
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
@objc
|
||||||
|
override func bundleURL() -> URL! {
|
||||||
|
#if DEBUG
|
||||||
|
let url = RCTBundleURLProvider.sharedSettings().jsBundleURL(
|
||||||
|
forBundleRoot: ".expo/.virtual-metro-entry",
|
||||||
|
fallbackExtension: nil
|
||||||
|
)
|
||||||
|
NSLog("[AppDelegate] bundleURL() (DEBUG) -> %@", url?.absoluteString ?? "nil")
|
||||||
|
return url
|
||||||
|
#else
|
||||||
|
if let updatesURL = AppController.sharedInstance.launchAssetUrl() {
|
||||||
|
NSLog("[AppDelegate] bundleURL() (RELEASE) -> %@", updatesURL.absoluteString)
|
||||||
|
return updatesURL
|
||||||
|
}
|
||||||
|
let url = Bundle.main.url(forResource: "main", withExtension: "jsbundle")
|
||||||
|
if let url = url {
|
||||||
|
NSLog("[AppDelegate] bundleURL() (RELEASE fallback) -> %@", url.absoluteString)
|
||||||
|
} else {
|
||||||
|
NSLog("[AppDelegate] bundleURL() (RELEASE fallback) -> nil (main.jsbundle not found)")
|
||||||
|
}
|
||||||
|
return url
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -25,7 +25,7 @@
|
||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>1.13.13</string>
|
<string>1.14.3</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleURLTypes</key>
|
<key>CFBundleURLTypes</key>
|
||||||
|
|
@ -48,7 +48,7 @@
|
||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>225</string>
|
<string>229</string>
|
||||||
<key>ITSAppUsesNonExemptEncryption</key>
|
<key>ITSAppUsesNonExemptEncryption</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>LSApplicationQueriesSchemes</key>
|
<key>LSApplicationQueriesSchemes</key>
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,12 @@
|
||||||
#import <UIKit/UIKit.h>
|
#import <UIKit/UIKit.h>
|
||||||
|
#import "AlerteSecours-Swift.h"
|
||||||
#import "AppDelegate.h"
|
|
||||||
|
|
||||||
int main(int argc, char * argv[]) {
|
int main(int argc, char * argv[]) {
|
||||||
@autoreleasepool {
|
@autoreleasepool {
|
||||||
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
|
// Use the Swift ExpoAppDelegate-based AppDelegate as the principal class.
|
||||||
|
// The Objective-C runtime name of the Swift class is `AppDelegate`
|
||||||
|
// because it is annotated with `@objc(AppDelegate)` in AppDelegate.swift.
|
||||||
|
return UIApplicationMain(argc, argv, nil, @"AppDelegate");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,8 @@
|
||||||
//
|
import Foundation
|
||||||
// @generated
|
|
||||||
// A blank Swift file must be created for native modules with Swift files to work correctly.
|
/// Legacy RCTAppDelegate-based implementation removed.
|
||||||
//
|
/// The real application delegate is `AppDelegate: ExpoAppDelegate` in `AppDelegate.swift`.
|
||||||
|
/// This placeholder exists only to satisfy any stale Xcode references and has no effect
|
||||||
|
/// on application startup or expo-updates behavior.
|
||||||
|
@objc(NoopLegacyAppDelegate)
|
||||||
|
class NoopLegacyAppDelegate: NSObject {}
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@
|
||||||
#import <Foundation/Foundation.h>
|
#import <Foundation/Foundation.h>
|
||||||
#import "AppDelegate.h"
|
#import "AppDelegate.h"
|
||||||
#import <TSBackgroundFetch/TSBackgroundFetch.h>
|
#import <TSBackgroundFetch/TSBackgroundFetch.h>
|
||||||
|
#import <objc/runtime.h>
|
||||||
|
|
||||||
@implementation AppDelegate(AppDelegate)
|
@implementation AppDelegate(AppDelegate)
|
||||||
|
|
||||||
|
|
@ -20,3 +21,59 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|
||||||
|
// Guard against duplicate BGTaskScheduler registrations by TSBGTask.
|
||||||
|
// Crash observed:
|
||||||
|
// 'Launch handler for task with identifier com.transistorsoft has already been registered'
|
||||||
|
// thrown when BGTaskScheduler is asked to register the same identifier multiple times.
|
||||||
|
// We swizzle +[TSBGTask registerForTaskWithIdentifier:] to:
|
||||||
|
// - log each registration attempt
|
||||||
|
// - ignore subsequent attempts for the same identifier instead of crashing.
|
||||||
|
|
||||||
|
@interface TSBGTask : NSObject
|
||||||
|
+ (void)registerForTaskWithIdentifier:(NSString *)identifier;
|
||||||
|
@end
|
||||||
|
|
||||||
|
@implementation TSBGTask (ASGuard)
|
||||||
|
|
||||||
|
+ (void)load
|
||||||
|
{
|
||||||
|
static dispatch_once_t onceToken;
|
||||||
|
dispatch_once(&onceToken, ^{
|
||||||
|
Class cls = object_getClass((id)self);
|
||||||
|
SEL originalSelector = @selector(registerForTaskWithIdentifier:);
|
||||||
|
SEL swizzledSelector = @selector(as_registerForTaskWithIdentifier:);
|
||||||
|
|
||||||
|
Method originalMethod = class_getClassMethod(cls, originalSelector);
|
||||||
|
Method swizzledMethod = class_getClassMethod(cls, swizzledSelector);
|
||||||
|
|
||||||
|
if (originalMethod && swizzledMethod) {
|
||||||
|
method_exchangeImplementations(originalMethod, swizzledMethod);
|
||||||
|
NSLog(@"[TSBGTask+ASGuard] Swizzled +registerForTaskWithIdentifier:");
|
||||||
|
} else {
|
||||||
|
NSLog(@"[TSBGTask+ASGuard] Failed to swizzle +registerForTaskWithIdentifier: (original=%p, swizzled=%p)", originalMethod, swizzledMethod);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
+ (void)as_registerForTaskWithIdentifier:(NSString *)identifier
|
||||||
|
{
|
||||||
|
static NSMutableSet<NSString *> *as_registeredTaskIdentifiers;
|
||||||
|
static dispatch_once_t onceToken;
|
||||||
|
dispatch_once(&onceToken, ^{
|
||||||
|
as_registeredTaskIdentifiers = [NSMutableSet set];
|
||||||
|
});
|
||||||
|
|
||||||
|
if ([as_registeredTaskIdentifiers containsObject:identifier]) {
|
||||||
|
NSLog(@"[TSBGTask+ASGuard] Skipping duplicate BGTaskScheduler registration for identifier '%@'", identifier);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
NSLog(@"[TSBGTask+ASGuard] Registering BGTask identifier '%@'", identifier);
|
||||||
|
[as_registeredTaskIdentifiers addObject:identifier];
|
||||||
|
|
||||||
|
// Call original implementation (now swizzled).
|
||||||
|
[self as_registerForTaskWithIdentifier:identifier];
|
||||||
|
}
|
||||||
|
|
||||||
|
@end
|
||||||
|
|
|
||||||
|
|
@ -14,11 +14,6 @@
|
||||||
<true/>
|
<true/>
|
||||||
<key>manageAppVersionAndBuildNumber</key>
|
<key>manageAppVersionAndBuildNumber</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>provisioningProfiles</key>
|
|
||||||
<dict>
|
|
||||||
<key>com.alertesecours.alertesecours</key>
|
|
||||||
<string>match AppStore com.alertesecours.alertesecours</string>
|
|
||||||
</dict>
|
|
||||||
<key>destination</key>
|
<key>destination</key>
|
||||||
<string>export</string>
|
<string>export</string>
|
||||||
<key>distributionBundleIdentifier</key>
|
<key>distributionBundleIdentifier</key>
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "alerte-secours",
|
"name": "alerte-secours",
|
||||||
"version": "1.13.13",
|
"version": "1.14.3",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"start": "expo start --dev-client --private-key-path ./keys/private-key.pem",
|
"start": "expo start --dev-client --private-key-path ./keys/private-key.pem",
|
||||||
|
|
@ -50,8 +50,8 @@
|
||||||
"screenshot:android": "scripts/screenshot-android.sh"
|
"screenshot:android": "scripts/screenshot-android.sh"
|
||||||
},
|
},
|
||||||
"customExpoVersioning": {
|
"customExpoVersioning": {
|
||||||
"versionCode": 225,
|
"versionCode": 229,
|
||||||
"buildNumber": 225
|
"buildNumber": 229
|
||||||
},
|
},
|
||||||
"commit-and-tag-version": {
|
"commit-and-tag-version": {
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|
|
||||||
|
|
@ -7,28 +7,15 @@ set +a
|
||||||
|
|
||||||
# Print debug information
|
# Print debug information
|
||||||
echo "Debug information:"
|
echo "Debug information:"
|
||||||
echo "ASC_API_KEY_PATH: $ASC_API_KEY_PATH"
|
echo "Using local app-store signing via exportOptions.plist (method=app-store)"
|
||||||
echo "ASC_API_KEY_ID: $ASC_API_KEY_ID"
|
|
||||||
echo "ASC_API_ISSUER_ID: $ASC_API_ISSUER_ID"
|
|
||||||
echo "PROVIDER_ID: $PROVIDER_ID"
|
|
||||||
|
|
||||||
# Verify the auth key file exists
|
echo "Available code signing identities (security find-identity -v -p codesigning):"
|
||||||
if [ ! -f "$ASC_API_KEY_PATH" ]; then
|
xcrun security find-identity -v -p codesigning || echo "No code signing identities found or security tool error"
|
||||||
echo "Error: Authentication key file not found at: $ASC_API_KEY_PATH"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Auth key file exists at: $ASC_API_KEY_PATH"
|
# Execute xcodebuild using local signing (Apple Distribution certificate + Xcode-managed profiles)
|
||||||
echo "File permissions:"
|
|
||||||
ls -l "$ASC_API_KEY_PATH"
|
|
||||||
|
|
||||||
# Execute xcodebuild with the environment variables
|
|
||||||
cd ios && xcodebuild -exportArchive \
|
cd ios && xcodebuild -exportArchive \
|
||||||
-archivePath AlerteSecours.xcarchive \
|
-archivePath AlerteSecours.xcarchive \
|
||||||
-exportPath ./build \
|
-exportPath ./build \
|
||||||
-exportOptionsPlist exportOptions.plist \
|
-exportOptionsPlist exportOptions.plist \
|
||||||
-allowProvisioningUpdates \
|
-allowProvisioningUpdates \
|
||||||
-authenticationKeyID "$ASC_API_KEY_ID" \
|
|
||||||
-authenticationKeyIssuerID "$ASC_API_ISSUER_ID" \
|
|
||||||
-authenticationKeyPath "$ASC_API_KEY_PATH" \
|
|
||||||
-verbose
|
-verbose
|
||||||
|
|
|
||||||
BIN
src/assets/img/links/logo-appui-soutien.png
Normal file
BIN
src/assets/img/links/logo-appui-soutien.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.4 KiB |
|
|
@ -4,11 +4,12 @@ import { TouchableRipple } from "react-native-paper";
|
||||||
import { createStyles } from "~/theme";
|
import { createStyles } from "~/theme";
|
||||||
import Text from "~/components/Text";
|
import Text from "~/components/Text";
|
||||||
|
|
||||||
export default function AppButton({
|
export default function WebButton({
|
||||||
logo,
|
logo,
|
||||||
label,
|
label,
|
||||||
description,
|
description,
|
||||||
url,
|
url,
|
||||||
|
tel,
|
||||||
style,
|
style,
|
||||||
buttonStyle,
|
buttonStyle,
|
||||||
labelTextStyle,
|
labelTextStyle,
|
||||||
|
|
@ -17,8 +18,17 @@ export default function AppButton({
|
||||||
const styles = useStyles();
|
const styles = useStyles();
|
||||||
|
|
||||||
const openPress = useCallback(async () => {
|
const openPress = useCallback(async () => {
|
||||||
Linking.openURL(url);
|
if (tel) {
|
||||||
}, [url]);
|
const cleanTel = tel.replace(/\s+/g, "");
|
||||||
|
const target = cleanTel.startsWith("tel:") ? cleanTel : `tel:${cleanTel}`;
|
||||||
|
await Linking.openURL(target);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (url) {
|
||||||
|
await Linking.openURL(url);
|
||||||
|
}
|
||||||
|
}, [tel, url]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View style={[styles.container, style]}>
|
<View style={[styles.container, style]}>
|
||||||
|
|
|
||||||
12
src/containers/Links/WebLinks/AppuiSoutien.js
Normal file
12
src/containers/Links/WebLinks/AppuiSoutien.js
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
import WebButton from "~/components/Links/WebButton";
|
||||||
|
|
||||||
|
export default function WebLinkAppuiSoutien() {
|
||||||
|
return (
|
||||||
|
<WebButton
|
||||||
|
logo={require("~/assets/img/links/logo-appui-soutien.png")}
|
||||||
|
label="Appui Soutien – Montjean (16)"
|
||||||
|
description="Véhicule d’appui bénévole pour les petites communes dans un rayon d’environ 30 km autour de Montjean (16240) : renfort aux secours, dégagement de la voie publique, soutien logistique et aux sinistrés. Astreinte : 06 84 38 16 31."
|
||||||
|
tel="+33684381631"
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
@ -28,6 +28,7 @@ import WebLinkEmerga from "~/containers/Links/WebLinks/Emerga";
|
||||||
import WebLinkDeltaPlane from "~/containers/Links/WebLinks/DeltaPlane";
|
import WebLinkDeltaPlane from "~/containers/Links/WebLinks/DeltaPlane";
|
||||||
import WebLinkDroguesInfoService from "~/containers/Links/WebLinks/DroguesInfoService";
|
import WebLinkDroguesInfoService from "~/containers/Links/WebLinks/DroguesInfoService";
|
||||||
import WebLinkIJP from "~/containers/Links/WebLinks/IJP";
|
import WebLinkIJP from "~/containers/Links/WebLinks/IJP";
|
||||||
|
import WebLinkAppuiSoutien from "~/containers/Links/WebLinks/AppuiSoutien";
|
||||||
|
|
||||||
export default function Links() {
|
export default function Links() {
|
||||||
const styles = useStyles();
|
const styles = useStyles();
|
||||||
|
|
@ -56,6 +57,7 @@ export default function Links() {
|
||||||
<WebLinkIJP />
|
<WebLinkIJP />
|
||||||
<WebLinkDroguesInfoService />
|
<WebLinkDroguesInfoService />
|
||||||
<WebLinkDeltaPlane />
|
<WebLinkDeltaPlane />
|
||||||
|
<WebLinkAppuiSoutien />
|
||||||
</View>
|
</View>
|
||||||
<Title style={styles.title}>S'engager</Title>
|
<Title style={styles.title}>S'engager</Title>
|
||||||
<View style={styles.section}>
|
<View style={styles.section}>
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue