From fb383b0f47cc9e7d4d950f4f89f6db0127274c69 Mon Sep 17 00:00:00 2001 From: lowrt Date: Sat, 5 Sep 2026 09:07:24 +0800 Subject: [PATCH 1/5] chore(ios): remove outdated Bluetooth permission descriptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Platform: ios chore(zh-Hant): 移除過時的藍牙權限描述 chore(en-US): Remove outdated Bluetooth permission descriptions --- ios/Runner/Info.plist | 5 ----- 1 file changed, 5 deletions(-) diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist index 055e3eefe..9f8c6160c 100644 --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -2,7 +2,6 @@ - NSAppTransportSecurity NSAllowsLocalNetworking @@ -12,12 +11,8 @@ DPIP 需要你的位置,以提供你所在地的地震、天氣等災害警報。 NSLocationAlwaysAndWhenInUseUsageDescription DPIP 需要在背景持續存取你的位置,即使關閉 App 也能為你所在地推送地震、天氣等災害警報。 - NSBluetoothAlwaysUsageDescription DPIP 需要藍牙以連線 Meshtastic LoRa 無線電,在通訊中斷時收發緊急訊息。 - NSBluetoothPeripheralUsageDescription - DPIP 需要藍牙以連線 Meshtastic LoRa 無線電,在通訊中斷時收發緊急訊息。 CADisableMinimumFrameDurationOnPhone CFBundleDevelopmentRegion From d7dea15e7898c5ba922015297a0cea53824424ae Mon Sep 17 00:00:00 2001 From: lowrt Date: Sat, 5 Sep 2026 09:31:54 +0800 Subject: [PATCH 2/5] chore(ios): remove unused IosAwnFcmCore dependency --- .../xcshareddata/swiftpm/Package.resolved | 9 --------- 1 file changed, 9 deletions(-) diff --git a/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved index 2f2801e7f..11c5949ca 100644 --- a/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -99,15 +99,6 @@ "version" : "0.12.1" } }, - { - "identity" : "iosawnfcmcore", - "kind" : "remoteSourceControl", - "location" : "https://github.com/rafaelsetragni/IosAwnFcmCore.git", - "state" : { - "revision" : "4c914884b3c0213284df7bcd8237c469ed58f4d2", - "version" : "0.12.0" - } - }, { "identity" : "leveldb", "kind" : "remoteSourceControl", From 54af335d1b3d12ec1dc324434adfa9d2a663f4f3 Mon Sep 17 00:00:00 2001 From: lowrt Date: Sat, 5 Sep 2026 09:48:53 +0800 Subject: [PATCH 3/5] fix: translate iOS permission descriptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Platform: ios Fix(zh-Hant): 修正 iOS 權限說明缺少多語系翻譯 Fix(en-US): fix missing translations for iOS permission descriptions --- ios/Runner/Base.lproj/InfoPlist.strings | 5 +++-- ios/Runner/ja.lproj/InfoPlist.strings | 5 +++-- ios/Runner/ko.lproj/InfoPlist.strings | 5 +++-- ios/Runner/zh-Hant.lproj/InfoPlist.strings | 5 +++-- 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ios/Runner/Base.lproj/InfoPlist.strings b/ios/Runner/Base.lproj/InfoPlist.strings index 8e94895ec..84de0620f 100644 --- a/ios/Runner/Base.lproj/InfoPlist.strings +++ b/ios/Runner/Base.lproj/InfoPlist.strings @@ -1,3 +1,4 @@ "CFBundleDisplayName" = "DPIP"; -"NSLocationAlwaysAndWhenInUseUsageDescription" = "DPIP 需要在背景持續存取你的位置,即使關閉 App 也能為你所在地推送地震、天氣等災害警報。"; -"NSLocationWhenInUseUsageDescription" = "DPIP 需要你的位置,以提供你所在地的地震、天氣等災害警報。"; +"NSLocationAlwaysAndWhenInUseUsageDescription" = "DPIP needs continuous access to your location in the background, even when the app is closed, to send disaster alerts such as earthquake and weather alerts for your area."; +"NSLocationWhenInUseUsageDescription" = "DPIP needs your location to provide disaster alerts such as earthquake and weather alerts for your area."; +"NSBluetoothAlwaysUsageDescription" = "DPIP needs Bluetooth to connect to Meshtastic LoRa radios and send and receive emergency messages when communication is disrupted."; diff --git a/ios/Runner/ja.lproj/InfoPlist.strings b/ios/Runner/ja.lproj/InfoPlist.strings index 1cb19d1e3..721e918ff 100644 --- a/ios/Runner/ja.lproj/InfoPlist.strings +++ b/ios/Runner/ja.lproj/InfoPlist.strings @@ -1,3 +1,4 @@ "CFBundleDisplayName" = "DPIP防災"; -"NSLocationAlwaysAndWhenInUseUsageDescription" = "DPIP 需要在背景持續存取你的位置,即使關閉 App 也能為你所在地推送地震、天氣等災害警報。"; -"NSLocationWhenInUseUsageDescription" = "DPIP 需要你的位置,以提供你所在地的地震、天氣等災害警報。"; +"NSLocationAlwaysAndWhenInUseUsageDescription" = "DPIPは、Appを閉じている場合でも、お住まいの地域に地震や気象などの災害警報を通知するため、バックグラウンドで継続的に位置情報へアクセスする必要があります。"; +"NSLocationWhenInUseUsageDescription" = "DPIPは、お住まいの地域の地震や気象などの災害警報を提供するため、位置情報を使用します。"; +"NSBluetoothAlwaysUsageDescription" = "DPIPはMeshtastic LoRa無線機に接続し、通信が途絶した際に緊急メッセージを送受信するため、Bluetoothを使用します。"; diff --git a/ios/Runner/ko.lproj/InfoPlist.strings b/ios/Runner/ko.lproj/InfoPlist.strings index e36c3a311..98cc64ea5 100644 --- a/ios/Runner/ko.lproj/InfoPlist.strings +++ b/ios/Runner/ko.lproj/InfoPlist.strings @@ -1,3 +1,4 @@ "CFBundleDisplayName" = "DPIP 재해"; -"NSLocationAlwaysAndWhenInUseUsageDescription" = "DPIP 需要在背景持續存取你的位置,即使關閉 App 也能為你所在地推送地震、天氣等災害警報。"; -"NSLocationWhenInUseUsageDescription" = "DPIP 需要你的位置,以提供你所在地的地震、天氣等災害警報。"; +"NSLocationAlwaysAndWhenInUseUsageDescription" = "DPIP는 앱을 종료한 상태에서도 현재 지역의 지진, 기상 등의 재난 경보를 알려드릴 수 있도록 백그라운드에서 지속적으로 위치 정보에 접근해야 합니다."; +"NSLocationWhenInUseUsageDescription" = "DPIP는 현재 지역의 지진, 기상 등의 재난 경보를 제공하기 위해 위치 정보가 필요합니다."; +"NSBluetoothAlwaysUsageDescription" = "DPIP는 Meshtastic LoRa 무선 장치에 연결하고 통신이 두절되었을 때 긴급 메시지를 송수신하기 위해 Bluetooth를 사용합니다."; diff --git a/ios/Runner/zh-Hant.lproj/InfoPlist.strings b/ios/Runner/zh-Hant.lproj/InfoPlist.strings index 452b163f6..c88179568 100644 --- a/ios/Runner/zh-Hant.lproj/InfoPlist.strings +++ b/ios/Runner/zh-Hant.lproj/InfoPlist.strings @@ -1,3 +1,4 @@ "CFBundleDisplayName" = "DPIP 防災"; -"NSLocationAlwaysAndWhenInUseUsageDescription" = "DPIP 需要在背景持續存取你的位置,即使關閉 App 也能為你所在地推送地震、天氣等災害警報。"; -"NSLocationWhenInUseUsageDescription" = "DPIP 需要你的位置,以提供你所在地的地震、天氣等災害警報。"; +"NSLocationAlwaysAndWhenInUseUsageDescription" = "DPIP 需要在后台持续访问您的位置,即使关闭 App 也能为您所在地区推送地震、天气等灾害警报。"; +"NSLocationWhenInUseUsageDescription" = "DPIP 需要您的位置,以提供您所在地区的地震、天气等灾害警报。"; +"NSBluetoothAlwaysUsageDescription" = "DPIP 需要蓝牙以连接 Meshtastic LoRa 无线电设备,在通信中断时收发紧急消息。"; From 8ed802f7c7a797b980fc3efd4c5f729aeaed3d61 Mon Sep 17 00:00:00 2001 From: lowrt Date: Sat, 5 Sep 2026 12:00:57 +0800 Subject: [PATCH 4/5] chore(ios): revert --- .../xcshareddata/swiftpm/Package.resolved | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved index 11c5949ca..2f2801e7f 100644 --- a/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ b/ios/Runner.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -99,6 +99,15 @@ "version" : "0.12.1" } }, + { + "identity" : "iosawnfcmcore", + "kind" : "remoteSourceControl", + "location" : "https://github.com/rafaelsetragni/IosAwnFcmCore.git", + "state" : { + "revision" : "4c914884b3c0213284df7bcd8237c469ed58f4d2", + "version" : "0.12.0" + } + }, { "identity" : "leveldb", "kind" : "remoteSourceControl", From 40822ca2fa7c481420474280d9f6c7f4d1b0c757 Mon Sep 17 00:00:00 2001 From: lowrt Date: Sat, 5 Sep 2026 13:26:45 +0800 Subject: [PATCH 5/5] fix(ios): fix permission description translations MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Platform: ios Fix(zh-Hant): 修正 iOS 權限說明翻譯問題 Fix(en-US): fix iOS permission description translations --- ios/Runner.xcodeproj/project.pbxproj | 95 +++++++++++----------- ios/Runner/zh-Hans.lproj/InfoPlist.strings | 4 + ios/Runner/zh-Hant.lproj/InfoPlist.strings | 6 +- 3 files changed, 56 insertions(+), 49 deletions(-) create mode 100644 ios/Runner/zh-Hans.lproj/InfoPlist.strings diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index a4738f9d6..b80d3b508 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -7,37 +7,37 @@ objects = { /* Begin PBXBuildFile section */ - 05A9E1F31DB4B19A7C04393F /* rain.aiff in Resources */ = {isa = PBXBuildFile; fileRef = A382CD9DEA741E45DBF741D7 /* rain.aiff */; }; + 05A9E1F31DB4B19A7C04393F /* Sounds/rain.aiff in Resources */ = {isa = PBXBuildFile; fileRef = A382CD9DEA741E45DBF741D7 /* Sounds/rain.aiff */; }; 071504DB0F1524DF85241961 /* MapSnapshotPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = 797A71348A49484748BB3224 /* MapSnapshotPlugin.swift */; }; - 10D4BCAF9E098BDA400160FB /* tsunami.aiff in Resources */ = {isa = PBXBuildFile; fileRef = CCF0E2286072A9283A916C69 /* tsunami.aiff */; }; + 10D4BCAF9E098BDA400160FB /* Sounds/tsunami.aiff in Resources */ = {isa = PBXBuildFile; fileRef = CCF0E2286072A9283A916C69 /* Sounds/tsunami.aiff */; }; 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; - 17BD5D769AA990E7EE681203 /* eew_alert.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 4D00D2962CF4598B61D0C722 /* eew_alert.aiff */; }; + 17BD5D769AA990E7EE681203 /* Sounds/eew_alert.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 4D00D2962CF4598B61D0C722 /* Sounds/eew_alert.aiff */; }; 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; - DP1PF1REBASE0001PL1ST010 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DP1PF1REBASE0002PL1ST020 /* GoogleService-Info.plist */; }; 522508B9301F863A006148C2 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 522508B7301F863A006148C2 /* InfoPlist.strings */; }; - 72E4CBC23930C168D057AC64 /* warn.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 3AE87ED82FDB896B2B5C5F1B /* warn.aiff */; }; + 72E4CBC23930C168D057AC64 /* Sounds/warn.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 3AE87ED82FDB896B2B5C5F1B /* Sounds/warn.aiff */; }; 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 7884E8682EC3CC0700C636F2 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */; }; 78A318202AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage in Frameworks */ = {isa = PBXBuildFile; productRef = 78A3181F2AECB46A00862997 /* FlutterGeneratedPluginSwiftPackage */; }; 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - 9F74F772B6E8760DD47AB2FE /* normal.aiff in Resources */ = {isa = PBXBuildFile; fileRef = B916667D1B2356583B174E80 /* normal.aiff */; }; - A8D382D04B4ACD327E29F46B /* eq.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 682D0165E2FF3895C5B252C5 /* eq.aiff */; }; + 9F74F772B6E8760DD47AB2FE /* Sounds/normal.aiff in Resources */ = {isa = PBXBuildFile; fileRef = B916667D1B2356583B174E80 /* Sounds/normal.aiff */; }; + A8D382D04B4ACD327E29F46B /* Sounds/eq.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 682D0165E2FF3895C5B252C5 /* Sounds/eq.aiff */; }; AA0000000000000000000C02 /* CompassPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000C01 /* CompassPlugin.swift */; }; + AA0000000000000000000D02 /* DeviceInfoPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000D01 /* DeviceInfoPlugin.swift */; }; AA0000000000000000000E02 /* ScreenWakePlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000E01 /* ScreenWakePlugin.swift */; }; - AA0000000000000000000G02 /* LocationTrackStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000G01 /* LocationTrackStore.swift */; }; AA0000000000000000000F02 /* ApnsTokenPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000F01 /* ApnsTokenPlugin.swift */; }; - AA0000000000000000000D02 /* DeviceInfoPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000D01 /* DeviceInfoPlugin.swift */; }; - AE92AD9862B7A721B0924557 /* eew.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 7A6E88CB92902C0CACB07792 /* eew.aiff */; }; + AA0000000000000000000G02 /* LocationTrackStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA0000000000000000000G01 /* LocationTrackStore.swift */; }; + AE92AD9862B7A721B0924557 /* Sounds/eew.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 7A6E88CB92902C0CACB07792 /* Sounds/eew.aiff */; }; CAC4EF00000000000000B001 /* MapCachePlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAC4EF00000000000000B002 /* MapCachePlugin.swift */; }; CAC4EF00000000000000C001 /* BackgroundLocationPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAC4EF00000000000000C002 /* BackgroundLocationPlugin.swift */; }; CAC4EF00000000000000C101 /* BackgroundExecutionPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAC4EF00000000000000C102 /* BackgroundExecutionPlugin.swift */; }; CAC4EF00000000000000D001 /* StorageScanPlugin.swift in Sources */ = {isa = PBXBuildFile; fileRef = CAC4EF00000000000000D002 /* StorageScanPlugin.swift */; }; - DB8E84D957A6C2B12EEB0AB7 /* report.aiff in Resources */ = {isa = PBXBuildFile; fileRef = FD769D73A7C4BE3619C1F9FB /* report.aiff */; }; - E1EBD3F0B2991F7D60DF56C5 /* weather.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 762B2690D1D999F97D84162C /* weather.aiff */; }; - F56D5186166227E46D96919D /* info.aiff in Resources */ = {isa = PBXBuildFile; fileRef = F9BCED8E5498E9FD7A454E8F /* info.aiff */; }; + DB8E84D957A6C2B12EEB0AB7 /* Sounds/report.aiff in Resources */ = {isa = PBXBuildFile; fileRef = FD769D73A7C4BE3619C1F9FB /* Sounds/report.aiff */; }; + DP1PF1REBASE0001PL1ST010 /* GoogleService-Info.plist in Resources */ = {isa = PBXBuildFile; fileRef = DP1PF1REBASE0002PL1ST020 /* GoogleService-Info.plist */; }; + E1EBD3F0B2991F7D60DF56C5 /* Sounds/weather.aiff in Resources */ = {isa = PBXBuildFile; fileRef = 762B2690D1D999F97D84162C /* Sounds/weather.aiff */; }; + F56D5186166227E46D96919D /* Sounds/info.aiff in Resources */ = {isa = PBXBuildFile; fileRef = F9BCED8E5498E9FD7A454E8F /* Sounds/info.aiff */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -68,21 +68,22 @@ 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 3AE87ED82FDB896B2B5C5F1B /* warn.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/warn.aiff; sourceTree = ""; }; + 3AE87ED82FDB896B2B5C5F1B /* Sounds/warn.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/warn.aiff; sourceTree = ""; }; 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; - 4D00D2962CF4598B61D0C722 /* eew_alert.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/eew_alert.aiff; sourceTree = ""; }; + 4D00D2962CF4598B61D0C722 /* Sounds/eew_alert.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/eew_alert.aiff; sourceTree = ""; }; 522508B8301F863A006148C2 /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/InfoPlist.strings; sourceTree = ""; }; 522508BA301F8687006148C2 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/InfoPlist.strings"; sourceTree = ""; }; 522508BB301F868B006148C2 /* ja */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ja; path = ja.lproj/InfoPlist.strings; sourceTree = ""; }; 522508BC301F868E006148C2 /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = ""; }; - 682D0165E2FF3895C5B252C5 /* eq.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/eq.aiff; sourceTree = ""; }; + 52632D1A304BDB7500955176 /* zh-Hans */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hans"; path = "zh-Hans.lproj/InfoPlist.strings"; sourceTree = ""; }; + 682D0165E2FF3895C5B252C5 /* Sounds/eq.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/eq.aiff; sourceTree = ""; }; 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 762B2690D1D999F97D84162C /* weather.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/weather.aiff; sourceTree = ""; }; + 762B2690D1D999F97D84162C /* Sounds/weather.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/weather.aiff; sourceTree = ""; }; 7884E8672EC3CC0400C636F2 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; 78E0A7A72DC9AD7400C4905E /* FlutterGeneratedPluginSwiftPackage */ = {isa = PBXFileReference; lastKnownFileType = wrapper; name = FlutterGeneratedPluginSwiftPackage; path = Flutter/ephemeral/Packages/FlutterGeneratedPluginSwiftPackage; sourceTree = ""; }; 797A71348A49484748BB3224 /* MapSnapshotPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MapSnapshotPlugin.swift; sourceTree = ""; }; - 7A6E88CB92902C0CACB07792 /* eew.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/eew.aiff; sourceTree = ""; }; + 7A6E88CB92902C0CACB07792 /* Sounds/eew.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/eew.aiff; sourceTree = ""; }; 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; @@ -91,21 +92,21 @@ 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - DP1PF1REBASE0002PL1ST020 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; - A382CD9DEA741E45DBF741D7 /* rain.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/rain.aiff; sourceTree = ""; }; + A382CD9DEA741E45DBF741D7 /* Sounds/rain.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/rain.aiff; sourceTree = ""; }; AA0000000000000000000C01 /* CompassPlugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CompassPlugin.swift; sourceTree = ""; }; + AA0000000000000000000D01 /* DeviceInfoPlugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceInfoPlugin.swift; sourceTree = ""; }; AA0000000000000000000E01 /* ScreenWakePlugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScreenWakePlugin.swift; sourceTree = ""; }; - AA0000000000000000000G01 /* LocationTrackStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationTrackStore.swift; sourceTree = ""; }; AA0000000000000000000F01 /* ApnsTokenPlugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ApnsTokenPlugin.swift; sourceTree = ""; }; - AA0000000000000000000D01 /* DeviceInfoPlugin.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeviceInfoPlugin.swift; sourceTree = ""; }; - B916667D1B2356583B174E80 /* normal.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/normal.aiff; sourceTree = ""; }; + AA0000000000000000000G01 /* LocationTrackStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LocationTrackStore.swift; sourceTree = ""; }; + B916667D1B2356583B174E80 /* Sounds/normal.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/normal.aiff; sourceTree = ""; }; CAC4EF00000000000000B002 /* MapCachePlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = MapCachePlugin.swift; sourceTree = ""; }; CAC4EF00000000000000C002 /* BackgroundLocationPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BackgroundLocationPlugin.swift; sourceTree = ""; }; CAC4EF00000000000000C102 /* BackgroundExecutionPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = BackgroundExecutionPlugin.swift; sourceTree = ""; }; CAC4EF00000000000000D002 /* StorageScanPlugin.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; path = StorageScanPlugin.swift; sourceTree = ""; }; - CCF0E2286072A9283A916C69 /* tsunami.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/tsunami.aiff; sourceTree = ""; }; - F9BCED8E5498E9FD7A454E8F /* info.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/info.aiff; sourceTree = ""; }; - FD769D73A7C4BE3619C1F9FB /* report.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/report.aiff; sourceTree = ""; }; + CCF0E2286072A9283A916C69 /* Sounds/tsunami.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/tsunami.aiff; sourceTree = ""; }; + DP1PF1REBASE0002PL1ST020 /* GoogleService-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "GoogleService-Info.plist"; sourceTree = ""; }; + F9BCED8E5498E9FD7A454E8F /* Sounds/info.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/info.aiff; sourceTree = ""; }; + FD769D73A7C4BE3619C1F9FB /* Sounds/report.aiff */ = {isa = PBXFileReference; includeInIndex = 1; path = Sounds/report.aiff; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -190,16 +191,16 @@ CAC4EF00000000000000C002 /* BackgroundLocationPlugin.swift */, CAC4EF00000000000000C102 /* BackgroundExecutionPlugin.swift */, CAC4EF00000000000000D002 /* StorageScanPlugin.swift */, - 7A6E88CB92902C0CACB07792 /* eew.aiff */, - 4D00D2962CF4598B61D0C722 /* eew_alert.aiff */, - 682D0165E2FF3895C5B252C5 /* eq.aiff */, - F9BCED8E5498E9FD7A454E8F /* info.aiff */, - B916667D1B2356583B174E80 /* normal.aiff */, - A382CD9DEA741E45DBF741D7 /* rain.aiff */, - FD769D73A7C4BE3619C1F9FB /* report.aiff */, - CCF0E2286072A9283A916C69 /* tsunami.aiff */, - 3AE87ED82FDB896B2B5C5F1B /* warn.aiff */, - 762B2690D1D999F97D84162C /* weather.aiff */, + 7A6E88CB92902C0CACB07792 /* Sounds/eew.aiff */, + 4D00D2962CF4598B61D0C722 /* Sounds/eew_alert.aiff */, + 682D0165E2FF3895C5B252C5 /* Sounds/eq.aiff */, + F9BCED8E5498E9FD7A454E8F /* Sounds/info.aiff */, + B916667D1B2356583B174E80 /* Sounds/normal.aiff */, + A382CD9DEA741E45DBF741D7 /* Sounds/rain.aiff */, + FD769D73A7C4BE3619C1F9FB /* Sounds/report.aiff */, + CCF0E2286072A9283A916C69 /* Sounds/tsunami.aiff */, + 3AE87ED82FDB896B2B5C5F1B /* Sounds/warn.aiff */, + 762B2690D1D999F97D84162C /* Sounds/weather.aiff */, ); path = Runner; sourceTree = ""; @@ -278,6 +279,7 @@ "zh-Hant", ja, ko, + "zh-Hans", ); mainGroup = 97C146E51CF9000F007C117D; packageReferences = ( @@ -311,16 +313,16 @@ 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, 522508B9301F863A006148C2 /* InfoPlist.strings in Resources */, - AE92AD9862B7A721B0924557 /* eew.aiff in Resources */, - 17BD5D769AA990E7EE681203 /* eew_alert.aiff in Resources */, - A8D382D04B4ACD327E29F46B /* eq.aiff in Resources */, - F56D5186166227E46D96919D /* info.aiff in Resources */, - 9F74F772B6E8760DD47AB2FE /* normal.aiff in Resources */, - 05A9E1F31DB4B19A7C04393F /* rain.aiff in Resources */, - DB8E84D957A6C2B12EEB0AB7 /* report.aiff in Resources */, - 10D4BCAF9E098BDA400160FB /* tsunami.aiff in Resources */, - 72E4CBC23930C168D057AC64 /* warn.aiff in Resources */, - E1EBD3F0B2991F7D60DF56C5 /* weather.aiff in Resources */, + AE92AD9862B7A721B0924557 /* Sounds/eew.aiff in Resources */, + 17BD5D769AA990E7EE681203 /* Sounds/eew_alert.aiff in Resources */, + A8D382D04B4ACD327E29F46B /* Sounds/eq.aiff in Resources */, + F56D5186166227E46D96919D /* Sounds/info.aiff in Resources */, + 9F74F772B6E8760DD47AB2FE /* Sounds/normal.aiff in Resources */, + 05A9E1F31DB4B19A7C04393F /* Sounds/rain.aiff in Resources */, + DB8E84D957A6C2B12EEB0AB7 /* Sounds/report.aiff in Resources */, + 10D4BCAF9E098BDA400160FB /* Sounds/tsunami.aiff in Resources */, + 72E4CBC23930C168D057AC64 /* Sounds/warn.aiff in Resources */, + E1EBD3F0B2991F7D60DF56C5 /* Sounds/weather.aiff in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -407,6 +409,7 @@ 522508BA301F8687006148C2 /* zh-Hant */, 522508BB301F868B006148C2 /* ja */, 522508BC301F868E006148C2 /* ko */, + 52632D1A304BDB7500955176 /* zh-Hans */, ); name = InfoPlist.strings; sourceTree = ""; diff --git a/ios/Runner/zh-Hans.lproj/InfoPlist.strings b/ios/Runner/zh-Hans.lproj/InfoPlist.strings new file mode 100644 index 000000000..0a401cc87 --- /dev/null +++ b/ios/Runner/zh-Hans.lproj/InfoPlist.strings @@ -0,0 +1,4 @@ +"CFBundleDisplayName" = "DPIP 防灾"; +"NSLocationAlwaysAndWhenInUseUsageDescription" = "DPIP 需要在后台持续访问您的位置,即使关闭 App 也能为您所在地区推送地震、天气等灾害警报。"; +"NSLocationWhenInUseUsageDescription" = "DPIP 需要您的位置,以提供您所在地区的地震、天气等灾害警报。"; +"NSBluetoothAlwaysUsageDescription" = "DPIP 需要蓝牙以连接 Meshtastic LoRa 无线电设备,在通信中断时收发紧急消息。"; diff --git a/ios/Runner/zh-Hant.lproj/InfoPlist.strings b/ios/Runner/zh-Hant.lproj/InfoPlist.strings index c88179568..4ad489fb2 100644 --- a/ios/Runner/zh-Hant.lproj/InfoPlist.strings +++ b/ios/Runner/zh-Hant.lproj/InfoPlist.strings @@ -1,4 +1,4 @@ "CFBundleDisplayName" = "DPIP 防災"; -"NSLocationAlwaysAndWhenInUseUsageDescription" = "DPIP 需要在后台持续访问您的位置,即使关闭 App 也能为您所在地区推送地震、天气等灾害警报。"; -"NSLocationWhenInUseUsageDescription" = "DPIP 需要您的位置,以提供您所在地区的地震、天气等灾害警报。"; -"NSBluetoothAlwaysUsageDescription" = "DPIP 需要蓝牙以连接 Meshtastic LoRa 无线电设备,在通信中断时收发紧急消息。"; +"NSLocationAlwaysAndWhenInUseUsageDescription" = "DPIP 需要在背景持續存取你的位置,即使關閉 App 也能為你所在地推送地震、天氣等災害警報。"; +"NSLocationWhenInUseUsageDescription" = "DPIP 需要你的位置,以提供你所在地的地震、天氣等災害警報。"; +"NSBluetoothAlwaysUsageDescription" = "DPIP 需要藍牙以連線 Meshtastic LoRa 無線電,在通訊中斷時收發緊急訊息。";