feat(ui): 更新应用图标和启动屏幕为新品牌标识并调整相关配置
更新应用图标、启动屏幕和相关配置以匹配新品牌标识,移除旧的 Sealife 图标文件并替换为新的 icon.icon 资源。同时更新 iOS 配置中的背景任务标识符以符合命名规范。调整统计页面头部 logo 尺寸和字体粗细以优化视觉效果。 - 替换所有平台的应用图标和启动图资源 - 更新 app.json、Info.plist 和各 imageset 配置文件 - 调整 statistics.tsx 中的 logo 样式 - 移除已废弃的腾讯云 COS 文档
25
app.json
@@ -4,7 +4,6 @@
|
|||||||
"slug": "digital-pilates",
|
"slug": "digital-pilates",
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
"orientation": "portrait",
|
"orientation": "portrait",
|
||||||
"icon": "./assets/images/Sealife.jpeg",
|
|
||||||
"scheme": "digitalpilates",
|
"scheme": "digitalpilates",
|
||||||
"userInterfaceStyle": "light",
|
"userInterfaceStyle": "light",
|
||||||
"newArchEnabled": true,
|
"newArchEnabled": true,
|
||||||
@@ -25,33 +24,15 @@
|
|||||||
"fetch",
|
"fetch",
|
||||||
"remote-notification"
|
"remote-notification"
|
||||||
]
|
]
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"android": {
|
"icon": "./assets/icon.icon"
|
||||||
"adaptiveIcon": {
|
|
||||||
"foregroundImage": "./assets/images/Sealife.jpeg",
|
|
||||||
"backgroundColor": "#ffffff"
|
|
||||||
},
|
|
||||||
"edgeToEdgeEnabled": true,
|
|
||||||
"package": "com.anonymous.digitalpilates",
|
|
||||||
"permissions": [
|
|
||||||
"android.permission.RECEIVE_BOOT_COMPLETED",
|
|
||||||
"android.permission.VIBRATE",
|
|
||||||
"android.permission.WAKE_LOCK",
|
|
||||||
"android.permission.RECORD_AUDIO"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"web": {
|
|
||||||
"bundler": "metro",
|
|
||||||
"output": "static",
|
|
||||||
"favicon": "./assets/images/Sealife.jpeg"
|
|
||||||
},
|
},
|
||||||
"plugins": [
|
"plugins": [
|
||||||
"expo-router",
|
"expo-router",
|
||||||
[
|
[
|
||||||
"expo-splash-screen",
|
"expo-splash-screen",
|
||||||
{
|
{
|
||||||
"image": "./assets/images/Sealife.jpeg",
|
"image": "./assets/icon.icon",
|
||||||
"imageWidth": 40,
|
"imageWidth": 40,
|
||||||
"resizeMode": "contain",
|
"resizeMode": "contain",
|
||||||
"backgroundColor": "#ffffff"
|
"backgroundColor": "#ffffff"
|
||||||
@@ -68,7 +49,7 @@
|
|||||||
[
|
[
|
||||||
"expo-notifications",
|
"expo-notifications",
|
||||||
{
|
{
|
||||||
"icon": "./assets/images/Sealife.jpeg",
|
"icon": "./assets/icon.icon",
|
||||||
"color": "#ffffff"
|
"color": "#ffffff"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -470,7 +470,7 @@ export default function ExploreScreen() {
|
|||||||
<View style={styles.headerContent}>
|
<View style={styles.headerContent}>
|
||||||
{/* 左边logo */}
|
{/* 左边logo */}
|
||||||
<Image
|
<Image
|
||||||
source={require('@/assets/images/Sealife.jpeg')}
|
source={require('@/assets/icon.icon/Assets/icon-1756312748268.png')}
|
||||||
style={styles.logoImage}
|
style={styles.logoImage}
|
||||||
resizeMode="cover"
|
resizeMode="cover"
|
||||||
/>
|
/>
|
||||||
@@ -680,8 +680,8 @@ const styles = StyleSheet.create({
|
|||||||
justifyContent: 'space-between',
|
justifyContent: 'space-between',
|
||||||
},
|
},
|
||||||
logoImage: {
|
logoImage: {
|
||||||
width: 36,
|
width: 28,
|
||||||
height: 36,
|
height: 28,
|
||||||
borderRadius: 20,
|
borderRadius: 20,
|
||||||
},
|
},
|
||||||
headerTextContainer: {
|
headerTextContainer: {
|
||||||
@@ -690,7 +690,7 @@ const styles = StyleSheet.create({
|
|||||||
},
|
},
|
||||||
headerTitle: {
|
headerTitle: {
|
||||||
fontSize: 16,
|
fontSize: 16,
|
||||||
fontWeight: '500',
|
fontWeight: '700',
|
||||||
color: '#192126',
|
color: '#192126',
|
||||||
},
|
},
|
||||||
debugButtonsContainer: {
|
debugButtonsContainer: {
|
||||||
|
|||||||
BIN
assets/icon.icon/Assets/icon-1756312748268.png
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
31
assets/icon.icon/icon.json
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"fill": "automatic",
|
||||||
|
"groups": [
|
||||||
|
{
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"blend-mode": "normal",
|
||||||
|
"glass": true,
|
||||||
|
"hidden": false,
|
||||||
|
"image-name": "icon-1756312748268.png",
|
||||||
|
"name": "icon-1756312748268",
|
||||||
|
"opacity": 1
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"shadow": {
|
||||||
|
"kind": "neutral",
|
||||||
|
"opacity": 0.5
|
||||||
|
},
|
||||||
|
"translucency": {
|
||||||
|
"enabled": true,
|
||||||
|
"value": 0.5
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"supported-platforms": {
|
||||||
|
"circles": [
|
||||||
|
"watchOS"
|
||||||
|
],
|
||||||
|
"squares": "shared"
|
||||||
|
}
|
||||||
|
}
|
||||||
174
docs/cos.md
@@ -1,174 +0,0 @@
|
|||||||
# 腾讯云 COS 上传集成说明
|
|
||||||
|
|
||||||
本文档记录本项目在前端(Expo/React Native)侧对腾讯云 COS 的接入方式与使用规范,包含配置、接口约定、上传用法、进度/取消/重试、URL 构建、权限与安全、常见问题等。
|
|
||||||
|
|
||||||
## 概览
|
|
||||||
- 依赖:`cos-js-sdk-v5`
|
|
||||||
- 临时密钥接口:`GET /api/users/cos-token`
|
|
||||||
- 统一封装:
|
|
||||||
- 配置:`constants/Cos.ts`
|
|
||||||
- 上传服务:`services/cos.ts`
|
|
||||||
- Hook:`hooks/useCosUpload.ts`
|
|
||||||
|
|
||||||
## 安装与依赖
|
|
||||||
已在 `package.json` 中添加:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"dependencies": {
|
|
||||||
"cos-js-sdk-v5": "^1.6.0"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
## 配置
|
|
||||||
编辑 `constants/Cos.ts`,填入实际 COS 参数:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
export const COS_BUCKET = 'your-bucket-125xxxxxxx';
|
|
||||||
export const COS_REGION = 'ap-shanghai';
|
|
||||||
export const COS_PUBLIC_BASE = 'https://your-bucket-125xxxxxxx.cos.ap-shanghai.myqcloud.com';
|
|
||||||
export const COS_KEY_PREFIX = 'uploads/';
|
|
||||||
```
|
|
||||||
|
|
||||||
说明:
|
|
||||||
- COS_PUBLIC_BASE:若桶或 CDN 具有公网访问,使用对应域名(建议 HTTPS)。若为私有桶,可忽略该项(前端不能直接拼公开 URL)。
|
|
||||||
- `buildCosKey` 会依据日期和随机串生成不重复 Key,可通过 `prefix`/`userId` 定制目录。
|
|
||||||
|
|
||||||
## 后端接口约定:/api/users/cos-token
|
|
||||||
- 方法:`GET`
|
|
||||||
- 鉴权:建议要求登录态,后端根据用户权限签发最小权限临时凭证。
|
|
||||||
- 响应体示例(关键字段):
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"credentials": {
|
|
||||||
"tmpSecretId": "TMPID...",
|
|
||||||
"tmpSecretKey": "TMPKEY...",
|
|
||||||
"sessionToken": "SESSION_TOKEN..."
|
|
||||||
},
|
|
||||||
"startTime": 1730000000,
|
|
||||||
"expiredTime": 1730001800
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
- 最小权限策略建议(示例,后端侧):
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"version": "2.0",
|
|
||||||
"statement": [
|
|
||||||
{
|
|
||||||
"action": [
|
|
||||||
"name/cos:PutObject",
|
|
||||||
"name/cos:InitiateMultipartUpload",
|
|
||||||
"name/cos:UploadPart",
|
|
||||||
"name/cos:CompleteMultipartUpload"
|
|
||||||
],
|
|
||||||
"effect": "allow",
|
|
||||||
"resource": [
|
|
||||||
"qcs::cos:ap-shanghai:uid/125xxxxxxx:your-bucket-125xxxxxxx/*"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
注意:对上传路径进行前缀限制(如 `uploads/*`)能进一步收敛权限范围。
|
|
||||||
|
|
||||||
## 前端用法一:Hook(推荐)
|
|
||||||
在页面/组件内使用 `useCosUpload`,支持进度、取消与重试。
|
|
||||||
|
|
||||||
```tsx
|
|
||||||
import { useCosUpload } from '@/hooks/useCosUpload';
|
|
||||||
import * as ImagePicker from 'expo-image-picker';
|
|
||||||
|
|
||||||
export default function Uploader() {
|
|
||||||
const { upload, progress, uploading, cancel } = useCosUpload({ prefix: 'images/', userId: 'uid-123' });
|
|
||||||
|
|
||||||
const pickAndUpload = async () => {
|
|
||||||
const res = await ImagePicker.launchImageLibraryAsync({ mediaTypes: ImagePicker.MediaTypeOptions.Images });
|
|
||||||
if (res.canceled || !res.assets?.[0]) return;
|
|
||||||
const asset = res.assets[0];
|
|
||||||
const result = await upload({ uri: asset.uri, name: asset.fileName, type: asset.mimeType });
|
|
||||||
console.log('uploaded:', result); // { key, url }
|
|
||||||
};
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
说明:
|
|
||||||
- `progress` 范围 0-1;`uploading` 指示进行中;可随时 `cancel()`。
|
|
||||||
- 未开启公网访问时,`url` 可能为空(需服务端签名下载)。
|
|
||||||
|
|
||||||
## 前端用法二:直接调用服务
|
|
||||||
`services/cos.ts` 提供基础方法:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
import { uploadWithRetry } from '@/services/cos';
|
|
||||||
|
|
||||||
const { key, etag } = await uploadWithRetry({
|
|
||||||
key: 'uploads/demo.png',
|
|
||||||
body: blob,
|
|
||||||
contentType: 'image/png'
|
|
||||||
});
|
|
||||||
```
|
|
||||||
|
|
||||||
- 进度回调:`onProgress: ({ percent }) => { ... }`
|
|
||||||
- 取消:传入 `signal: AbortSignal`
|
|
||||||
- 重试:`maxRetries`/`backoffMs` 配置指数退避
|
|
||||||
|
|
||||||
## URL 构建
|
|
||||||
若为公网可访问场景,使用:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
import { buildPublicUrl } from '@/constants/Cos';
|
|
||||||
const url = buildPublicUrl(key);
|
|
||||||
```
|
|
||||||
|
|
||||||
若为私有桶,请改走服务端生成临时下载链接或代理下载。
|
|
||||||
|
|
||||||
## 大文件与分片上传
|
|
||||||
当前默认使用 `putObject`。若需大文件/断点续传,建议切换 SDK 的分片接口 `sliceUploadFile`:
|
|
||||||
|
|
||||||
```ts
|
|
||||||
const taskId = cos.sliceUploadFile({
|
|
||||||
Bucket: COS_BUCKET,
|
|
||||||
Region: COS_REGION,
|
|
||||||
Key: key,
|
|
||||||
Body: fileOrBlob,
|
|
||||||
onProgress(progress) { /* ... */ }
|
|
||||||
}, (err, data) => { /* ... */ });
|
|
||||||
```
|
|
||||||
|
|
||||||
如需切换,可在 `services/cos.ts` 中将 `putObject` 替换为 `sliceUploadFile`,并保留同样的进度、取消与重试包装。
|
|
||||||
|
|
||||||
## CORS 与浏览器(如使用 Web)
|
|
||||||
- COS 控制台需配置 CORS,允许来源域名、方法(PUT/POST/OPTIONS)、请求头(含 `Authorization`、`x-cos-*` 等)、暴露头。
|
|
||||||
- 若通过自有域名/网关代理,也需在代理层正确透传 CORS 与签名头。
|
|
||||||
|
|
||||||
## 安全与最佳实践
|
|
||||||
- 永久密钥仅存在服务端,通过 `/api/users/cos-token` 颁发短期凭证。
|
|
||||||
- 严控临时凭证权限与有效期,并限制上传前缀。
|
|
||||||
- 前端仅持有短期凭证;错误重试次数受限,避免暴力重放。
|
|
||||||
|
|
||||||
## 常见问题排查
|
|
||||||
- 403/签名失败:确认服务端时间同步、`region/bucket`/`resource` 配置正确;临时密钥未过期。
|
|
||||||
- CORS 失败:检查 COS 跨域规则;确认需要的请求头(含 `Authorization`)均已放行。
|
|
||||||
- URL 访问 403:私有桶下请改用服务端签名下载;或为指定前缀开启公共读(谨慎)。
|
|
||||||
- MIME/ContentType:从 ImagePicker 取 `mimeType`,或按扩展名兜底设置。
|
|
||||||
|
|
||||||
## 测试清单
|
|
||||||
- 小图上传成功且进度递增、可取消。
|
|
||||||
- 取消后不再继续发片段;重试如期生效。
|
|
||||||
- 返回的 `key` 能通过 `buildPublicUrl` 拼出可访问地址(公网桶)。
|
|
||||||
- 临时密钥过期后,能够重新获取并继续上传。
|
|
||||||
|
|
||||||
## 变更点速记
|
|
||||||
- 依赖:`cos-js-sdk-v5`
|
|
||||||
- 新增:`constants/Cos.ts`、`services/cos.ts`、`hooks/useCosUpload.ts`
|
|
||||||
- 接口:`GET /api/users/cos-token`(返回临时凭证)
|
|
||||||
|
|
||||||
---
|
|
||||||
如需我将某页面接入示例按钮或改造为分片上传,请在需求中指明目标文件与交互期望。
|
|
||||||
@@ -34,7 +34,6 @@ export function useCosUpload(defaultOptions?: UseCosUploadOptions) {
|
|||||||
try {
|
try {
|
||||||
let res: any;
|
let res: any;
|
||||||
if (Platform.OS === 'web') {
|
if (Platform.OS === 'web') {
|
||||||
// Web:使用 Blob 走 cos-js-sdk-v5 分支
|
|
||||||
let body: any = null;
|
let body: any = null;
|
||||||
if (typeof file === 'string') {
|
if (typeof file === 'string') {
|
||||||
// 允许直接传 Base64/DataURL 字符串
|
// 允许直接传 Base64/DataURL 字符串
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
PODS:
|
PODS:
|
||||||
- boost (1.84.0)
|
- boost (1.84.0)
|
||||||
- DoubleConversion (1.1.6)
|
- DoubleConversion (1.1.6)
|
||||||
- EXApplication (7.0.6):
|
- EXApplication (7.0.7):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXConstants (18.0.8):
|
- EXConstants (18.0.8):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXImageLoader (6.0.0):
|
- EXImageLoader (6.0.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- React-Core
|
- React-Core
|
||||||
- EXNotifications (0.32.10):
|
- EXNotifications (0.32.11):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- Expo (54.0.1):
|
- Expo (54.0.1):
|
||||||
- boost
|
- boost
|
||||||
@@ -55,13 +55,13 @@ PODS:
|
|||||||
- ZXingObjC/PDF417
|
- ZXingObjC/PDF417
|
||||||
- ExpoFileSystem (19.0.11):
|
- ExpoFileSystem (19.0.11):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoFont (14.0.7):
|
- ExpoFont (14.0.8):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoGlassEffect (0.1.1):
|
- ExpoGlassEffect (0.1.2):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoHaptics (15.0.6):
|
- ExpoHaptics (15.0.6):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoHead (6.0.0):
|
- ExpoHead (6.0.1):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- RNScreens
|
- RNScreens
|
||||||
- ExpoImage (3.0.7):
|
- ExpoImage (3.0.7):
|
||||||
@@ -77,7 +77,7 @@ PODS:
|
|||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoLinearGradient (15.0.6):
|
- ExpoLinearGradient (15.0.6):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoLinking (8.0.7):
|
- ExpoLinking (8.0.8):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoModulesCore (3.0.15):
|
- ExpoModulesCore (3.0.15):
|
||||||
- boost
|
- boost
|
||||||
@@ -3419,10 +3419,10 @@ EXTERNAL SOURCES:
|
|||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90
|
boost: 7e761d76ca2ce687f7cc98e698152abd03a18f90
|
||||||
DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb
|
DoubleConversion: cb417026b2400c8f53ae97020b2be961b59470cb
|
||||||
EXApplication: f5219af375d2bcff2596ac5c586d3b62c587c0d8
|
EXApplication: 296622817d459f46b6c5fe8691f4aac44d2b79e7
|
||||||
EXConstants: 7e4654405af367ff908c863fe77a8a22d60bd37d
|
EXConstants: 7e4654405af367ff908c863fe77a8a22d60bd37d
|
||||||
EXImageLoader: 189e3476581efe3ad4d1d3fb4735b7179eb26f05
|
EXImageLoader: 189e3476581efe3ad4d1d3fb4735b7179eb26f05
|
||||||
EXNotifications: bfcda0c49edd979747e1e50340de7bb0e9729ef5
|
EXNotifications: 7a2975f4e282b827a0bc78bb1d232650cb569bbd
|
||||||
Expo: 449ff2805d3673354f533a360e001f556f0b2009
|
Expo: 449ff2805d3673354f533a360e001f556f0b2009
|
||||||
ExpoAppleAuthentication: 9eb1ec7213ee9c9797951df89975136db89bf8ac
|
ExpoAppleAuthentication: 9eb1ec7213ee9c9797951df89975136db89bf8ac
|
||||||
ExpoAsset: 84810d6fed8179f04d4a7a4a6b37028bbd726e26
|
ExpoAsset: 84810d6fed8179f04d4a7a4a6b37028bbd726e26
|
||||||
@@ -3430,15 +3430,15 @@ SPEC CHECKSUMS:
|
|||||||
ExpoBlur: 9bde58a4de1d24a02575d0e24290f2026ce8dc3a
|
ExpoBlur: 9bde58a4de1d24a02575d0e24290f2026ce8dc3a
|
||||||
ExpoCamera: ae1d6691b05b753261a845536d2b19a9788a8750
|
ExpoCamera: ae1d6691b05b753261a845536d2b19a9788a8750
|
||||||
ExpoFileSystem: 7b4a4f6c67a738e826fd816139bac9d098b3b084
|
ExpoFileSystem: 7b4a4f6c67a738e826fd816139bac9d098b3b084
|
||||||
ExpoFont: 74a14c605637c2d32337a2f542065408a8ca3454
|
ExpoFont: 86ceec09ffed1c99cfee36ceb79ba149074901b5
|
||||||
ExpoGlassEffect: 9aa58a46e8abe720971f2b588bc1e10d58728ba8
|
ExpoGlassEffect: 07bafe3374d7d24299582627d040a6c7e403c3f3
|
||||||
ExpoHaptics: e0912a9cf05ba958eefdc595f1990b8f89aa1f3f
|
ExpoHaptics: e0912a9cf05ba958eefdc595f1990b8f89aa1f3f
|
||||||
ExpoHead: 275ef6292a9ab92669fd9554f19e1b1bbb5aa986
|
ExpoHead: 9539b6c97faa57b2deb0414205e084b0a2bc15f1
|
||||||
ExpoImage: 18d9836939f8e271364a5a2a3566f099ea73b2e4
|
ExpoImage: 18d9836939f8e271364a5a2a3566f099ea73b2e4
|
||||||
ExpoImagePicker: 66195293e95879fa5ee3eb1319f10b5de0ffccbb
|
ExpoImagePicker: 66195293e95879fa5ee3eb1319f10b5de0ffccbb
|
||||||
ExpoKeepAwake: eba81dfb5728be8c46e382b9314dfa14f40d8764
|
ExpoKeepAwake: eba81dfb5728be8c46e382b9314dfa14f40d8764
|
||||||
ExpoLinearGradient: 74d67832cdb0d2ef91f718d50dd82b273ce2812e
|
ExpoLinearGradient: 74d67832cdb0d2ef91f718d50dd82b273ce2812e
|
||||||
ExpoLinking: dadcc1205351c1108b7c5bab4b7891e744fc8c89
|
ExpoLinking: f051f28e50ea9269ff539317c166adec81d9342d
|
||||||
ExpoModulesCore: 5d150c790fb491ab10fe431fb794014af841258f
|
ExpoModulesCore: 5d150c790fb491ab10fe431fb794014af841258f
|
||||||
ExpoQuickActions: fdbda7f5874aed3dd2b1d891ec00ab3300dc7541
|
ExpoQuickActions: fdbda7f5874aed3dd2b1d891ec00ab3300dc7541
|
||||||
ExpoSplashScreen: 1665809071bd907c6fdbfd9c09583ee4d51b41d4
|
ExpoSplashScreen: 1665809071bd907c6fdbfd9c09583ee4d51b41d4
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "Sealife.jpeg",
|
"filename" : "icon-1756312748268.png",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"platform" : "ios",
|
"platform" : "ios",
|
||||||
"size" : "1024x1024"
|
"size" : "1024x1024"
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 298 KiB |
|
After Width: | Height: | Size: 1.4 MiB |
@@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "SealifeSplash.jpeg",
|
"filename" : "icon-1756312748268.png",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"scale" : "1x"
|
"scale" : "1x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "SealifeSplash 1.jpeg",
|
"filename" : "icon-1756312748268 1.png",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"scale" : "2x"
|
"scale" : "2x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "SealifeSplash 2.jpeg",
|
"filename" : "icon-1756312748268 2.png",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"scale" : "3x"
|
"scale" : "3x"
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.5 MiB |
BIN
ios/digitalpilates/Images.xcassets/SplashScreenLogo.imageset/icon-1756312748268 1.png
vendored
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
ios/digitalpilates/Images.xcassets/SplashScreenLogo.imageset/icon-1756312748268 2.png
vendored
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
ios/digitalpilates/Images.xcassets/SplashScreenLogo.imageset/icon-1756312748268.png
vendored
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
@@ -1,17 +1,17 @@
|
|||||||
{
|
{
|
||||||
"images" : [
|
"images" : [
|
||||||
{
|
{
|
||||||
"filename" : "Sealife.jpeg",
|
"filename" : "icon-1756312748268.png",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"scale" : "1x"
|
"scale" : "1x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "未命名项目 (5).jpeg",
|
"filename" : "icon-1756312748268 1.png",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"scale" : "2x"
|
"scale" : "2x"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"filename" : "未命名项目 (5) 1.jpeg",
|
"filename" : "icon-1756312748268 2.png",
|
||||||
"idiom" : "universal",
|
"idiom" : "universal",
|
||||||
"scale" : "3x"
|
"scale" : "3x"
|
||||||
}
|
}
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 298 KiB |
BIN
ios/digitalpilates/Images.xcassets/logo.imageset/icon-1756312748268 1.png
vendored
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
ios/digitalpilates/Images.xcassets/logo.imageset/icon-1756312748268 2.png
vendored
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
BIN
ios/digitalpilates/Images.xcassets/logo.imageset/icon-1756312748268.png
vendored
Normal file
|
After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 744 KiB |
|
Before Width: | Height: | Size: 744 KiB |
@@ -4,7 +4,8 @@
|
|||||||
<dict>
|
<dict>
|
||||||
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
<key>BGTaskSchedulerPermittedIdentifiers</key>
|
||||||
<array>
|
<array>
|
||||||
<string>backgroundtask</string>
|
<string>com.anonymous.digitalpilates.task</string>
|
||||||
|
<string>com.expo.modules.backgroundtask.processing</string>
|
||||||
</array>
|
</array>
|
||||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="23727" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="EXPO-VIEWCONTROLLER-1">
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="24127" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" launchScreen="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="EXPO-VIEWCONTROLLER-1">
|
||||||
<device id="retina6_9" orientation="portrait" appearance="light"/>
|
<device id="retina6_9" orientation="portrait" appearance="light"/>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment identifier="iOS"/>
|
<deployment identifier="iOS"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="23721"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="24063"/>
|
||||||
<capability name="Named colors" minToolsVersion="9.0"/>
|
<capability name="Named colors" minToolsVersion="9.0"/>
|
||||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
</scene>
|
</scene>
|
||||||
</scenes>
|
</scenes>
|
||||||
<resources>
|
<resources>
|
||||||
<image name="SplashScreenLogo" width="682.66668701171875" height="682.66668701171875"/>
|
<image name="SplashScreenLogo" width="341.33334350585938" height="341.33334350585938"/>
|
||||||
<namedColor name="SplashScreenBackground">
|
<namedColor name="SplashScreenBackground">
|
||||||
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
<color red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||||
</namedColor>
|
</namedColor>
|
||||||
|
|||||||
100
package-lock.json
generated
@@ -15,10 +15,10 @@
|
|||||||
"@react-native-masked-view/masked-view": "^0.3.2",
|
"@react-native-masked-view/masked-view": "^0.3.2",
|
||||||
"@react-native-picker/picker": "^2.11.1",
|
"@react-native-picker/picker": "^2.11.1",
|
||||||
"@react-native-voice/voice": "^3.2.4",
|
"@react-native-voice/voice": "^3.2.4",
|
||||||
"@react-navigation/bottom-tabs": "^7.3.10",
|
"@react-navigation/bottom-tabs": "^7.4.7",
|
||||||
"@react-navigation/elements": "^2.3.8",
|
"@react-navigation/elements": "^2.6.4",
|
||||||
"@react-navigation/native": "^7.1.6",
|
"@react-navigation/native": "^7.1.17",
|
||||||
"@reduxjs/toolkit": "^2.8.2",
|
"@reduxjs/toolkit": "^2.9.0",
|
||||||
"@sentry/react-native": "~6.20.0",
|
"@sentry/react-native": "~6.20.0",
|
||||||
"@types/lodash": "^4.17.20",
|
"@types/lodash": "^4.17.20",
|
||||||
"cos-js-sdk-v5": "^1.6.0",
|
"cos-js-sdk-v5": "^1.6.0",
|
||||||
@@ -29,16 +29,16 @@
|
|||||||
"expo-blur": "~15.0.6",
|
"expo-blur": "~15.0.6",
|
||||||
"expo-camera": "~17.0.7",
|
"expo-camera": "~17.0.7",
|
||||||
"expo-constants": "~18.0.8",
|
"expo-constants": "~18.0.8",
|
||||||
"expo-font": "~14.0.7",
|
"expo-font": "~14.0.8",
|
||||||
"expo-glass-effect": "^0.1.1",
|
"expo-glass-effect": "^0.1.2",
|
||||||
"expo-haptics": "~15.0.6",
|
"expo-haptics": "~15.0.6",
|
||||||
"expo-image": "~3.0.7",
|
"expo-image": "~3.0.7",
|
||||||
"expo-image-picker": "~17.0.7",
|
"expo-image-picker": "~17.0.7",
|
||||||
"expo-linear-gradient": "~15.0.6",
|
"expo-linear-gradient": "~15.0.6",
|
||||||
"expo-linking": "~8.0.7",
|
"expo-linking": "~8.0.7",
|
||||||
"expo-notifications": "~0.32.10",
|
"expo-notifications": "~0.32.11",
|
||||||
"expo-quick-actions": "^5.0.0",
|
"expo-quick-actions": "^5.0.0",
|
||||||
"expo-router": "~6.0.0",
|
"expo-router": "~6.0.1",
|
||||||
"expo-splash-screen": "~31.0.8",
|
"expo-splash-screen": "~31.0.8",
|
||||||
"expo-status-bar": "~3.0.7",
|
"expo-status-bar": "~3.0.7",
|
||||||
"expo-symbols": "~1.0.6",
|
"expo-symbols": "~1.0.6",
|
||||||
@@ -2252,9 +2252,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@expo/schema-utils": {
|
"node_modules/@expo/schema-utils": {
|
||||||
"version": "0.1.6",
|
"version": "0.1.7",
|
||||||
"resolved": "https://registry.npmjs.org/@expo/schema-utils/-/schema-utils-0.1.6.tgz",
|
"resolved": "https://mirrors.tencent.com/npm/@expo/schema-utils/-/schema-utils-0.1.7.tgz",
|
||||||
"integrity": "sha512-arKkNlPZYD0uUxGPbSwV/6v4owmZcUNrXk9Vq/o+p2Eqt1DM9jIjbXwrqlmvkTsPkjUtNLDGB0EDiosVJ4OvDg==",
|
"integrity": "sha512-jWHoSuwRb5ZczjahrychMJ3GWZu54jK9ulNdh1d4OzAEq672K9E5yOlnlBsfIHWHGzUAT+0CL7Yt1INiXTz68g==",
|
||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@expo/sdk-runtime-versions": {
|
"node_modules/@expo/sdk-runtime-versions": {
|
||||||
@@ -2264,9 +2264,9 @@
|
|||||||
"license": "MIT"
|
"license": "MIT"
|
||||||
},
|
},
|
||||||
"node_modules/@expo/server": {
|
"node_modules/@expo/server": {
|
||||||
"version": "0.7.3",
|
"version": "0.7.4",
|
||||||
"resolved": "https://registry.npmjs.org/@expo/server/-/server-0.7.3.tgz",
|
"resolved": "https://mirrors.tencent.com/npm/@expo/server/-/server-0.7.4.tgz",
|
||||||
"integrity": "sha512-lmlpJrjC0PLspPIF8ZzAalpbCxqbsqLRzIpolT3gZP48H6039BOlb1hAWTVgZvXmWkpvlYbt0PYG9o9GZxkQuw==",
|
"integrity": "sha512-8bfRzL7h1Qgrmf3auR71sPAcAuxnmNkRJs+8enL8vZi2+hihevLhrayDu7P0A/XGEq7wySAGvBBFfIB00Et/AA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"abort-controller": "^3.0.0",
|
"abort-controller": "^3.0.0",
|
||||||
@@ -3893,12 +3893,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@react-navigation/bottom-tabs": {
|
"node_modules/@react-navigation/bottom-tabs": {
|
||||||
"version": "7.4.5",
|
"version": "7.4.7",
|
||||||
"resolved": "https://registry.npmjs.org/@react-navigation/bottom-tabs/-/bottom-tabs-7.4.5.tgz",
|
"resolved": "https://mirrors.tencent.com/npm/@react-navigation/bottom-tabs/-/bottom-tabs-7.4.7.tgz",
|
||||||
"integrity": "sha512-Kt2/E9O7G4Kvx/NYrMVCSk+RN5auZcLgfBeCf5/vH6/weCJOxBy15Wav+3HiehZLNcQ40FJ3PeNHF0CR04idSw==",
|
"integrity": "sha512-SQ4KuYV9yr3SV/thefpLWhAD0CU2CrBMG1l0w/QKl3GYuGWdN5OQmdQdmaPZGtsjjVOb+N9Qo7Tf6210P4TlpA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@react-navigation/elements": "^2.6.2",
|
"@react-navigation/elements": "^2.6.4",
|
||||||
"color": "^4.2.3"
|
"color": "^4.2.3"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@@ -3928,9 +3928,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@react-navigation/elements": {
|
"node_modules/@react-navigation/elements": {
|
||||||
"version": "2.6.2",
|
"version": "2.6.4",
|
||||||
"resolved": "https://registry.npmjs.org/@react-navigation/elements/-/elements-2.6.2.tgz",
|
"resolved": "https://mirrors.tencent.com/npm/@react-navigation/elements/-/elements-2.6.4.tgz",
|
||||||
"integrity": "sha512-F3xySYWSmzIKSRUlisRSvqE6wzafPJwlgP8hZmf5cnctIu+gJUYWX4e2Za4dQZCELg7luFQjj1ohPWPqm/ziUQ==",
|
"integrity": "sha512-O3X9vWXOEhAO56zkQS7KaDzL8BvjlwZ0LGSteKpt1/k6w6HONG+2Wkblrb057iKmehTkEkQMzMLkXiuLmN5x9Q==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"color": "^4.2.3",
|
"color": "^4.2.3",
|
||||||
@@ -3994,9 +3994,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@reduxjs/toolkit": {
|
"node_modules/@reduxjs/toolkit": {
|
||||||
"version": "2.8.2",
|
"version": "2.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/@reduxjs/toolkit/-/toolkit-2.8.2.tgz",
|
"resolved": "https://mirrors.tencent.com/npm/@reduxjs/toolkit/-/toolkit-2.9.0.tgz",
|
||||||
"integrity": "sha512-MYlOhQ0sLdw4ud48FoC5w0dH9VfWQjtCjreKwYTT3l+r427qYC5Y8PihNutepr8XrNaBUDQo9khWUwQxZaqt5A==",
|
"integrity": "sha512-fSfQlSRu9Z5yBkvsNhYF2rPS8cGXn/TZVrlwN1948QyZ8xMZ0JvP50S2acZNaf+o63u6aEeMjipFyksjIcWrog==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@standard-schema/spec": "^1.0.0",
|
"@standard-schema/spec": "^1.0.0",
|
||||||
@@ -7777,9 +7777,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/expo-application": {
|
"node_modules/expo-application": {
|
||||||
"version": "7.0.6",
|
"version": "7.0.7",
|
||||||
"resolved": "https://registry.npmjs.org/expo-application/-/expo-application-7.0.6.tgz",
|
"resolved": "https://mirrors.tencent.com/npm/expo-application/-/expo-application-7.0.7.tgz",
|
||||||
"integrity": "sha512-OrRQ1vDi1v+nF0bfGe0nWU/cZVN0EFysJ7Sj5ko8GuL8t6GidqhN3j7hw16hINZuWcEEfa0wAUXmNT1LMgLWog==",
|
"integrity": "sha512-Jt1/qqnoDUbZ+bK91+dHaZ1vrPDtRBOltRa681EeedkisqguuEeUx4UHqwVyDK2oHWsK6lO3ojetoA4h8OmNcg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"expo": "*"
|
"expo": "*"
|
||||||
@@ -7898,9 +7898,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/expo-font": {
|
"node_modules/expo-font": {
|
||||||
"version": "14.0.7",
|
"version": "14.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/expo-font/-/expo-font-14.0.7.tgz",
|
"resolved": "https://mirrors.tencent.com/npm/expo-font/-/expo-font-14.0.8.tgz",
|
||||||
"integrity": "sha512-jW6aEHUwn+SKizE1iJsaC0nLFb7ipy2wqUrceg+k7KyVZW74DRyDVjuJYzyuJE8BJutulsiYBzvx6K0axboULA==",
|
"integrity": "sha512-bTUHaJWRZ7ywP8dg3f+wfOwv6RwMV3mWT2CDUIhsK70GjNGlCtiWOCoHsA5Od/esPaVxqc37cCBvQGQRFStRlA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fontfaceobserver": "^2.1.0"
|
"fontfaceobserver": "^2.1.0"
|
||||||
@@ -7912,9 +7912,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/expo-glass-effect": {
|
"node_modules/expo-glass-effect": {
|
||||||
"version": "0.1.1",
|
"version": "0.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/expo-glass-effect/-/expo-glass-effect-0.1.1.tgz",
|
"resolved": "https://mirrors.tencent.com/npm/expo-glass-effect/-/expo-glass-effect-0.1.2.tgz",
|
||||||
"integrity": "sha512-81xXB2CVjgyg7gaq/fDVAOu/j43uTP0F6bI0sah81v3/guA+YfSM3QjyfegIVQPUkX/9AP2zkU9ihkHEZQv7pg==",
|
"integrity": "sha512-25PZqYhRZ6EfJkhTzxthxvcXM5g32vn+GEzKc4+JJ7Qyk52Csxzw5y68Ge2opGF3y3JJ6VENXM07FnTgpuoK2w==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"expo": "*",
|
"expo": "*",
|
||||||
@@ -7991,12 +7991,12 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/expo-linking": {
|
"node_modules/expo-linking": {
|
||||||
"version": "8.0.7",
|
"version": "8.0.8",
|
||||||
"resolved": "https://registry.npmjs.org/expo-linking/-/expo-linking-8.0.7.tgz",
|
"resolved": "https://mirrors.tencent.com/npm/expo-linking/-/expo-linking-8.0.8.tgz",
|
||||||
"integrity": "sha512-DCPEDg522ryJp752kcajGR8kWgQfKMc/YbjzApb4Uzm2kJNW+0JXrIwsLPTl/mn9XxcOkGrE81B1L5EwQZKHkw==",
|
"integrity": "sha512-MyeMcbFDKhXh4sDD1EHwd0uxFQNAc6VCrwBkNvvvufUsTYFq3glTA9Y8a+x78CPpjNqwNAamu74yIaIz7IEJyg==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"expo-constants": "~18.0.7",
|
"expo-constants": "~18.0.8",
|
||||||
"invariant": "^2.2.4"
|
"invariant": "^2.2.4"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
@@ -8035,18 +8035,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/expo-notifications": {
|
"node_modules/expo-notifications": {
|
||||||
"version": "0.32.10",
|
"version": "0.32.11",
|
||||||
"resolved": "https://registry.npmjs.org/expo-notifications/-/expo-notifications-0.32.10.tgz",
|
"resolved": "https://mirrors.tencent.com/npm/expo-notifications/-/expo-notifications-0.32.11.tgz",
|
||||||
"integrity": "sha512-5o0ifzTk6rLp+SMLZZcCrR5e6WseFG9gnF6rsomLegFR549pQQfWYiKz9KNic0Rnm81xYH4csgAxhND3E1aB0g==",
|
"integrity": "sha512-4rLWC9Q4B7aQywXn9cKAlNY4p00CYKLJ23qZ0Pp/whkX0NxmI4MwJ20YhreV08gjHTTTWHpYU7jqYWpsjtPIxA==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@expo/image-utils": "^0.8.6",
|
"@expo/image-utils": "^0.8.7",
|
||||||
"@ide/backoff": "^1.0.0",
|
"@ide/backoff": "^1.0.0",
|
||||||
"abort-controller": "^3.0.0",
|
"abort-controller": "^3.0.0",
|
||||||
"assert": "^2.0.0",
|
"assert": "^2.0.0",
|
||||||
"badgin": "^1.1.5",
|
"badgin": "^1.1.5",
|
||||||
"expo-application": "~7.0.6",
|
"expo-application": "~7.0.7",
|
||||||
"expo-constants": "~18.0.7"
|
"expo-constants": "~18.0.8"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"expo": "*",
|
"expo": "*",
|
||||||
@@ -8099,14 +8099,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/expo-router": {
|
"node_modules/expo-router": {
|
||||||
"version": "6.0.0",
|
"version": "6.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/expo-router/-/expo-router-6.0.0.tgz",
|
"resolved": "https://mirrors.tencent.com/npm/expo-router/-/expo-router-6.0.1.tgz",
|
||||||
"integrity": "sha512-4/SI/4f4wOmbxyQ3TH2nvRdbmlggQx2/WO5mWSuSsazUUerjc8h3lo9NkKyEZRrkeq09jYcfQQhbbl8yCnW/Gg==",
|
"integrity": "sha512-5wXkWyNMqUbjCWH0PRkOM0P6UsgLVdgchDkiLz5FY7HfU00ToBcxij965bqtlaATBgoaIo4DuLu6EgxewrKJ8Q==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@expo/metro-runtime": "6.1.1",
|
"@expo/metro-runtime": "6.1.1",
|
||||||
"@expo/schema-utils": "^0.1.6",
|
"@expo/schema-utils": "^0.1.7",
|
||||||
"@expo/server": "^0.7.3",
|
"@expo/server": "^0.7.4",
|
||||||
"@radix-ui/react-slot": "1.2.0",
|
"@radix-ui/react-slot": "1.2.0",
|
||||||
"@radix-ui/react-tabs": "^1.1.12",
|
"@radix-ui/react-tabs": "^1.1.12",
|
||||||
"@react-navigation/bottom-tabs": "^7.4.0",
|
"@react-navigation/bottom-tabs": "^7.4.0",
|
||||||
@@ -8132,8 +8132,8 @@
|
|||||||
"@react-navigation/drawer": "^7.5.0",
|
"@react-navigation/drawer": "^7.5.0",
|
||||||
"@testing-library/react-native": ">= 12.0.0",
|
"@testing-library/react-native": ">= 12.0.0",
|
||||||
"expo": "*",
|
"expo": "*",
|
||||||
"expo-constants": "^18.0.7",
|
"expo-constants": "^18.0.8",
|
||||||
"expo-linking": "^8.0.7",
|
"expo-linking": "^8.0.8",
|
||||||
"react": "*",
|
"react": "*",
|
||||||
"react-dom": "*",
|
"react-dom": "*",
|
||||||
"react-native": "*",
|
"react-native": "*",
|
||||||
|
|||||||
16
package.json
@@ -12,17 +12,17 @@
|
|||||||
"lint": "expo lint"
|
"lint": "expo lint"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@expo/ui": "~0.2.0-beta.0",
|
"@expo/ui": "~0.2.0-beta.1",
|
||||||
"@expo/vector-icons": "^15.0.2",
|
"@expo/vector-icons": "^15.0.2",
|
||||||
"@react-native-async-storage/async-storage": "^2.2.0",
|
"@react-native-async-storage/async-storage": "^2.2.0",
|
||||||
"@react-native-community/datetimepicker": "^8.4.4",
|
"@react-native-community/datetimepicker": "^8.4.4",
|
||||||
"@react-native-masked-view/masked-view": "^0.3.2",
|
"@react-native-masked-view/masked-view": "^0.3.2",
|
||||||
"@react-native-picker/picker": "^2.11.1",
|
"@react-native-picker/picker": "^2.11.1",
|
||||||
"@react-native-voice/voice": "^3.2.4",
|
"@react-native-voice/voice": "^3.2.4",
|
||||||
"@react-navigation/bottom-tabs": "^7.3.10",
|
"@react-navigation/bottom-tabs": "^7.4.7",
|
||||||
"@react-navigation/elements": "^2.3.8",
|
"@react-navigation/elements": "^2.6.4",
|
||||||
"@react-navigation/native": "^7.1.6",
|
"@react-navigation/native": "^7.1.17",
|
||||||
"@reduxjs/toolkit": "^2.8.2",
|
"@reduxjs/toolkit": "^2.9.0",
|
||||||
"@sentry/react-native": "~6.20.0",
|
"@sentry/react-native": "~6.20.0",
|
||||||
"@types/lodash": "^4.17.20",
|
"@types/lodash": "^4.17.20",
|
||||||
"cos-js-sdk-v5": "^1.6.0",
|
"cos-js-sdk-v5": "^1.6.0",
|
||||||
@@ -33,14 +33,14 @@
|
|||||||
"expo-blur": "~15.0.6",
|
"expo-blur": "~15.0.6",
|
||||||
"expo-camera": "~17.0.7",
|
"expo-camera": "~17.0.7",
|
||||||
"expo-constants": "~18.0.8",
|
"expo-constants": "~18.0.8",
|
||||||
"expo-font": "~14.0.7",
|
"expo-font": "~14.0.8",
|
||||||
"expo-glass-effect": "^0.1.1",
|
"expo-glass-effect": "^0.1.2",
|
||||||
"expo-haptics": "~15.0.6",
|
"expo-haptics": "~15.0.6",
|
||||||
"expo-image": "~3.0.7",
|
"expo-image": "~3.0.7",
|
||||||
"expo-image-picker": "~17.0.7",
|
"expo-image-picker": "~17.0.7",
|
||||||
"expo-linear-gradient": "~15.0.6",
|
"expo-linear-gradient": "~15.0.6",
|
||||||
"expo-linking": "~8.0.7",
|
"expo-linking": "~8.0.7",
|
||||||
"expo-notifications": "~0.32.10",
|
"expo-notifications": "~0.32.11",
|
||||||
"expo-quick-actions": "^5.0.0",
|
"expo-quick-actions": "^5.0.0",
|
||||||
"expo-router": "~6.0.1",
|
"expo-router": "~6.0.1",
|
||||||
"expo-splash-screen": "~31.0.8",
|
"expo-splash-screen": "~31.0.8",
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import * as BackgroundTask from 'expo-background-task';
|
|||||||
import * as TaskManager from 'expo-task-manager';
|
import * as TaskManager from 'expo-task-manager';
|
||||||
import { TaskManagerTaskBody } from 'expo-task-manager';
|
import { TaskManagerTaskBody } from 'expo-task-manager';
|
||||||
|
|
||||||
export const BACKGROUND_TASK_IDENTIFIER = 'backgroundtask';
|
export const BACKGROUND_TASK_IDENTIFIER = 'com.anonymous.digitalpilates.task';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||