From a90f7155c6eae8fef44c2428f161d33603d19a5f Mon Sep 17 00:00:00 2001 From: liulong <18539103286> Date: Thu, 14 May 2026 22:18:25 +0800 Subject: [PATCH] =?UTF-8?q?feat=E6=96=B0=E5=A2=9E=E5=85=89=E6=A0=85?= =?UTF-8?q?=E5=8D=A1=E5=92=8C=E9=95=AD=E5=B0=84=E5=8D=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/App.vue | 18 +- .../composables/useLenticularStudioTilt.js | 768 ++++++++++ frontend/main.js | 4 + frontend/manifest.json | 52 +- .../android/uni_android_gyro-release.aar | Bin 0 -> 47998 bytes .../ios/GyroPlugin.framework/GyroPlugin | Bin 0 -> 202040 bytes .../ios/GyroPlugin.framework/Info.plist | Bin 0 -> 816 bytes .../_CodeSignature/CodeDirectory | Bin 0 -> 166 bytes .../_CodeSignature/CodeRequirements | Bin 0 -> 192 bytes .../_CodeSignature/CodeRequirements-1 | Bin 0 -> 214 bytes .../_CodeSignature/CodeResources | 101 ++ .../_CodeSignature/CodeSignature | Bin 0 -> 4865 bytes .../imengyu-UniAndroidGyro/package.json | 30 + frontend/pages.json | 12 +- .../pages/castlove/create-laser-upload.css | 117 ++ frontend/pages/castlove/create.vue | 118 +- frontend/pages/castlove/laser-card-studio.vue | 1280 +++++++++-------- frontend/pages/castlove/lenticular-studio.vue | 321 +---- frontend/scripts/generate_app_icons.py | 55 + frontend/static/app-icons/1024x1024.png | Bin 0 -> 8776 bytes frontend/static/app-icons/120x120.png | Bin 0 -> 794 bytes frontend/static/app-icons/144x144.png | Bin 0 -> 990 bytes frontend/static/app-icons/152x152.png | Bin 0 -> 1030 bytes frontend/static/app-icons/167x167.png | Bin 0 -> 1164 bytes frontend/static/app-icons/180x180.png | Bin 0 -> 1248 bytes frontend/static/app-icons/192x192.png | Bin 0 -> 1345 bytes frontend/static/app-icons/20x20.png | Bin 0 -> 168 bytes frontend/static/app-icons/29x29.png | Bin 0 -> 206 bytes frontend/static/app-icons/40x40.png | Bin 0 -> 237 bytes frontend/static/app-icons/58x58.png | Bin 0 -> 377 bytes frontend/static/app-icons/60x60.png | Bin 0 -> 386 bytes frontend/static/app-icons/72x72.png | Bin 0 -> 462 bytes frontend/static/app-icons/76x76.png | Bin 0 -> 497 bytes frontend/static/app-icons/80x80.png | Bin 0 -> 525 bytes frontend/static/app-icons/87x87.png | Bin 0 -> 607 bytes frontend/static/app-icons/96x96.png | Bin 0 -> 658 bytes .../static/castlove/laser-bg/laser-bg-1.png | Bin 0 -> 56253 bytes .../static/castlove/laser-bg/laser-bg-2.png | Bin 0 -> 70399 bytes .../static/castlove/laser-bg/laser-bg-3.png | Bin 0 -> 70399 bytes .../{经典圆体简.ttf => JDLTYuanTiJian.ttf} | Bin 40 files changed, 1901 insertions(+), 975 deletions(-) create mode 100644 frontend/composables/useLenticularStudioTilt.js create mode 100644 frontend/nativePlugins/imengyu-UniAndroidGyro/android/uni_android_gyro-release.aar create mode 100644 frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/GyroPlugin create mode 100644 frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/Info.plist create mode 100644 frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeDirectory create mode 100644 frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeRequirements create mode 100644 frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeRequirements-1 create mode 100644 frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeResources create mode 100644 frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeSignature create mode 100644 frontend/nativePlugins/imengyu-UniAndroidGyro/package.json create mode 100644 frontend/pages/castlove/create-laser-upload.css create mode 100644 frontend/scripts/generate_app_icons.py create mode 100644 frontend/static/app-icons/1024x1024.png create mode 100644 frontend/static/app-icons/120x120.png create mode 100644 frontend/static/app-icons/144x144.png create mode 100644 frontend/static/app-icons/152x152.png create mode 100644 frontend/static/app-icons/167x167.png create mode 100644 frontend/static/app-icons/180x180.png create mode 100644 frontend/static/app-icons/192x192.png create mode 100644 frontend/static/app-icons/20x20.png create mode 100644 frontend/static/app-icons/29x29.png create mode 100644 frontend/static/app-icons/40x40.png create mode 100644 frontend/static/app-icons/58x58.png create mode 100644 frontend/static/app-icons/60x60.png create mode 100644 frontend/static/app-icons/72x72.png create mode 100644 frontend/static/app-icons/76x76.png create mode 100644 frontend/static/app-icons/80x80.png create mode 100644 frontend/static/app-icons/87x87.png create mode 100644 frontend/static/app-icons/96x96.png create mode 100644 frontend/static/castlove/laser-bg/laser-bg-1.png create mode 100644 frontend/static/castlove/laser-bg/laser-bg-2.png create mode 100644 frontend/static/castlove/laser-bg/laser-bg-3.png rename frontend/static/fonts/{经典圆体简.ttf => JDLTYuanTiJian.ttf} (100%) diff --git a/frontend/App.vue b/frontend/App.vue index ec9a8e6..b660703 100644 --- a/frontend/App.vue +++ b/frontend/App.vue @@ -38,18 +38,18 @@ export default { font-display: swap; } - /* 引入圆体字体 */ - @font-face { - font-family: 'yt'; - src: url('/static/fonts/经典圆体简.ttf') format('truetype'); - font-weight: normal; - font-style: normal; - font-display: swap; - } + /* 圆体 JDLTYuanTiJian.ttf 在部分 Android WebView 上报 OTS/cmap 解析失败,暂不 @font-face 加载,避免控制台告警与渲染异常 */ /* 全局字体设置 */ body { - font-family: 'yt', sans-serif; + font-family: + -apple-system, + BlinkMacSystemFont, + 'PingFang SC', + 'Hiragino Sans GB', + 'Microsoft YaHei', + 'Noto Sans SC', + sans-serif; } /* App 容器 */ diff --git a/frontend/composables/useLenticularStudioTilt.js b/frontend/composables/useLenticularStudioTilt.js new file mode 100644 index 0000000..2a0a636 --- /dev/null +++ b/frontend/composables/useLenticularStudioTilt.js @@ -0,0 +1,768 @@ +/** + * 光栅卡工作室倾斜驱动:App 优先 imengyu-UniAndroidGyro(DCloud 插件 id=6237),否则加速度计。 + * + * 与插件约定对齐(官方说明): + * - 模块:`imengyu-UniAndroidGyro-GyroModule`,`uni.requireNativePlugin`。 + * - `startGyro`:首包回调仅 success/errMsg/notSupport(**无 x/y/z 角度属正常**);持续数据需 **`getGyroValue` 轮询**(插件官方示例);勿把首包当「无参数」故障。 + * - `startGyroWithCallback`:部分自定义基座 + HX SDK 组合下长期收不到角度帧;本实现以 **startGyro + 轮询** 为主,WithCallback 为兜底。 + * - 轮询:插件若同时提供 `getGyroValue` 与 `getGyroValueSync`,**优先异步**(与官方示例一致);部分环境下 Sync 长期无 x/y/z,易触发看门狗回退。 + * - 再次开启前须 `getGyroStarted`;若已在监听则先 `stopGyro`(不可重复开启)。 + * - 页面进入后立即监听前宜延时再 start(官方示例约 100ms)。 + * - 插件返回的 x/y/z 为**当前各轴角度(度)**,与「进入光栅卡时采样的基准角」做差得到相对姿态;离散档位应使用**与轴向切换无关**的标量(如 max(|Δx|,|Δy|,|Δz|)),避免「谁幅度大跟谁」在临界区来回跳轴导致画面乱切。 + * - 原生陀螺看门狗:按「**连续无有效角度帧**」计时(每来一帧即重置),避免固定短超时与晚首包 / `getGyroStarted`→`stopGyro`→`kick` 慢链冲突;超时仍无帧再回退加速度计。 + * + * @see https://ext.dcloud.net.cn/plugin?id=6237 + */ + +const NATIVE_PLUGIN_ID = 'imengyu-UniAndroidGyro-GyroModule' + +/** iOS 等环境下布尔可能为字符串 `'true'` */ +function isTruthyFlag(v) { + return v === true || v === 'true' +} + +function hasAnglePayload(res) { + if (!res || typeof res !== 'object') return false + /** 插件首包常无 x/y/z;有数值(含 0)才视为角度帧 */ + return [res.x, res.y, res.z].some((v) => Number.isFinite(Number(v))) +} + +/** 无角度包时:仅明确失败才放弃原生;success 缺省不等同于失败(部分 ROM 首包字段不全) */ +function isExplicitGyroHandshakeFailure(res) { + if (!res || typeof res !== 'object') return false + if (isTruthyFlag(res.notSupport)) return true + if (res.success === false || res.success === 'false') return true + if (res.success === '') return true + return false +} + +// #ifdef APP-PLUS +function tryRequireImengyuGyro() { + try { + if (typeof uni === 'undefined' || typeof uni.requireNativePlugin !== 'function') return null + const mod = uni.requireNativePlugin(NATIVE_PLUGIN_ID) + const okPoll = + mod && + typeof mod.startGyro === 'function' && + typeof mod.stopGyro === 'function' && + (typeof mod.getGyroValue === 'function' || typeof mod.getGyroValueSync === 'function') + const okCb = + mod && + typeof mod.startGyroWithCallback === 'function' && + typeof mod.stopGyro === 'function' + if (okPoll || okCb) { + return mod + } + } catch (e) { + console.warn('[useLenticularStudioTilt] requireNativePlugin failed', e) + } + return null +} +// #endif +// #ifndef APP-PLUS +function tryRequireImengyuGyro() { + return null +} +// #endif + +/** 基线帧数 */ +const ACCEL_BASELINE_FRAMES = 10 +const INSTANT_FULL_RAD = 0.32 +const MAX_STEP_RAD = 0.48 +const STEP_GAIN = 2.15 +const SIN_PHASE_SCALE = 1.18 +const BLEND_INSTANT = 0.38 + +/** 原生插件:x/y/z 均为角度(度);进入页面后先采若干帧算**基准角**(与官方「先 start 再轮询 getGyroValue」一致) */ +const NATIVE_BASELINE_FRAMES = 12 +const NATIVE_FULL_DEG = 10 + +/** 加速度计直连 + 离散档位:进入后多帧圆均值定「水平」基准,避免首帧抖动 */ +const STUDIO_ACCEL_BASELINE_FRAMES = 12 + +/** 连续无有效 x/y/z 角度帧则回退加速度计(ms);覆盖 getGyroStarted→stopGyro→kick 慢链与晚首包 */ +const NATIVE_GYRO_STALL_FALLBACK_MS = 14000 + +function deltaDeg(value, base) { + const v = Number(value) + const b = Number(base) + if (!Number.isFinite(v) || !Number.isFinite(b)) return 0 + let d = v - b + while (d > 180) d -= 360 + while (d < -180) d += 360 + return d +} + +/** 取与基线差最大的轴,避免握持方向不同导致「陀螺仪没反应」 */ +function pickDominantTiltDelta(dx, dy, dz) { + const ax = Math.abs(dx) + const ay = Math.abs(dy) + const az = Math.abs(dz) + if (ax >= ay && ax >= az) return dx + if (ay >= az) return dy + return dz +} + +/** 相对基准的最大欧拉偏差(度),左右/多轴合成时仍单调,且不会在临界区因「换轴」突变符号 */ +function maxAbsTiltDeltaDeg(dx, dy, dz) { + return Math.max(Math.abs(dx), Math.abs(dy), Math.abs(dz)) +} + +/** + * 根据进入后采集的样本,选「抖动范围最大」的轴作为连续跟手的倾角轴(基线期手持微动时仍稳定)。 + * @param {{ x: number, y: number, z: number }[]} samples + * @returns {0|1|2} + */ +function inferPrimaryTiltAxisFromSamples(samples) { + if (!samples || samples.length < 2) return 1 + let bestAxis = 1 + let bestSpread = -1 + for (let axis = 0; axis < 3; axis++) { + const vals = samples.map((s) => [s.x, s.y, s.z][axis]) + const mn = Math.min(...vals) + const mx = Math.max(...vals) + const spread = mx - mn + if (spread > bestSpread) { + bestSpread = spread + bestAxis = axis + } + } + /* 几乎完全静止:竖屏常见左右倾角在 y */ + if (bestSpread < 0.35) return 1 + return bestAxis +} + +function circularMeanRad(rads) { + if (!rads.length) return 0 + let sx = 0 + let sy = 0 + for (const r of rads) { + sx += Math.sin(r) + sy += Math.cos(r) + } + return Math.atan2(sx / rads.length, sy / rads.length) +} + +function majorityPlane(votes) { + const cnt = { xz: 0, xy: 0, yz: 0 } + for (const v of votes) cnt[v] = (cnt[v] || 0) + 1 + if (cnt.xz >= cnt.xy && cnt.xz >= cnt.yz) return 'xz' + if (cnt.xy >= cnt.yz) return 'xy' + return 'yz' +} + +function detectGravityPlane(nx, ny, nz) { + const ax = Math.abs(nx) + const ay = Math.abs(ny) + const az = Math.abs(nz) + if (ay >= ax && ay >= az) return 'xz' + if (az >= ax && az >= ay) return 'xy' + return 'yz' +} + +function uvForPlane(nx, ny, nz, mode) { + if (mode === 'xz') return { u: nx, v: nz } + if (mode === 'xy') return { u: nx, v: ny } + return { u: ny, v: nz } +} + +/** + * @param {object} opts + * @param {(x: number, y: number) => void} opts.simulate + * @param {(tiltMagDeg: number) => void} [opts.simulateFromSignedDegrees] 若提供:用相对进入时基准的**倾角标量(度)**驱动预览(由页面做离散档位等);原生/加速度计侧会喂入非负幅度为主 + * @param {import('vue').Ref} opts.gyroSourceLabel + * @param {boolean} [opts.useStudioAccelDirect] 光栅工作室:加速度计用重力投影直连(免原 warmup) + * @param {() => void} [opts.onTiltDriverFallback] 从原生陀螺失败/超时回退到加速度计时调用(用于重置离散档位等 UI 状态) + */ +export function useLenticularStudioTilt(opts) { + const { + simulate, + simulateFromSignedDegrees, + gyroSourceLabel, + useStudioAccelDirect = false, + onTiltDriverFallback, + } = opts + + let mode = /** @type {'native'|'accel'} */ ('accel') + let gyroModule = null + let nativeStartTimer = null + let nativeWatchdogTimer = null + let gyroCbGuardTimer = null + let nativePollTimer = null + /** @type {{ x: number, y: number, z: number }[]} */ + let nativeTrSamples = [] + let nativeBase = { x: 0, y: 0, z: 0 } + let nativeBaselineReady = false + let nativeSmoothed = 0 + /** 连续模式下与基线样本推断的主倾角轴(0=x,1=y,2=z),避免每帧在 x/y 间抢主导 */ + let nativeLockedAxisIdx = 1 + /** 递增以丢弃 stop 之后的原生回调 / 延时任务 */ + let tiltGen = 0 + /** 原生:每次收到角度帧时重置该计时器;超时仍无帧则回退加速度计 */ + let scheduleNativeGyroStallFallback = /** @type {null | (() => void)} */ (null) + + /** 加速度计直连:多帧采样缓冲,填满后取圆均值为基准角 */ + let studioAccelBaselineRads = [] + /** 加速度计直连模式下「校零」后的基准(弧度),仅与 simulateFromSignedDegrees 联用 */ + let studioAccelBaseRad = null + + let accelHandler = null + let accelSmoothed = 0 + let rollAccum = 0 + let prevCu = null + let prevCv = null + + let tiltCal = { + lockedMode: null, + planeVotes: [], + sumU: 0, + sumV: 0, + count: 0, + ready: false, + bu: 1, + bv: 0, + } + + function resetAccelCalibration() { + tiltCal = { + lockedMode: null, + planeVotes: [], + sumU: 0, + sumV: 0, + count: 0, + ready: false, + bu: 1, + bv: 0, + } + } + + function resetNativeBaseline() { + nativeTrSamples = [] + nativeBase = { x: 0, y: 0, z: 0 } + nativeBaselineReady = false + nativeSmoothed = 0 + nativeLockedAxisIdx = 1 + } + + function resetStudioAccelBaseline() { + studioAccelBaseRad = null + studioAccelBaselineRads = [] + } + + function accelToRelativeTilt01(ax, ay, az) { + const gMag = Math.hypot(ax, ay, az) + if (gMag < 0.18) return null + const nx = ax / gMag + const ny = ay / gMag + const nz = az / gMag + + if (!tiltCal.ready) { + const m = detectGravityPlane(nx, ny, nz) + if (tiltCal.planeVotes.length < 5) tiltCal.planeVotes.push(m) + if (tiltCal.planeVotes.length >= 5 && tiltCal.lockedMode == null) { + tiltCal.lockedMode = majorityPlane(tiltCal.planeVotes) + tiltCal.sumU = 0 + tiltCal.sumV = 0 + tiltCal.count = 0 + } + if (tiltCal.lockedMode == null) return { warmup: true } + const { u, v } = uvForPlane(nx, ny, nz, tiltCal.lockedMode) + const h = Math.hypot(u, v) + if (h < 0.035) return { warmup: true } + tiltCal.sumU += u / h + tiltCal.sumV += v / h + tiltCal.count += 1 + if (tiltCal.count >= ACCEL_BASELINE_FRAMES) { + const bh = Math.hypot(tiltCal.sumU, tiltCal.sumV) || 1 + tiltCal.bu = tiltCal.sumU / bh + tiltCal.bv = tiltCal.sumV / bh + tiltCal.ready = true + } + return { warmup: true } + } + + const { u, v } = uvForPlane(nx, ny, nz, tiltCal.lockedMode) + const h = Math.hypot(u, v) + if (h < 0.028) return null + const cu = u / h + const cv = v / h + const sinD = cu * tiltCal.bv - cv * tiltCal.bu + const cosD = cu * tiltCal.bu + cv * tiltCal.bv + const deltaRad = Math.atan2(sinD, cosD) + return { warmup: false, cu, cv, deltaRad } + } + + function stopNative() { + tiltGen++ + if (nativeWatchdogTimer != null) { + try { + clearTimeout(nativeWatchdogTimer) + } catch (e) { + /* noop */ + } + nativeWatchdogTimer = null + } + if (gyroCbGuardTimer != null) { + try { + clearTimeout(gyroCbGuardTimer) + } catch (e) { + /* noop */ + } + gyroCbGuardTimer = null + } + if (nativePollTimer != null) { + try { + clearInterval(nativePollTimer) + } catch (e) { + /* noop */ + } + nativePollTimer = null + } + if (nativeStartTimer != null) { + try { + clearTimeout(nativeStartTimer) + } catch (e) { + /* noop */ + } + nativeStartTimer = null + } + if (gyroModule && typeof gyroModule.stopGyro === 'function') { + try { + gyroModule.stopGyro(() => {}) + } catch (e) { + /* noop */ + } + } + gyroModule = null + mode = 'accel' + scheduleNativeGyroStallFallback = null + } + + function stopAccel() { + try { + if (accelHandler && typeof uni.offAccelerometerChange === 'function') { + uni.offAccelerometerChange(accelHandler) + } + } catch (e) { + /* noop */ + } + accelHandler = null + try { + uni.stopAccelerometer({}) + } catch (e) { + /* noop */ + } + } + + function startAccelInternal(options = {}) { + const fromNativeFallback = options.fromNativeFallback === true + mode = 'accel' + stopAccel() + if (fromNativeFallback && typeof onTiltDriverFallback === 'function') { + try { + onTiltDriverFallback() + } catch (e) { + /* noop */ + } + } + resetAccelCalibration() + accelSmoothed = 0 + rollAccum = 0 + prevCu = null + prevCv = null + + if (useStudioAccelDirect) { + if (typeof simulateFromSignedDegrees === 'function') { + resetStudioAccelBaseline() + } + accelHandler = (res) => { + const ax = Number(res.x) || 0 + const ay = Number(res.y) || 0 + const az = Number(res.z) || 0 + const gMag = Math.hypot(ax, ay, az) + if (gMag < 0.12) return + /* 竖屏常见握持:左右倾斜主要反映为 ax/az 与重力的关系(免 warmup,避免长期无输出) */ + if (typeof simulateFromSignedDegrees === 'function') { + const tiltRad = Math.atan2(-ax, az) + if (studioAccelBaseRad == null) { + studioAccelBaselineRads.push(tiltRad) + if (studioAccelBaselineRads.length < STUDIO_ACCEL_BASELINE_FRAMES) { + simulate(0, 0) + return + } + studioAccelBaseRad = circularMeanRad(studioAccelBaselineRads) + studioAccelBaselineRads = [] + } + let delta = tiltRad - studioAccelBaseRad + while (delta > Math.PI) delta -= 2 * Math.PI + while (delta < -Math.PI) delta += 2 * Math.PI + const signedDeg = delta * (180 / Math.PI) + simulateFromSignedDegrees(Math.abs(signedDeg)) + } else { + const tiltRaw = Math.atan2(-ax, az) / (Math.PI / 5) + const tilt01 = Math.max(-1, Math.min(1, tiltRaw)) + accelSmoothed += (tilt01 - accelSmoothed) * 0.58 + simulate(Math.max(-1, Math.min(1, accelSmoothed)), 0) + } + gyroSourceLabel.value = 'accelerometer' + } + } else { + accelHandler = (res) => { + const ax = Number(res.x) || 0 + const ay = Number(res.y) || 0 + const az = Number(res.z) || 0 + const out = accelToRelativeTilt01(ax, ay, az) + if (out == null) return + if (out.warmup) return + const { cu, cv, deltaRad } = out + if (prevCu != null && prevCv != null) { + let step = Math.atan2(cu * prevCv - cv * prevCu, cu * prevCu + cv * prevCv) + if (step > Math.PI * 0.92) step -= 2 * Math.PI + if (step < -Math.PI * 0.92) step += 2 * Math.PI + step = Math.max(-MAX_STEP_RAD, Math.min(MAX_STEP_RAD, step)) + rollAccum += step * STEP_GAIN + } + prevCu = cu + prevCv = cv + + const instant = Math.max(-1, Math.min(1, deltaRad / INSTANT_FULL_RAD)) + const cyclic = Math.sin(rollAccum * SIN_PHASE_SCALE) + const target = BLEND_INSTANT * instant + (1 - BLEND_INSTANT) * cyclic + + accelSmoothed += (target - accelSmoothed) * 0.74 + simulate(Math.max(-1, Math.min(1, accelSmoothed)), 0) + gyroSourceLabel.value = 'accelerometer' + } + } + try { + uni.onAccelerometerChange(accelHandler) + const applyStart = (interval) => { + uni.startAccelerometer({ + interval, + success: () => { + gyroSourceLabel.value = 'accelerometer' + }, + fail: () => { + if (interval === 'game') { + applyStart('normal') + return + } + gyroSourceLabel.value = 'simulation' + }, + }) + } + applyStart('game') + } catch (e) { + gyroSourceLabel.value = 'simulation' + } + } + + function onNativeAngleFrame(x, y, z) { + const vx = Number(x) + const vy = Number(y) + const vz = Number(z) + if (![vx, vy, vz].some(Number.isFinite)) return + /* 有角度帧即视为陀螺仪在工作,含基线采集期,避免看门狗误判「从未产出」而中途切加速度计 */ + gyroSourceLabel.value = 'gyroscope' + + if (!nativeBaselineReady) { + if ([vx, vy, vz].every(Number.isFinite)) { + nativeTrSamples.push({ x: vx, y: vy, z: vz }) + } + if (nativeTrSamples.length >= NATIVE_BASELINE_FRAMES) { + const n = nativeTrSamples.length + nativeBase.x = nativeTrSamples.reduce((a, b) => a + b.x, 0) / n + nativeBase.y = nativeTrSamples.reduce((a, b) => a + b.y, 0) / n + nativeBase.z = nativeTrSamples.reduce((a, b) => a + b.z, 0) / n + nativeLockedAxisIdx = inferPrimaryTiltAxisFromSamples(nativeTrSamples) + nativeBaselineReady = true + } + simulate(0, 0) + if (typeof scheduleNativeGyroStallFallback === 'function') { + scheduleNativeGyroStallFallback() + } + return + } + + const dx = deltaDeg(vx, nativeBase.x) + const dy = deltaDeg(vy, nativeBase.y) + const dz = deltaDeg(vz, nativeBase.z) + if (typeof simulateFromSignedDegrees === 'function') { + simulateFromSignedDegrees(maxAbsTiltDeltaDeg(dx, dy, dz)) + } else { + const axisDeltas = [dx, dy, dz] + const chosen = axisDeltas[nativeLockedAxisIdx] ?? pickDominantTiltDelta(dx, dy, dz) + const tilt01 = Math.max(-1, Math.min(1, chosen / NATIVE_FULL_DEG)) + /* 跟手:过低显钝;过高易抖。插件已做角度融合,此处略轻低通即可 */ + nativeSmoothed += (tilt01 - nativeSmoothed) * 0.86 + simulate(Math.max(-1, Math.min(1, nativeSmoothed)), 0) + } + if (typeof scheduleNativeGyroStallFallback === 'function') { + scheduleNativeGyroStallFallback() + } + } + + function startNativeInternal() { + stopNative() + stopAccel() + resetNativeBaseline() + // #ifdef APP-PLUS + gyroModule = tryRequireImengyuGyro() + if (!gyroModule) { + mode = 'accel' + startAccelInternal() + return + } + mode = 'native' + const myGen = tiltGen + /** 与官方示例一致:normal / ui / game / fastest,game≈50Hz */ + const startOpts = { interval: 'game' } + + scheduleNativeGyroStallFallback = () => { + if (nativeWatchdogTimer != null) { + try { + clearTimeout(nativeWatchdogTimer) + } catch (e) { + /* noop */ + } + nativeWatchdogTimer = null + } + nativeWatchdogTimer = setTimeout(() => { + nativeWatchdogTimer = null + if (myGen !== tiltGen) return + if (mode !== 'native') return + console.warn( + '[useLenticularStudioTilt] native gyro stalled (no angle frames for ' + + NATIVE_GYRO_STALL_FALLBACK_MS + + 'ms), falling back to accelerometer' + ) + stopNative() + startAccelInternal({ fromNativeFallback: true }) + }, NATIVE_GYRO_STALL_FALLBACK_MS) + } + + function invokeStartNativeGyro() { + const mod = gyroModule + if (myGen !== tiltGen || !mod) return + + function startNativePoll() { + if (nativePollTimer != null) { + try { + clearInterval(nativePollTimer) + } catch (e) { + /* noop */ + } + nativePollTimer = null + } + /** + * 官方示例只用异步 getGyroValue;部分基座上 getGyroValueSync 长期无 x/y/z, + * 仅在没有异步接口时才用 Sync(见插件 id=6237 说明)。 + */ + const useSync = + typeof mod.getGyroValueSync === 'function' && typeof mod.getGyroValue !== 'function' + const intervalMs = useSync ? 20 : 28 + const pollOnce = () => { + if (myGen !== tiltGen || !gyroModule) return + try { + if (useSync) { + const v = mod.getGyroValueSync() + if (v && hasAnglePayload(v)) { + onNativeAngleFrame(v.x, v.y, v.z) + } + return + } + mod.getGyroValue((v) => { + if (myGen !== tiltGen || !gyroModule || !v) return + if (hasAnglePayload(v)) { + onNativeAngleFrame(v.x, v.y, v.z) + } + }) + } catch (e) { + /* noop */ + } + } + pollOnce() + nativePollTimer = setInterval(pollOnce, intervalMs) + } + + let kickOnce = false + const kick = () => { + if (kickOnce) return + if (myGen !== tiltGen || !gyroModule) return + kickOnce = true + if (gyroCbGuardTimer != null) { + try { + clearTimeout(gyroCbGuardTimer) + } catch (e) { + /* noop */ + } + gyroCbGuardTimer = null + } + + const usePoll = + typeof mod.startGyro === 'function' && + (typeof mod.getGyroValue === 'function' || typeof mod.getGyroValueSync === 'function') + + if (usePoll) { + try { + mod.startGyro(startOpts, (res) => { + if (myGen !== tiltGen || !gyroModule) return + /* 插件约定:首包只表示是否开启成功,不含持续角度;若回调无对象则无法进入官方要求的 getGyroValue 轮询 */ + if (!res) { + console.warn( + '[useLenticularStudioTilt] startGyro callback received no argument (see plugin doc: first callback is handshake only)' + ) + stopNative() + startAccelInternal({ fromNativeFallback: true }) + return + } + if (isExplicitGyroHandshakeFailure(res)) { + console.warn('[useLenticularStudioTilt] startGyro handshake failed', res) + stopNative() + startAccelInternal({ fromNativeFallback: true }) + return + } + /* 与官方示例一致:success 为真后再轮询;iOS 上常为字符串 'true' */ + if (Object.prototype.hasOwnProperty.call(res, 'success') && !isTruthyFlag(res.success)) { + console.warn('[useLenticularStudioTilt] startGyro success=false', res) + stopNative() + startAccelInternal({ fromNativeFallback: true }) + return + } + if (hasAnglePayload(res)) { + onNativeAngleFrame(res.x, res.y, res.z) + } else { + simulate(0, 0) + } + startNativePoll() + }) + } catch (e) { + console.warn('[useLenticularStudioTilt] startGyro error', e) + stopNative() + startAccelInternal({ fromNativeFallback: true }) + } + return + } + + try { + mod.startGyroWithCallback(startOpts, (res) => { + if (myGen !== tiltGen || !gyroModule) return + if (!res) { + console.warn('[useLenticularStudioTilt] startGyroWithCallback: empty callback argument') + stopNative() + startAccelInternal({ fromNativeFallback: true }) + return + } + + if (!hasAnglePayload(res)) { + if (isExplicitGyroHandshakeFailure(res)) { + console.warn('[useLenticularStudioTilt] native gyro handshake failed', res) + stopNative() + startAccelInternal({ fromNativeFallback: true }) + return + } + simulate(0, 0) + return + } + + onNativeAngleFrame(res.x, res.y, res.z) + }) + } catch (e) { + console.warn('[useLenticularStudioTilt] startGyroWithCallback error', e) + stopNative() + startAccelInternal({ fromNativeFallback: true }) + } + } + + if (typeof mod.getGyroStarted === 'function') { + gyroCbGuardTimer = setTimeout(() => { + gyroCbGuardTimer = null + if (myGen !== tiltGen || !gyroModule || kickOnce) return + console.warn('[useLenticularStudioTilt] getGyroStarted callback timeout, starting gyro') + kick() + }, 700) + mod.getGyroStarted((r) => { + if (gyroCbGuardTimer != null) { + try { + clearTimeout(gyroCbGuardTimer) + } catch (e) { + /* noop */ + } + gyroCbGuardTimer = null + } + if (myGen !== tiltGen || !gyroModule) return + const started = r && isTruthyFlag(r.started) + if (started) { + let stopDone = false + const stopTimer = setTimeout(() => { + if (stopDone || myGen !== tiltGen || !gyroModule) return + stopDone = true + console.warn('[useLenticularStudioTilt] stopGyro callback timeout, continuing') + setTimeout(kick, 80) + }, 700) + mod.stopGyro(() => { + if (stopDone || myGen !== tiltGen || !gyroModule) return + stopDone = true + try { + clearTimeout(stopTimer) + } catch (e) { + /* noop */ + } + setTimeout(kick, 80) + }) + } else { + kick() + } + }) + } else { + kick() + } + } + + /* 官方:因 uni-app 原因,页面进入后需延时再 start(示例 100ms) */ + nativeStartTimer = setTimeout(() => { + nativeStartTimer = null + if (myGen !== tiltGen || !gyroModule) return + invokeStartNativeGyro() + if (typeof scheduleNativeGyroStallFallback === 'function') { + scheduleNativeGyroStallFallback() + } + }, 100) + // #endif + // #ifndef APP-PLUS + mode = 'accel' + startAccelInternal() + // #endif + } + + function start() { + // #ifdef APP-PLUS + startNativeInternal() + // #endif + // #ifndef APP-PLUS + startAccelInternal() + // #endif + } + + function stop() { + stopNative() + stopAccel() + } + + function recalibrate() { + resetAccelCalibration() + resetNativeBaseline() + resetStudioAccelBaseline() + accelSmoothed = 0 + rollAccum = 0 + prevCu = null + prevCv = null + simulate(0, 0) + } + + return { + start, + stop, + recalibrate, + } +} diff --git a/frontend/main.js b/frontend/main.js index 579a0cb..6867426 100644 --- a/frontend/main.js +++ b/frontend/main.js @@ -11,6 +11,10 @@ const app = new Vue({ app.$mount() // #endif +// #ifdef VUE3 && H5 +import './pages/castlove/create-laser-upload.css' +// #endif + // #ifdef VUE3 import { createSSRApp } from 'vue' import store from './store' diff --git a/frontend/manifest.json b/frontend/manifest.json index 2daf2ff..b446a4a 100644 --- a/frontend/manifest.json +++ b/frontend/manifest.json @@ -1,6 +1,6 @@ { "name" : "TopFans", - "appid" : "__UNI__F199FF4", + "appid" : "__UNI__8CBE431", "description" : "", "versionName" : "1.0.4", "versionCode" : 105, @@ -26,6 +26,9 @@ "Speech" : {}, "Push" : {} }, + "nativePlugins" : { + "imengyu-UniAndroidGyro" : {} + }, /* 应用发布信息 */ "distribute" : { /* android打包配置 */ @@ -72,37 +75,38 @@ } }, "push" : {}, - "statics" : {} + "statics" : {}, + "ad" : {} }, "icons" : { "android" : { - "hdpi" : "unpackage/res/icons/72x72.png", - "xhdpi" : "unpackage/res/icons/96x96.png", - "xxhdpi" : "unpackage/res/icons/144x144.png", - "xxxhdpi" : "unpackage/res/icons/192x192.png" + "hdpi" : "static/app-icons/72x72.png", + "xhdpi" : "static/app-icons/96x96.png", + "xxhdpi" : "static/app-icons/144x144.png", + "xxxhdpi" : "static/app-icons/192x192.png" }, "ios" : { - "appstore" : "unpackage/res/icons/1024x1024.png", + "appstore" : "static/app-icons/1024x1024.png", "ipad" : { - "app" : "unpackage/res/icons/76x76.png", - "app@2x" : "unpackage/res/icons/152x152.png", - "notification" : "unpackage/res/icons/20x20.png", - "notification@2x" : "unpackage/res/icons/40x40.png", - "proapp@2x" : "unpackage/res/icons/167x167.png", - "settings" : "unpackage/res/icons/29x29.png", - "settings@2x" : "unpackage/res/icons/58x58.png", - "spotlight" : "unpackage/res/icons/40x40.png", - "spotlight@2x" : "unpackage/res/icons/80x80.png" + "app" : "static/app-icons/76x76.png", + "app@2x" : "static/app-icons/152x152.png", + "notification" : "static/app-icons/20x20.png", + "notification@2x" : "static/app-icons/40x40.png", + "proapp@2x" : "static/app-icons/167x167.png", + "settings" : "static/app-icons/29x29.png", + "settings@2x" : "static/app-icons/58x58.png", + "spotlight" : "static/app-icons/40x40.png", + "spotlight@2x" : "static/app-icons/80x80.png" }, "iphone" : { - "app@2x" : "unpackage/res/icons/120x120.png", - "app@3x" : "unpackage/res/icons/180x180.png", - "notification@2x" : "unpackage/res/icons/40x40.png", - "notification@3x" : "unpackage/res/icons/60x60.png", - "settings@2x" : "unpackage/res/icons/58x58.png", - "settings@3x" : "unpackage/res/icons/87x87.png", - "spotlight@2x" : "unpackage/res/icons/80x80.png", - "spotlight@3x" : "unpackage/res/icons/120x120.png" + "app@2x" : "static/app-icons/120x120.png", + "app@3x" : "static/app-icons/180x180.png", + "notification@2x" : "static/app-icons/40x40.png", + "notification@3x" : "static/app-icons/60x60.png", + "settings@2x" : "static/app-icons/58x58.png", + "settings@3x" : "static/app-icons/87x87.png", + "spotlight@2x" : "static/app-icons/80x80.png", + "spotlight@3x" : "static/app-icons/120x120.png" } } } diff --git a/frontend/nativePlugins/imengyu-UniAndroidGyro/android/uni_android_gyro-release.aar b/frontend/nativePlugins/imengyu-UniAndroidGyro/android/uni_android_gyro-release.aar new file mode 100644 index 0000000000000000000000000000000000000000..0b76a8a2d5bdadd45471d78ec11c0c9c1a731b07 GIT binary patch literal 47998 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
-Dcu2nB;D>a`ojYn9p2p$MP^dD#6t@j06P_86b)HADX4)-OOwQmL?)sBx)78` z6kiZ28Z59-5uq9i(MbpG<$^N~)o60%CpObw;^i8zMa^bOL>RyhImPT!;33trBhGQv zmYyXlx-HZiHYrT+Q{BuRrWyNK!p!n41QgQ(QI_TR8b?R5lKXYS{(jXWhY%z81_|aXx?`PL&;=* z*J3EIsb-`IE!jFZQynEv@pxNu5+kQE5j`r?ybbc`2U7GCc$i?)-I3lHEi}3cig2T8 z7xe^U?4h)fR5umYoj!mwYsz*&VO9h5u-N;wcl*8IQ3h38=Xf@LaOQF*E{SdeW0aYPqtl0Q&$$U&2jjr7Ynm? zEE9S8>w7R{r16-$0!#P=qfqFbV)|rEu@+>?4o;-Eaq4OCM}zT?42vO9cbtu~kV}sZ z6K)9L`nV-$|3JgxycLIZM`MpXM@*XDgQX?=>*Q-Cwyq!eWyxES@U7_EkZ?;#E=doi zzUQC%ryG6Vm^WMkuMWp$6WX^_!yd0A8-56oWX^Y3(6!ly;4L&&x)KV2mNOGnErrv7 zKbWoLi4APx^*2pti}%|~m#hRGzRrQmdqmrx_FMzTMlQJfpUII?ii>Z|nL(ybzJ%9K z*ja7L^)Z5nSH`~j#RPdkz)oNJ&LXFQ@iT7HY#JV z!XmbjV|H>fXHo%xs%Z;zj{+{DLkZ=fl=h_%WVZ;U-fCEhh=$lrU%P@2;xY<)^JKdN z`7a&h(Y5`vZAE3d#EgiJ+47?yigh8%AZa6J=?PDXyQh_Ni88`4TUAn8{;W! zSn)&>vYP`_J{~r$JOiSUE};WiTGL_=*GO1Bh+s}U{%7c=lPyao)4h7ot~@O$iBg?_ zyaG3Mv5qrh)-#J5tb=XVsV~kj&uJ`8zOd1oL1^6{0zot3EglLCFk;vPo5m6Y`BgYMjjI&ctQ?w~@glpn z%FP(sd-1YX)aj?e4Y|fL*#mQ8rn11gjiSh85z}_qUFboXfdlOtix0yD)J#LwMe9#_BeJJ4N{yp(LMumPp6EBi8y$yP> z&u@66ek7YqeA8x-fvyYGDW*Iz#l{b@rg0>1=I42X#7IZw&%e?RRu~Jn+f_UoeB?tD zmT8yJscy2wU~a6B9oZ&-^ zJMdVTDbBluqvFzK3eL_yB#RTZgtCE=wbO`Xb}T$eX^ROYM{|b-jc6#;jG#AloE*q# zDt@SCdrt8lsX*m@Z-vCBwo!j==rRxmvPmxRgATCguH*{dPZDHVBaSt|cPv?u7X}*K zQ+GdY9oeN|epHRYKmZcHIu7OegXmnM(@3b#XRV{B$-XN_xcb!BXR zhx^EV@$m7d;#NqLB~;6ojn*J2}aglX-B@;r6O*`GNhZaELBY zE?oq;Lo*+9vV8plSRwF11H*A3$;w8>n$}*jl{@DIGfty@z{$6Dv^(sK4MgcE%}OI% zqov%~)7i6IoOOui*buOm%yRB4)Hzj^S=r@B&9z4BG<_ZR_B^0r2X^>(b6E&Scy0YA z4tDIz)SXGyx%@D%V0xUfLCs+V#)ra#NZ@wGi2IEYv>jnqq)8(5hJViTyqMJ}bpb&E zG=e|@48GR9F7XFITBKc3lyUf(-&}`OhKY#?%D)c<=54sr5zr7JsRiakic1xgX&Y3g zt8ElVExFp%Ja;mmsw*}6p2n3SmTXS0>rj6_mhCA#o$heo6qIFS2SmPer~a9FZ)n$! zDf<2B3wX}I6Gs4x{+pLXBTgtk4(EqWv3X9p<6bntG#!ML6sA?2abP;f7bezmQ0beI z3Yb4uc|$lRf`pD;H;d^wP%vhY3vy?Gv=`qbBg!}tJqha~!Ycd+e~yuE)NS)(06$?u zC#|4g(w?n2?YA-aVT@$f#4e=6D%hzO)3K%NdSx~Cuy0(q5!4(@74LkUnW{80ZOlx0 z(E{dO4k@q@VD=qqnwHhY0q0v=Owu;EkY_GvC$j2B7V@m?P|JFc*+QE!R8RK-ZsVU? zWhUFSrs;{a4ns|3(Cyqd8cx~#1IP#oG}TaldEmBMr&`B z5qdmHm}ea?A2TN??y%j+Tf?ritxTxFAlhxohObAlmZtx#%Vu2R$LB~lcwSD&B6DZ2 zOPV`oKy6Hg4@$&{MZXeVy;M=R$rA{!fD}rMOC)sG{Q0l&5QS?!J#Yz{a%#_A~ueQ3x1LE1(O8 z7cg3vBd%Vb$en4Xp3VEzBxV^Jn{1Fy%3yJOE)HTM%0f=wMVSMph_MQFT(rxB9ld3g z0DHtxH(aotnj~}+sNu9E109BZW1&QA1lKImw)!y=#U217x zxFsEt!3-wnF~u@G^7zoi4A;qN`5ZnC$tw7-KxR?L4io7ZbE`P1Z~}_7ZewTnq5Qi?B~~0t+Zk{9+udR zelnjY#R02vCFC=Iq5~KXfF6QAqPdCW{l|J<_kcXPgyyyzmk|D|d2`Qq=Lvygx+Mv! za&vrL^Gbx~$6K9r6;TCk*tFmjdeZb+n46oqUa+bmVJoC4iwJh1iK4BFgO`b<&|pW; z{7PC0EgJ`wIWNB;t1s!wb26-kI7=lMb+raHZkNL)SHfjA0V}~u+g~lC`zv4Q#npwF zf>xW{a~VB@8*Au!H*AOR<-e5@=2b#Ive1Vtp?_oaU{7j>t2On` zQHucs0RVp9LO$7-ZGZU}ukvSpGAn-V+lzjzJ^%hTf05sP#{zWyLZf{xedRk}_!CRr z=;vzwF1_YU&;5vXef4!B+{kbFEBdj#ojbqS8)yIWk1zSz*v$9z_!(vR z?#oL(lfUw}L;l7d=>GjIUHH9_|20-SvuC*a-kW~-vizM34*SLYJu?nREfyU3xsg8a zqZ{sfHjbR?TlvBMzww_OIBGJa|FEBQ{}$)JB`c~TNGmBPMsI9yOKP-({rBbnT*dz~ z2>_r(=i=e=pCSK=Y5nhz!+%2m4`}Ou3j8PV^uGl*ME@`R>3;_PXR7`?aJ}RIBXJ7S VpkV(c1@iAk`Ny7B>HM#^{{cNg#7O`E literal 0 HcmV?d00001 diff --git a/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/GyroPlugin b/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/GyroPlugin new file mode 100644 index 0000000000000000000000000000000000000000..867beb99cce70c3fe19fe9cada0a58a825142f4d GIT binary patch literal 202040 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%0A{Ai!3=obFB~=6ATjV@kNi{WTqmLrAib#WR^eSYA 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 literal 0 HcmV?d00001 diff --git a/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/Info.plist b/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/Info.plist new file mode 100644 index 0000000000000000000000000000000000000000..f07f4fee6efafc64512536ef8a2128d999c45f81 GIT binary patch literal 816 zcmYjOOHIklC7bVc&beRCx9?FBgtB}jW&u2N_T2dkL&Fy@ zUA}TPBaV!YUAvyWF+P#IIhmWfb$fbd_Riew{KDOP_a7MI*lI+mRYqouxOh|RRfafG zEUiYaMX`$8m@?17Zn%YQ!d%WcnUTPws9Qk}HpJ1i`?Q12C`9}8baUO}0;EZ>Z-`SV za@}n*m6#z{MSi!A{eWkUblR6ad8~@e17u^p>v7#&3esB44-=*q`oy(Q4P6;wgvOg?R6T|EeApY*{cT1DjR9X%H+tyjs?O6GxUK3tCbMuO ziHWIVnYhG>oJ}nu8{&9HE3?>uTEKr!#ewM)FRu4$>)d)`;u3NQ?bZwOnzFpKh27n? zuFuNMiYV@-RT|lZUnOfYMR~8FOU0EzDvaGF0GFPo& zY~_87th~)v4NT_Yd>hdS=lKotHuvZ7;Uf`enB>>%JX39~{1vXbb?$ C%QnOS literal 0 HcmV?d00001 diff --git a/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeRequirements b/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeRequirements new file mode 100644 index 0000000000000000000000000000000000000000..6a34f3790e9f4e3d7199d5b63cef908a7723e240 GIT binary patch literal 192 zcmex$kB53`u3lztYF>I}sh)dfQNC|} zN@-3iPzIugA4+qBMHm>kic6ESQj<&coc+KeAhQe|3kq^l6 z7#f(HSy-4l6c*|MEm6>ju<#CzvT(HYb<%_w#s{Q8`nj~)Jleh|r?4@Bct8LEbOt0p literal 0 HcmV?d00001 diff --git a/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeRequirements-1 b/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeRequirements-1 new file mode 100644 index 0000000000000000000000000000000000000000..8e7ff5140cebf7aea394d318a4beeaa6c5cc952e GIT binary patch literal 214 zcmex$kB5nYf#Dhh6NmzXZ9vilh?#+yk%3v%LIExXmiJE1&(+J!P0dTMEY)+bEXw!I zPbtkwWiYn1bT+q)^7FA^aG3DPC*HTf_4>kSyUOox^Ajx&y*-{8F8}A!bYUJ>8CHhs zy`R!-D>oW7FbBR{c-Qi;vjdmY%7rd%1=34%Vs6z<_wnV_oz-FVAmi|CrUjdPJ*;?) yc8k4;*xVYCRCjD+{|vG8sk&+XD-9)E61>B_44A*Y`I&pb{&lOsbM4UFONs!?(n=iw literal 0 HcmV?d00001 diff --git a/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeResources b/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeResources new file mode 100644 index 0000000..b552e06 --- /dev/null +++ b/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeResources @@ -0,0 +1,101 @@ + + + + + files + + Info.plist + + 8XOwyvu+OiYnMWBub0JdOOoIL9c= + + + files2 + + rules + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^.* + + ^.*\.lproj/ + + optional + + weight + 1000 + + ^.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^Base\.lproj/ + + weight + 1010 + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git a/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeSignature b/frontend/nativePlugins/imengyu-UniAndroidGyro/ios/GyroPlugin.framework/_CodeSignature/CodeSignature new file mode 100644 index 0000000000000000000000000000000000000000..a676c08d5751a77af97db468e9da8af4d52f56df GIT binary patch literal 4865 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 - + - + +