fix(ios): declare Health update purpose

This commit is contained in:
joshavant
2026-07-13 19:12:21 -05:00
parent bab07e990a
commit cac32bb5d1
48 changed files with 236 additions and 3 deletions
+10 -2
View File
@@ -22349,13 +22349,21 @@
"kind": "plist-string",
"line": 76,
"path": "apps/ios/Sources/Info.plist",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"surface": "apple",
"id": "native.apple.89de9bad79f17038"
},
{
"kind": "plist-string",
"line": 78,
"path": "apps/ios/Sources/Info.plist",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
"surface": "apple",
"id": "native.apple.40ed4259ec869f1b"
},
{
"kind": "plist-string",
"line": 78,
"line": 80,
"path": "apps/ios/Sources/Info.plist",
"source": "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access.",
"surface": "apple",
@@ -22363,7 +22371,7 @@
},
{
"kind": "plist-string",
"line": 80,
"line": 82,
"path": "apps/ios/Sources/Info.plist",
"source": "OpenClaw uses on-device speech recognition for talk mode and voice wake.",
"surface": "apple",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "بعد تمكين ملخصات الصحة، يقرأ OpenClaw الخطوات والنوم ومعدل ضربات القلب أثناء الراحة والتمارين لمشاركة البيانات المجمعة المطلوبة مع موفر الذكاء الاصطناعي الذي أعددته."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "لا يقوم OpenClaw بكتابة بيانات Health أو تغييرها. تقرأ ملخصات Health الخطوات والنوم ومعدل ضربات القلب أثناء الراحة والتمارين لمشاركة الإجماليات المطلوبة مع مزوّد الذكاء الاصطناعي المُهيّأ لديك."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "Nachdem du Gesundheitszusammenfassungen aktiviert hast, liest OpenClaw Schritte, Schlaf, Ruhepuls und Trainings, um angeforderte aggregierte Daten mit deinem konfigurierten KI-Anbieter zu teilen."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw schreibt oder ändert keine Gesundheitsdaten. Gesundheitsübersichten lesen Schritte, Schlaf, Ruhepuls und Workouts, um angeforderte Zusammenfassungen mit Ihrem konfigurierten KI-Anbieter zu teilen."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "Después de activar Resúmenes de salud, OpenClaw lee los pasos, el sueño, la frecuencia cardíaca en reposo y los entrenamientos para compartir los datos agregados solicitados con el proveedor de IA que hayas configurado."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw no escribe ni modifica los datos de Salud. Los Resúmenes de Salud leen los pasos, el sueño, la frecuencia cardíaca en reposo y los entrenamientos para compartir los agregados solicitados con tu proveedor de IA configurado."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "پس از فعال‌کردن خلاصه‌های سلامت، OpenClaw گام‌ها، خواب، ضربان قلب در حالت استراحت و تمرین‌ها را می‌خواند تا داده‌های تجمیعی درخواستی را با ارائه‌دهنده هوش مصنوعی پیکربندی‌شده شما به اشتراک بگذارد."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw داده‌های Health را نمی‌نویسد یا تغییر نمی‌دهد. Health Summaries گام‌ها، خواب، ضربان قلب در حالت استراحت و تمرین‌ها را می‌خواند تا مجموعه‌های درخواستی را با ارائه‌دهنده AI پیکربندی‌شده‌تان به اشتراک بگذارد."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "Après lactivation des résumés de santé, OpenClaw lit les pas, le sommeil, la fréquence cardiaque au repos et les entraînements afin de partager les données agrégées demandées avec votre fournisseur dIA configuré."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw n'écrit ni ne modifie les données Santé. Les résumés de santé lisent les pas, le sommeil, la fréquence cardiaque au repos et les entraînements afin de partager les agrégats demandés avec le fournisseur d'IA que vous avez configuré."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "स्वास्थ्य सारांश चालू करने के बाद, OpenClaw अनुरोधित समेकित डेटा को आपके कॉन्फ़िगर किए गए AI प्रदाता के साथ साझा करने के लिए कदम, नींद, आराम की हृदय गति और वर्कआउट पढ़ता है।"
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw हेल्थ डेटा को लिखता या बदलता नहीं है। Health Summaries आपके कॉन्फ़िगर किए गए AI प्रदाता के साथ अनुरोधित समुच्चय साझा करने के लिए कदम, नींद, विश्राम हृदय गति और वर्कआउट पढ़ता है।"
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "Setelah Anda mengaktifkan Ringkasan Kesehatan, OpenClaw membaca langkah, tidur, detak jantung saat istirahat, dan olahraga untuk membagikan data agregat yang diminta kepada penyedia AI yang Anda konfigurasikan."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw tidak menulis atau mengubah data Health. Health Summaries membaca langkah, tidur, detak jantung istirahat, dan latihan untuk membagikan agregat yang diminta ke penyedia AI yang Anda konfigurasikan."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "Dopo aver abilitato i riepiloghi salute, OpenClaw legge passi, sonno, frequenza cardiaca a riposo e allenamenti per condividere i dati aggregati richiesti con il provider IA configurato."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw non scrive né modifica i dati Salute. I riepiloghi Salute leggono passi, sonno, frequenza cardiaca a riposo e allenamenti per condividere gli aggregati richiesti con il provider AI configurato."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "ヘルスケア概要を有効にすると、OpenClaw は歩数、睡眠、安静時心拍数、ワークアウトを読み取り、要求された集計データを設定済みの AI プロバイダーと共有します。"
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw はヘルスデータの書き込みや変更を行いません。ヘルスサマリーは、歩数、睡眠、安静時心拍数、ワークアウトを読み取り、リクエストされた集計データを設定済みの AI プロバイダーと共有します。"
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "건강 요약을 활성화하면 OpenClaw가 요청된 집계 데이터를 구성된 AI 제공업체와 공유하기 위해 걸음 수, 수면, 안정 시 심박수 및 운동을 읽습니다."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw는 건강 데이터를 작성하거나 변경하지 않습니다. 건강 요약은 걸음 수, 수면, 안정 시 심박수, 운동을 읽어 요청된 집계 정보를 구성된 AI 제공업체와 공유합니다."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "Nadat je Gezondheidsoverzichten hebt ingeschakeld, leest OpenClaw stappen, slaap, rusthartslag en work-outs om gevraagde geaggregeerde gegevens te delen met je geconfigureerde AI-provider."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw schrijft of wijzigt geen Health-gegevens. Gezondheidsoverzichten lezen stappen, slaap, rustpols en workouts om de gevraagde aggregaten te delen met je geconfigureerde AI-provider."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "Po włączeniu podsumowań zdrowia OpenClaw odczytuje kroki, sen, tętno spoczynkowe i treningi, aby udostępniać żądane dane zbiorcze skonfigurowanemu dostawcy AI."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw nie zapisuje ani nie zmienia danych aplikacji Zdrowie. Podsumowania zdrowia odczytują kroki, sen, tętno spoczynkowe i treningi, aby udostępniać żądane zestawienia skonfigurowanemu dostawcy AI."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "Depois que você ativa os Resumos de Saúde, o OpenClaw lê passos, sono, frequência cardíaca em repouso e exercícios para compartilhar os dados agregados solicitados com o provedor de IA configurado."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "O OpenClaw não grava nem altera dados de Saúde. Os Resumos de Saúde leem passos, sono, frequência cardíaca em repouso e treinos para compartilhar os agregados solicitados com o provedor de IA configurado."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "После включения сводок о здоровье OpenClaw считывает данные о шагах, сне, пульсе в состоянии покоя и тренировках, чтобы передавать запрошенные агрегированные данные настроенному поставщику ИИ."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw не записывает и не изменяет данные Health. Сводки Health считывают шаги, сон, пульс в покое и тренировки, чтобы передать запрошенные агрегированные данные вашему настроенному AI-провайдеру."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "När du har aktiverat Hälsosammanfattningar läser OpenClaw steg, sömn, vilopuls och träningspass för att dela begärda sammanställda data med din konfigurerade AI-leverantör."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw skriver inte till eller ändrar hälsodata. Hälsosammanfattningar läser steg, sömn, vilopuls och träningspass för att dela begärda sammanställningar med din konfigurerade AI-leverantör."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "หลังจากเปิดใช้สรุปข้อมูลสุขภาพ OpenClaw จะอ่านจำนวนก้าว การนอนหลับ อัตราการเต้นของหัวใจขณะพัก และการออกกำลังกาย เพื่อแชร์ข้อมูลสรุปรวมที่ร้องขอกับผู้ให้บริการ AI ที่คุณกำหนดค่าไว้"
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw ไม่เขียนหรือเปลี่ยนแปลงข้อมูล Health การสรุปสุขภาพจะอ่านจำนวนก้าว การนอน อัตราการเต้นของหัวใจขณะพัก และการออกกำลังกาย เพื่อแชร์ข้อมูลรวมที่ร้องขอกับผู้ให้บริการ AI ที่คุณกำหนดค่าไว้"
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "Sağlık Özetleri'ni etkinleştirdikten sonra OpenClaw, istenen toplu verileri yapılandırdığınız yapay zeka sağlayıcısıyla paylaşmak için adımları, uykuyu, dinlenme kalp atış hızını ve antrenmanları okur."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw, Sağlık verilerini yazmaz veya değiştirmez. Sağlık Özetleri; adımları, uykuyu, dinlenme kalp atış hızını ve antrenmanları okuyarak istenen toplu verileri yapılandırdığınız yapay zeka sağlayıcısıyla paylaşır."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "Після ввімкнення підсумків здоров’я OpenClaw зчитує кроки, сон, пульс у стані спокою та тренування, щоб передавати запитані агреговані дані налаштованому постачальнику ШІ."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw не записує і не змінює дані Health. Health Summaries зчитує кроки, сон, пульс у стані спокою та тренування, щоб надати запитані зведені дані вашому налаштованому AI-провайдеру."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "Sau khi bạn bật Tóm tắt sức khỏe, OpenClaw sẽ đọc số bước chân, giấc ngủ, nhịp tim lúc nghỉ và bài tập để chia sẻ dữ liệu tổng hợp được yêu cầu với nhà cung cấp AI mà bạn đã cấu hình."
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw không ghi hoặc thay đổi dữ liệu Sức khỏe. Tóm tắt Sức khỏe đọc số bước, giấc ngủ, nhịp tim khi nghỉ và các bài tập để chia sẻ các số liệu tổng hợp được yêu cầu với nhà cung cấp AI mà bạn đã cấu hình."
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "启用健康摘要后,OpenClaw 会读取步数、睡眠、静息心率和体能训练,以便与您配置的 AI 提供商共享请求的汇总数据。"
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw 不会写入或更改健康数据。健康摘要会读取步数、睡眠、静息心率和锻炼记录,以便与您配置的 AI 提供商共享所请求的汇总信息。"
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+5
View File
@@ -13968,6 +13968,11 @@
"source": "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "啟用健康摘要後,OpenClaw 會讀取步數、睡眠、靜止心率和體能訓練,以便與您設定的 AI 供應商分享要求的彙整資料。"
},
{
"id": "native.apple.89de9bad79f17038",
"source": "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.",
"translated": "OpenClaw 不會寫入或變更健康資料。健康摘要會讀取步數、睡眠、靜止心率和運動記錄,以將所要求的彙總資料分享給您設定的 AI 供應商。"
},
{
"id": "native.apple.40ed4259ec869f1b",
"source": "OpenClaw lets your assistant read photos you allow and lets you choose photos to share.",
+2
View File
@@ -72,6 +72,8 @@
<string>OpenClaw may use motion data to support device-aware interactions and automations.</string>
<key>NSHealthShareUsageDescription</key>
<string>After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.</string>
<key>NSHealthUpdateUsageDescription</key>
<string>OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>OpenClaw lets your assistant read photos you allow and lets you choose photos to share.</string>
<key>NSRemindersFullAccessUsageDescription</key>
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "قد يستخدم OpenClaw بيانات الحركة لدعم التفاعلات والأتمتة الواعية بالجهاز.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "بعد تمكين ملخصات الصحة، يقرأ OpenClaw الخطوات والنوم ومعدل ضربات القلب أثناء الراحة والتمارين لمشاركة البيانات المجمعة المطلوبة مع موفر الذكاء الاصطناعي الذي أعددته.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "لا يقوم OpenClaw بكتابة بيانات Health أو تغييرها. تقرأ ملخصات Health الخطوات والنوم ومعدل ضربات القلب أثناء الراحة والتمارين لمشاركة الإجماليات المطلوبة مع مزوّد الذكاء الاصطناعي المُهيّأ لديك.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "يتيح OpenClaw لمساعدك قراءة الصور التي تسمح بها، ويتيح لك اختيار الصور لمشاركتها.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw kann Bewegungsdaten verwenden, um gerätebewusste Interaktionen und Automatisierungen zu unterstützen.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "Nachdem du Gesundheitszusammenfassungen aktiviert hast, liest OpenClaw Schritte, Schlaf, Ruhepuls und Trainings, um angeforderte aggregierte Daten mit deinem konfigurierten KI-Anbieter zu teilen.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw schreibt oder ändert keine Gesundheitsdaten. Gesundheitsübersichten lesen Schritte, Schlaf, Ruhepuls und Workouts, um angeforderte Zusammenfassungen mit Ihrem konfigurierten KI-Anbieter zu teilen.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw ermöglicht deinem Assistenten, von dir erlaubte Fotos zu lesen, und lässt dich Fotos zum Teilen auswählen.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw puede usar datos de movimiento para admitir interacciones y automatizaciones conscientes del dispositivo.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "Después de activar Resúmenes de salud, OpenClaw lee los pasos, el sueño, la frecuencia cardíaca en reposo y los entrenamientos para compartir los datos agregados solicitados con el proveedor de IA que hayas configurado.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw no escribe ni modifica los datos de Salud. Los Resúmenes de Salud leen los pasos, el sueño, la frecuencia cardíaca en reposo y los entrenamientos para compartir los agregados solicitados con tu proveedor de IA configurado.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw permite que tu asistente lea las fotos que autorices y te permite elegir fotos para compartir.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw ممکن است از داده‌های حرکت برای پشتیبانی از تعاملات و خودکارسازی‌های آگاه از دستگاه استفاده کند.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "پس از فعال‌کردن خلاصه‌های سلامت، OpenClaw گام‌ها، خواب، ضربان قلب در حالت استراحت و تمرین‌ها را می‌خواند تا داده‌های تجمیعی درخواستی را با ارائه‌دهنده هوش مصنوعی پیکربندی‌شده شما به اشتراک بگذارد.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw داده‌های Health را نمی‌نویسد یا تغییر نمی‌دهد. Health Summaries گام‌ها، خواب، ضربان قلب در حالت استراحت و تمرین‌ها را می‌خواند تا مجموعه‌های درخواستی را با ارائه‌دهنده AI پیکربندی‌شده‌تان به اشتراک بگذارد.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw به دستیار شما اجازه می‌دهد عکس‌هایی را که مجاز می‌کنید بخواند و به شما امکان می‌دهد عکس‌هایی را برای اشتراک‌گذاری انتخاب کنید.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw peut utiliser les données de mouvement pour prendre en charge des interactions et automatisations adaptées à lappareil.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "Après lactivation des résumés de santé, OpenClaw lit les pas, le sommeil, la fréquence cardiaque au repos et les entraînements afin de partager les données agrégées demandées avec votre fournisseur dIA configuré.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw n'écrit ni ne modifie les données Santé. Les résumés de santé lisent les pas, le sommeil, la fréquence cardiaque au repos et les entraînements afin de partager les agrégats demandés avec le fournisseur d'IA que vous avez configuré.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw permet à votre assistant de lire les photos que vous autorisez et vous permet de choisir les photos à partager.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw device-aware इंटरैक्शन और ऑटोमेशन का समर्थन करने के लिए motion data का उपयोग कर सकता है.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "स्वास्थ्य सारांश चालू करने के बाद, OpenClaw अनुरोधित समेकित डेटा को आपके कॉन्फ़िगर किए गए AI प्रदाता के साथ साझा करने के लिए कदम, नींद, आराम की हृदय गति और वर्कआउट पढ़ता है।";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw हेल्थ डेटा को लिखता या बदलता नहीं है। Health Summaries आपके कॉन्फ़िगर किए गए AI प्रदाता के साथ अनुरोधित समुच्चय साझा करने के लिए कदम, नींद, विश्राम हृदय गति और वर्कआउट पढ़ता है।";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw आपके असिस्टेंट को आपकी अनुमति वाली फ़ोटो पढ़ने देता है और आपको साझा करने के लिए फ़ोटो चुनने देता है।";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw dapat menggunakan data gerak untuk mendukung interaksi dan automasi yang sadar perangkat.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "Setelah Anda mengaktifkan Ringkasan Kesehatan, OpenClaw membaca langkah, tidur, detak jantung saat istirahat, dan olahraga untuk membagikan data agregat yang diminta kepada penyedia AI yang Anda konfigurasikan.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw tidak menulis atau mengubah data Health. Health Summaries membaca langkah, tidur, detak jantung istirahat, dan latihan untuk membagikan agregat yang diminta ke penyedia AI yang Anda konfigurasikan.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw memungkinkan asisten Anda membaca foto yang Anda izinkan dan memungkinkan Anda memilih foto untuk dibagikan.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw può usare i dati di movimento per supportare interazioni e automazioni consapevoli del dispositivo.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "Dopo aver abilitato i riepiloghi salute, OpenClaw legge passi, sonno, frequenza cardiaca a riposo e allenamenti per condividere i dati aggregati richiesti con il provider IA configurato.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw non scrive né modifica i dati Salute. I riepiloghi Salute leggono passi, sonno, frequenza cardiaca a riposo e allenamenti per condividere gli aggregati richiesti con il provider AI configurato.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw consente al tuo assistente di leggere le foto che autorizzi e ti permette di scegliere le foto da condividere.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClawは、デバイス対応のインタラクションと自動化をサポートするためにモーションデータを使用する場合があります。";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "ヘルスケア概要を有効にすると、OpenClaw は歩数、睡眠、安静時心拍数、ワークアウトを読み取り、要求された集計データを設定済みの AI プロバイダーと共有します。";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw はヘルスデータの書き込みや変更を行いません。ヘルスサマリーは、歩数、睡眠、安静時心拍数、ワークアウトを読み取り、リクエストされた集計データを設定済みの AI プロバイダーと共有します。";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw は、許可した写真をアシスタントが読み取れるようにし、共有する写真を選択できるようにします。";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw는 기기 인식 상호작용 및 자동화를 지원하기 위해 동작 데이터를 사용할 수 있습니다.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "건강 요약을 활성화하면 OpenClaw가 요청된 집계 데이터를 구성된 AI 제공업체와 공유하기 위해 걸음 수, 수면, 안정 시 심박수 및 운동을 읽습니다.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw는 건강 데이터를 작성하거나 변경하지 않습니다. 건강 요약은 걸음 수, 수면, 안정 시 심박수, 운동을 읽어 요청된 집계 정보를 구성된 AI 제공업체와 공유합니다.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw가 허용한 사진을 어시스턴트가 읽을 수 있게 하고, 공유할 사진을 선택할 수 있게 합니다.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw kan bewegingsgegevens gebruiken ter ondersteuning van apparaatafhankelijke interacties en automatiseringen.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "Nadat je Gezondheidsoverzichten hebt ingeschakeld, leest OpenClaw stappen, slaap, rusthartslag en work-outs om gevraagde geaggregeerde gegevens te delen met je geconfigureerde AI-provider.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw schrijft of wijzigt geen Health-gegevens. Gezondheidsoverzichten lezen stappen, slaap, rustpols en workouts om de gevraagde aggregaten te delen met je geconfigureerde AI-provider.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw laat je assistent fotos lezen die je toestaat en laat je fotos kiezen om te delen.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw może używać danych o ruchu do obsługi interakcji i automatyzacji zależnych od urządzenia.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "Po włączeniu podsumowań zdrowia OpenClaw odczytuje kroki, sen, tętno spoczynkowe i treningi, aby udostępniać żądane dane zbiorcze skonfigurowanemu dostawcy AI.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw nie zapisuje ani nie zmienia danych aplikacji Zdrowie. Podsumowania zdrowia odczytują kroki, sen, tętno spoczynkowe i treningi, aby udostępniać żądane zestawienia skonfigurowanemu dostawcy AI.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw pozwala Twojemu asystentowi odczytywać zdjęcia, na które zezwolisz, oraz pozwala wybrać zdjęcia do udostępnienia.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "O OpenClaw pode usar dados de movimento para oferecer suporte a interações e automações sensíveis ao dispositivo.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "Depois que você ativa os Resumos de Saúde, o OpenClaw lê passos, sono, frequência cardíaca em repouso e exercícios para compartilhar os dados agregados solicitados com o provedor de IA configurado.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "O OpenClaw não grava nem altera dados de Saúde. Os Resumos de Saúde leem passos, sono, frequência cardíaca em repouso e treinos para compartilhar os agregados solicitados com o provedor de IA configurado.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "O OpenClaw permite que seu assistente leia as fotos que você autorizar e permite que você escolha fotos para compartilhar.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw может использовать данные о движении для поддержки взаимодействий и автоматизаций с учетом устройства.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "После включения сводок о здоровье OpenClaw считывает данные о шагах, сне, пульсе в состоянии покоя и тренировках, чтобы передавать запрошенные агрегированные данные настроенному поставщику ИИ.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw не записывает и не изменяет данные Health. Сводки Health считывают шаги, сон, пульс в покое и тренировки, чтобы передать запрошенные агрегированные данные вашему настроенному AI-провайдеру.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw позволяет вашему ассистенту читать разрешённые вами фотографии и позволяет вам выбирать фотографии для отправки.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw kan använda rörelsedata för att stödja enhetsmedvetna interaktioner och automatiseringar.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "När du har aktiverat Hälsosammanfattningar läser OpenClaw steg, sömn, vilopuls och träningspass för att dela begärda sammanställda data med din konfigurerade AI-leverantör.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw skriver inte till eller ändrar hälsodata. Hälsosammanfattningar läser steg, sömn, vilopuls och träningspass för att dela begärda sammanställningar med din konfigurerade AI-leverantör.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw låter din assistent läsa foton du tillåter och låter dig välja foton att dela.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw อาจใช้ข้อมูลการเคลื่อนไหวเพื่อรองรับการโต้ตอบและระบบอัตโนมัติที่รับรู้ถึงอุปกรณ์";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "หลังจากเปิดใช้สรุปข้อมูลสุขภาพ OpenClaw จะอ่านจำนวนก้าว การนอนหลับ อัตราการเต้นของหัวใจขณะพัก และการออกกำลังกาย เพื่อแชร์ข้อมูลสรุปรวมที่ร้องขอกับผู้ให้บริการ AI ที่คุณกำหนดค่าไว้";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw ไม่เขียนหรือเปลี่ยนแปลงข้อมูล Health การสรุปสุขภาพจะอ่านจำนวนก้าว การนอน อัตราการเต้นของหัวใจขณะพัก และการออกกำลังกาย เพื่อแชร์ข้อมูลรวมที่ร้องขอกับผู้ให้บริการ AI ที่คุณกำหนดค่าไว้";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw ช่วยให้ผู้ช่วยของคุณอ่านรูปภาพที่คุณอนุญาต และให้คุณเลือกรูปภาพที่จะแชร์ได้";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw, cihaza duyarlı etkileşimleri ve otomasyonları desteklemek için hareket verilerini kullanabilir.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "Sağlık Özetleri'ni etkinleştirdikten sonra OpenClaw, istenen toplu verileri yapılandırdığınız yapay zeka sağlayıcısıyla paylaşmak için adımları, uykuyu, dinlenme kalp atış hızını ve antrenmanları okur.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw, Sağlık verilerini yazmaz veya değiştirmez. Sağlık Özetleri; adımları, uykuyu, dinlenme kalp atış hızını ve antrenmanları okuyarak istenen toplu verileri yapılandırdığınız yapay zeka sağlayıcısıyla paylaşır.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw, asistanınızın izin verdiğiniz fotoğrafları okumasını sağlar ve paylaşılacak fotoğrafları seçmenize olanak tanır.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw може використовувати дані про рух для підтримки взаємодій і автоматизацій з урахуванням пристрою.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "Після ввімкнення підсумків здоров’я OpenClaw зчитує кроки, сон, пульс у стані спокою та тренування, щоб передавати запитані агреговані дані налаштованому постачальнику ШІ.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw не записує і не змінює дані Health. Health Summaries зчитує кроки, сон, пульс у стані спокою та тренування, щоб надати запитані зведені дані вашому налаштованому AI-провайдеру.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw дає змогу вашому асистенту читати дозволені вами фото й дає вам змогу вибирати фото для надсилання.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw có thể sử dụng dữ liệu chuyển động để hỗ trợ các tương tác và tự động hóa nhận biết thiết bị.";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "Sau khi bạn bật Tóm tắt sức khỏe, OpenClaw sẽ đọc số bước chân, giấc ngủ, nhịp tim lúc nghỉ và bài tập để chia sẻ dữ liệu tổng hợp được yêu cầu với nhà cung cấp AI mà bạn đã cấu hình.";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw không ghi hoặc thay đổi dữ liệu Sức khỏe. Tóm tắt Sức khỏe đọc số bước, giấc ngủ, nhịp tim khi nghỉ và các bài tập để chia sẻ các số liệu tổng hợp được yêu cầu với nhà cung cấp AI mà bạn đã cấu hình.";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw cho phép trợ lý của bạn đọc những ảnh bạn cho phép và cho phép bạn chọn ảnh để chia sẻ.";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw 可能会使用运动数据来支持设备感知的交互和自动化。";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "启用健康摘要后,OpenClaw 会读取步数、睡眠、静息心率和体能训练,以便与您配置的 AI 提供商共享请求的汇总数据。";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw 不会写入或更改健康数据。健康摘要会读取步数、睡眠、静息心率和锻炼记录,以便与您配置的 AI 提供商共享所请求的汇总信息。";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw 允许你的助手读取你允许的照片,并允许你选择要分享的照片。";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
@@ -21,6 +21,8 @@
"NSMotionUsageDescription" = "OpenClaw 可能會使用動作資料,以支援裝置感知的互動與自動化。";
/* OpenClaw source: "After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthShareUsageDescription" = "啟用健康摘要後,OpenClaw 會讀取步數、睡眠、靜止心率和體能訓練,以便與您設定的 AI 供應商分享要求的彙整資料。";
/* OpenClaw source: "OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider." */
"NSHealthUpdateUsageDescription" = "OpenClaw 不會寫入或變更健康資料。健康摘要會讀取步數、睡眠、靜止心率和運動記錄,以將所要求的彙總資料分享給您設定的 AI 供應商。";
/* OpenClaw source: "OpenClaw lets your assistant read photos you allow and lets you choose photos to share." */
"NSPhotoLibraryUsageDescription" = "OpenClaw 可讓您的助理讀取您允許的照片,並讓您選擇要分享的照片。";
/* OpenClaw source: "OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access." */
+1
View File
@@ -182,6 +182,7 @@ targets:
NSMicrophoneUsageDescription: OpenClaw uses the microphone for realtime chat, voice wake, push-to-talk, and voice notes.
NSMotionUsageDescription: OpenClaw may use motion data to support device-aware interactions and automations.
NSHealthShareUsageDescription: After you enable Health Summaries, OpenClaw reads steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.
NSHealthUpdateUsageDescription: OpenClaw does not write or change Health data. Health Summaries read steps, sleep, resting heart rate, and workouts to share requested aggregates with your configured AI provider.
NSPhotoLibraryUsageDescription: OpenClaw lets your assistant read photos you allow and lets you choose photos to share.
PHPhotoLibraryPreventAutomaticLimitedAccessAlert: true
NSRemindersFullAccessUsageDescription: OpenClaw uses your reminders to list, add, and complete tasks when you enable reminders access.
+15
View File
@@ -21,6 +21,7 @@ EXPECTED_APP_GROUP="group.ai.openclawfoundation.app.shared"
EXPECTED_PUSH_MODE="appStore"
PLIST_BUDDY_BIN="${IOS_VALIDATE_PLIST_BUDDY_BIN:-/usr/libexec/PlistBuddy}"
PLUTIL_BIN="${IOS_VALIDATE_PLUTIL_BIN:-plutil}"
CODESIGN_BIN="${IOS_VALIDATE_CODESIGN_BIN:-codesign}"
SECURITY_BIN="${IOS_VALIDATE_SECURITY_BIN:-security}"
UNZIP_BIN="${IOS_VALIDATE_UNZIP_BIN:-unzip}"
@@ -136,6 +137,18 @@ assert_plist_string() {
fi
}
assert_plist_nonempty_string() {
local plist="$1"
local key_path="$2"
local label="$3"
local actual
actual="$("${PLUTIL_BIN}" -extract "${key_path}" raw -expect string -o - "${plist}" 2>/dev/null || true)"
if [[ -z "${actual}" ]]; then
echo "Invalid IPA: ${label} must be a non-empty string." >&2
exit 1
fi
}
assert_plist_true() {
local plist="$1"
local key_path="$2"
@@ -208,6 +221,8 @@ assert_build_provenance() {
assert_plist_string "${info_plist}" "CFBundleIdentifier" "${EXPECTED_BUNDLE_ID}" "bundle identifier mismatch"
assert_plist_string "${info_plist}" "OpenClawPushMode" "${EXPECTED_PUSH_MODE}" "push mode mismatch"
assert_plist_nonempty_string "${info_plist}" "NSHealthShareUsageDescription" "Health share usage description"
assert_plist_nonempty_string "${info_plist}" "NSHealthUpdateUsageDescription" "Health update usage description"
assert_build_provenance
assert_plist_empty_or_absent "${info_plist}" "OpenClawPushRelayBaseURL" "push relay URL override"
assert_plist_key_absent "${info_plist}" "OpenClawPushTransport" "legacy push transport"
+1
View File
@@ -385,6 +385,7 @@ describe("Apple app i18n catalogs", () => {
expect(french).toContain('"NSCameraUsageDescription" = ');
expect(french).toContain('"NSMicrophoneUsageDescription" = ');
expect(french).toContain('"NSHealthUpdateUsageDescription" = ');
expect(watchChinese).toContain('"NSLocalNetworkUsageDescription" = ');
expect(shareGerman).toContain('"CFBundleDisplayName" = "OpenClaw Share";');
expect(activityJapanese).toContain('"CFBundleDisplayName" = "OpenClaw Activity";');
@@ -123,6 +123,25 @@ if (Array.isArray(current)) {
);
}
function writeFakePlutil(filePath: string): void {
writeExecutable(
filePath,
`#!/usr/bin/env node
const { readFileSync } = require("node:fs");
const extractIndex = process.argv.indexOf("-extract");
const expectIndex = process.argv.indexOf("-expect");
if (extractIndex < 0 || expectIndex < 0 || process.argv[expectIndex + 1] !== "string") process.exit(2);
const key = process.argv[extractIndex + 1];
const file = process.argv[process.argv.length - 1];
const xml = readFileSync(file, "utf8");
const escapedKey = key.replace(/[.*+?^\${}()|[\]\\]/g, "\\$&");
const match = xml.match(new RegExp("<key>" + escapedKey + "<\\/key>\\s*<string>([^<]*)<\\/string>"));
if (!match) process.exit(1);
process.stdout.write(match[1]);
`,
);
}
function writeFakeUnzip(filePath: string): void {
writeExecutable(
filePath,
@@ -189,12 +208,14 @@ async function writeValidFixture(
options: {
buildCommit?: string;
buildTimestamp?: string;
healthUpdateUsage?: boolean | string | null;
pushMode?: string;
legacyKey?: boolean;
} = {},
): Promise<{
ipaPath: string;
plistBuddy: string;
plutil: string;
codesign: string;
security: string;
unzip: string;
@@ -213,6 +234,18 @@ async function writeValidFixture(
plistString("OpenClawBuildTimestamp", options.buildTimestamp ?? BUILD_TIMESTAMP),
plistString("OpenClawPushMode", options.pushMode ?? "appStore"),
plistString("OpenClawPushRelayBaseURL", ""),
plistString(
"NSHealthShareUsageDescription",
"OpenClaw reads Health data for Health Summaries.",
),
options.healthUpdateUsage === null
? ""
: typeof options.healthUpdateUsage === "boolean"
? plistBool("NSHealthUpdateUsageDescription", options.healthUpdateUsage)
: plistString(
"NSHealthUpdateUsageDescription",
options.healthUpdateUsage ?? "OpenClaw reads Health data for Health Summaries.",
),
options.legacyKey ? plistString("OpenClawPushRelayProfile", "production") : "",
].join("");
writeFileSync(path.join(appDir, "Info.plist"), plist(infoBody), "utf8");
@@ -262,6 +295,8 @@ async function writeValidFixture(
const plistBuddy = path.join(binDir, "plistbuddy");
writeFakePlistBuddy(plistBuddy);
const plutil = path.join(binDir, "plutil");
writeFakePlutil(plutil);
const unzip = path.join(binDir, "unzip");
writeFakeUnzip(unzip);
const codesign = path.join(binDir, "codesign");
@@ -282,13 +317,14 @@ cat "${profilePath}"
);
const ipaPath = await writeIpaFixture(root);
return { ipaPath, plistBuddy, codesign, security, unzip };
return { ipaPath, plistBuddy, plutil, codesign, security, unzip };
}
function runValidator(
fixture: {
ipaPath: string;
plistBuddy: string;
plutil: string;
codesign: string;
security: string;
unzip: string;
@@ -312,6 +348,7 @@ function runValidator(
env: {
...process.env,
IOS_VALIDATE_PLIST_BUDDY_BIN: fixture.plistBuddy,
IOS_VALIDATE_PLUTIL_BIN: fixture.plutil,
IOS_VALIDATE_CODESIGN_BIN: fixture.codesign,
IOS_VALIDATE_SECURITY_BIN: fixture.security,
IOS_VALIDATE_UNZIP_BIN: fixture.unzip,
@@ -358,6 +395,28 @@ describe("scripts/ios-validate-app-store-ipa.sh", () => {
expect(result.stderr).toContain("push mode mismatch");
});
it("rejects an IPA without the Health update purpose string required by App Store Connect", async () => {
const root = mkdtempSync(path.join(os.tmpdir(), "openclaw-ios-ipa-"));
tempDirs.push(root);
const fixture = await writeValidFixture(root, { healthUpdateUsage: null });
const result = runValidator(fixture);
expect(result.ok).toBe(false);
expect(result.stderr).toContain("Health update usage description must be a non-empty string");
});
it("rejects a non-string Health update purpose value", async () => {
const root = mkdtempSync(path.join(os.tmpdir(), "openclaw-ios-ipa-"));
tempDirs.push(root);
const fixture = await writeValidFixture(root, { healthUpdateUsage: true });
const result = runValidator(fixture);
expect(result.ok).toBe(false);
expect(result.stderr).toContain("Health update usage description must be a non-empty string");
});
it("rejects legacy independently selectable production push keys", async () => {
const root = mkdtempSync(path.join(os.tmpdir(), "openclaw-ios-ipa-"));
tempDirs.push(root);