@unif/react-native-hms-scan 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/module/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
// @unif/react-native-hms-scan —— 华为 HMS 统一扫码服务 RN bridge(Fabric 新架构)
|
|
4
4
|
// 能力:定制视图扫码(底层 <HmsScanView> + 成品 <Scanner> 扫一扫页)+ 图片识别(decodeImage)+ 相机权限。
|
|
5
|
+
// 0.2.1:package.json#files 补 scripts/,修 pod install 缺 prepare-scankit-xcframework.sh(podspec prepare_command 调用)。
|
|
5
6
|
|
|
6
7
|
// ── 类型与常量 ──
|
|
7
8
|
export { ALL_BARCODE_FORMATS, HmsScanError } from "./types.js";
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ALL_BARCODE_FORMATS","HmsScanError","coerceFormat","coerceContentType","formatsToCsv","HmsScanView","decodeImage","getCameraPermissionStatus","requestCameraPermission","Scanner"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;;AAEA;AACA,SACEA,mBAAmB,EACnBC,YAAY,QACP,YAAS;AAYhB;AACA,SAASC,YAAY,EAAEC,iBAAiB,EAAEC,YAAY,QAAQ,aAAU;;AAExE;AACA,SAASC,WAAW,QAAQ,kBAAe;AAG3C;AACA,SAASC,WAAW,QAAQ,kBAAe;;AAE3C;AACA,SAASC,yBAAyB,EAAEC,uBAAuB,QAAQ,kBAAe;;AAElF;AACA,SAASC,OAAO,QAAQ,sBAAmB","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["ALL_BARCODE_FORMATS","HmsScanError","coerceFormat","coerceContentType","formatsToCsv","HmsScanView","decodeImage","getCameraPermissionStatus","requestCameraPermission","Scanner"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA;AACA;;AAEA;AACA,SACEA,mBAAmB,EACnBC,YAAY,QACP,YAAS;AAYhB;AACA,SAASC,YAAY,EAAEC,iBAAiB,EAAEC,YAAY,QAAQ,aAAU;;AAExE;AACA,SAASC,WAAW,QAAQ,kBAAe;AAG3C;AACA,SAASC,WAAW,QAAQ,kBAAe;;AAE3C;AACA,SAASC,yBAAyB,EAAEC,uBAAuB,QAAQ,kBAAe;;AAElF;AACA,SAASC,OAAO,QAAQ,sBAAmB","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAKA,OAAO,EACL,mBAAmB,EACnB,YAAY,GACb,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,WAAW,GACZ,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGzE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAGnF,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unif/react-native-hms-scan",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "华为 HMS 统一扫码服务 React Native bridge:定制视图扫码 + 图片识别 (Scan SDK-Plus / ScanKitFrameWork,@unif 私有)",
|
|
5
5
|
"main": "./lib/module/index.js",
|
|
6
6
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"ios",
|
|
25
25
|
"*.podspec",
|
|
26
26
|
"react-native.config.js",
|
|
27
|
+
"scripts",
|
|
27
28
|
"!ios/build",
|
|
28
29
|
"!android/build",
|
|
29
30
|
"!android/gradle",
|
|
@@ -81,7 +82,7 @@
|
|
|
81
82
|
"@types/jest": "^29.5.0",
|
|
82
83
|
"@types/react": "^19.2.0",
|
|
83
84
|
"@types/react-test-renderer": "^19",
|
|
84
|
-
"@unif/react-native-design": "
|
|
85
|
+
"@unif/react-native-design": "0.5.1",
|
|
85
86
|
"commitlint": "^20.5.0",
|
|
86
87
|
"del-cli": "^7.0.0",
|
|
87
88
|
"eslint": "^9.39.4",
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
#
|
|
3
|
+
# 生成含 arm64-simulator 切片的 ScanKitFrameWork.xcframework(+ 资源 bundle)。
|
|
4
|
+
#
|
|
5
|
+
# 背景:华为官方 ScanKitFrameWork 1.1.2 是 2020 年前的老式 fat framework
|
|
6
|
+
# (arm64 = 真机 / x86_64 = Intel 模拟器,LC_VERSION_MIN_IPHONEOS 标记),
|
|
7
|
+
# 不含 arm64-simulator 切片。Apple Silicon(M 芯片)的 iOS 模拟器是 arm64-sim,
|
|
8
|
+
# 会因缺这一片而链接失败(旧 podspec 只能 EXCLUDED_ARCHS 排掉、导致模拟器编不过)。
|
|
9
|
+
#
|
|
10
|
+
# 这里用 Apple 官方 vtool 把真机 arm64 改写成 simulator 平台、补出 arm64-sim,
|
|
11
|
+
# 再 lipo 合并 x86_64,最后 xcodebuild -create-xcframework 打成 xcframework
|
|
12
|
+
# (device 片 / simulator 片分目录,fat binary 不允许同 arch 共存)。
|
|
13
|
+
#
|
|
14
|
+
# vtool 转出来的 sim 片仅用于编译/链接(CI、模拟器跑通);真机仍走 device 片。
|
|
15
|
+
# 模拟器上真去调摄像头硬件会崩,但模拟器本无扫码硬件场景,不影响。
|
|
16
|
+
#
|
|
17
|
+
# 由 ReactNativeHmsScan.podspec 的 prepare_command 在 pod install 时调用。
|
|
18
|
+
# 产物 ios/vendor/ 不入 git —— 按需生成(已生成则跳过)。
|
|
19
|
+
#
|
|
20
|
+
set -euo pipefail
|
|
21
|
+
|
|
22
|
+
OUT_DIR="ios/vendor"
|
|
23
|
+
XCFW="$OUT_DIR/ScanKitFrameWork.xcframework"
|
|
24
|
+
BUNDLE="$OUT_DIR/ScanKitFrameWorkBundle.bundle"
|
|
25
|
+
|
|
26
|
+
# 华为官方 Scan SDK-Plus iOS 工具包(scansdk-ios-tool 1.1.0.305)。
|
|
27
|
+
# URL 取自 ScanKitFrameWork 的 CocoaPods spec(source.http),带 10 年签名有效期。
|
|
28
|
+
ZIP_URL="https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_package_901_9/eb/v3/FoQltlwsS0Ge-TitlHPL3A/scansdk-ios-tool-1.1.0.305.zip?HW-CC-KV=V1&HW-CC-Date=20230321T064901Z&HW-CC-Expire=315360000&HW-CC-Sign=C23A0122B070535FDFA38C56BA62E25E6BE66582D963B8C7F5DDF4FCA5C34CFF"
|
|
29
|
+
|
|
30
|
+
# 只在 macOS 生成(需 lipo / vtool / xcodebuild);Android 等平台的 pod install 直接跳过。
|
|
31
|
+
if [ "$(uname)" != "Darwin" ]; then
|
|
32
|
+
echo "[scankit] 非 macOS,跳过 xcframework 生成"
|
|
33
|
+
exit 0
|
|
34
|
+
fi
|
|
35
|
+
|
|
36
|
+
# 已生成且两个平台切片齐全 → 跳过(避免每次 pod install 重复下载几十 MB)。
|
|
37
|
+
if [ -d "$XCFW/ios-arm64" ] && [ -d "$XCFW/ios-arm64_x86_64-simulator" ] && [ -d "$BUNDLE" ]; then
|
|
38
|
+
echo "[scankit] xcframework 已存在,跳过"
|
|
39
|
+
exit 0
|
|
40
|
+
fi
|
|
41
|
+
|
|
42
|
+
echo "[scankit] 下载华为 Scan SDK ..."
|
|
43
|
+
TMP="$(mktemp -d)"
|
|
44
|
+
trap 'rm -rf "$TMP"' EXIT
|
|
45
|
+
curl -fsSL "$ZIP_URL" -o "$TMP/sdk.zip"
|
|
46
|
+
unzip -q "$TMP/sdk.zip" -d "$TMP/sdk"
|
|
47
|
+
|
|
48
|
+
SRC_FW="$(find "$TMP/sdk" -type d -name 'ScanKitFrameWork.framework' | head -1)"
|
|
49
|
+
SRC_BUNDLE="$(find "$TMP/sdk" -type d -name 'ScanKitFrameWorkBundle.bundle' | head -1)"
|
|
50
|
+
if [ -z "$SRC_FW" ]; then
|
|
51
|
+
echo "[scankit] ✗ 解压后未找到 ScanKitFrameWork.framework" >&2
|
|
52
|
+
exit 1
|
|
53
|
+
fi
|
|
54
|
+
BIN="$SRC_FW/ScanKitFrameWork"
|
|
55
|
+
|
|
56
|
+
echo "[scankit] 拆片 + vtool 补 arm64-simulator + 组 xcframework ..."
|
|
57
|
+
mkdir -p "$TMP/device" "$TMP/sim"
|
|
58
|
+
|
|
59
|
+
# device:真机 arm64
|
|
60
|
+
cp -R "$SRC_FW" "$TMP/device/ScanKitFrameWork.framework"
|
|
61
|
+
lipo "$BIN" -thin arm64 -output "$TMP/device/ScanKitFrameWork.framework/ScanKitFrameWork"
|
|
62
|
+
|
|
63
|
+
# simulator:arm64(真机片经 vtool 改写成 simulator 平台 7)+ x86_64(原 Intel 模拟器片)
|
|
64
|
+
cp -R "$SRC_FW" "$TMP/sim/ScanKitFrameWork.framework"
|
|
65
|
+
lipo "$BIN" -thin arm64 -output "$TMP/a64d"
|
|
66
|
+
vtool -arch arm64 -set-build-version 7 13.5 13.5 -replace -output "$TMP/a64s" "$TMP/a64d"
|
|
67
|
+
lipo "$BIN" -thin x86_64 -output "$TMP/x86"
|
|
68
|
+
lipo -create "$TMP/a64s" "$TMP/x86" -output "$TMP/sim/ScanKitFrameWork.framework/ScanKitFrameWork"
|
|
69
|
+
|
|
70
|
+
mkdir -p "$OUT_DIR"
|
|
71
|
+
rm -rf "$XCFW"
|
|
72
|
+
xcodebuild -create-xcframework \
|
|
73
|
+
-framework "$TMP/device/ScanKitFrameWork.framework" \
|
|
74
|
+
-framework "$TMP/sim/ScanKitFrameWork.framework" \
|
|
75
|
+
-output "$XCFW"
|
|
76
|
+
|
|
77
|
+
# 资源 bundle(扫码 UI 资源),原由 ScanKitFrameWork pod 带,现随 vendored 一起放。
|
|
78
|
+
if [ -n "$SRC_BUNDLE" ]; then
|
|
79
|
+
rm -rf "$BUNDLE"
|
|
80
|
+
cp -R "$SRC_BUNDLE" "$BUNDLE"
|
|
81
|
+
fi
|
|
82
|
+
|
|
83
|
+
echo "[scankit] ✓ 生成 $XCFW(+ bundle)"
|
package/src/index.tsx
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// @unif/react-native-hms-scan —— 华为 HMS 统一扫码服务 RN bridge(Fabric 新架构)
|
|
2
2
|
// 能力:定制视图扫码(底层 <HmsScanView> + 成品 <Scanner> 扫一扫页)+ 图片识别(decodeImage)+ 相机权限。
|
|
3
|
+
// 0.2.1:package.json#files 补 scripts/,修 pod install 缺 prepare-scankit-xcframework.sh(podspec prepare_command 调用)。
|
|
3
4
|
|
|
4
5
|
// ── 类型与常量 ──
|
|
5
6
|
export {
|