react-native-config 配置多包名&多环境 APKs 共存

以前都是准备几台不同的 android 手机安装不同环境的包,如果想一个手机安装不同环境的包,只能删了重新打然后重新安装。
解决问题的根本原因是,构建不同环境的包,假设我有三个环境

- Staging -> .env.Staging -> com.duolegamehelper.staging
- Alpha -> .env.alpha -> com.duolegamehelper.alpha
- Production -> .env.production -> com.duolegamehelper.production

那么我就打包的时候,通过不同的.env配置文件,动态的把包名和 APP 的名字打进去。
研究了半天,其实react-native-config是可以解决这个问题的,只不过需要修改打包的gradle脚本。

阅读更多

Error installing lottie-ios

iOS安装lottie报错:

[!] Error installing lottie-ios
[!] /usr/local/bin/git clone https://github.com/airbnb/lottie-ios.git /var/folders/s4/d4hj6wbj1_j3w4ynthv1klf80000gn/T/d20240201-9298-1c37cjq --template= --single-branch --depth 1 --branch 4.4.0

正克隆到 '/var/folders/s4/d4hj6wbj1_j3w4ynthv1klf80000gn/T/d20240201-9298-1c37cjq'...
error: RPC 失败。curl 56 Recv failure: Connection reset by peer
error: 预期仍然需要 5466 个字节的正文
fetch-pack: unexpected disconnect while reading sideband packet
fatal: 过早的文件结束符(EOF)
fatal: index-pack 失败
阅读更多

淘宝npm证书yarn报错(certificate has expired)

这尼玛大早上的来就给我报错,

error An unexpected error occurred: “https://registry.npm.taobao.org/@react-native-async-storage%2fasync-storage: certificate has expired”.

➜  chnqoo-recollections-mobile git:(main) yarn
yarn install v1.22.10
info No lockfile found.
[1/5] 🔍 Validating package.json...
[2/5] 🔍 Resolving packages...
error An unexpected error occurred: "https://registry.npm.taobao.org/@react-native-async-storage%2fasync-storage: certificate has expired".
info If you think this is a bug, please open a bug report with the information provided in "/Users/sunyg/chnqoo-recollections-mobile/yarn-error.log".
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
阅读更多

tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

新项目执行pod install报错 …

xcode-select: error: tool ‘xcodebuild’ requires Xcode, but active developer directory ‘/Library/Developer/CommandLineTools’ is a command line tools instance

➜  ios git:(main) ✗ pod install
Ignoring ffi-1.14.2 because its extensions are not built. Try: gem pristine ffi --version 1.14.2
Auto-linking React Native modules for target `DuoleGameHelper`: RNCAsyncStorage, RNGestureHandler, RNScreens, and react-native-safe-area-context
Framework build type is static library
[Codegen] Generating ./build/generated/ios/React-Codegen.podspec.json
[Codegen] generating an empty RCTThirdPartyFabricComponentsProvider
Analyzing dependencies
Fetching podspec for `DoubleConversion` from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`
[Codegen] Found FBReactNativeSpec
Fetching podspec for `RCT-Folly` from `../node_modules/react-native/third-party-podspecs/RCT-Folly.podspec`
[Codegen] Found rncore
Fetching podspec for `boost` from `../node_modules/react-native/third-party-podspecs/boost.podspec`
Fetching podspec for `glog` from `../node_modules/react-native/third-party-podspecs/glog.podspec`
xcode-select: error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance
[!] Failed to load 'glog' podspec:
[!] Invalid `glog.podspec` file: undefined method `[]' for nil:NilClass.

# from /Users/sunyg/DuoleGameHelper/node_modules/react-native/third-party-podspecs/glog.podspec:38
# -------------------------------------------
# match = xcode_path.match(/Xcode (\d+)\.(\d+)/)
> major_version = match[1].to_i
# minor_version = match[2].to_i
# -------------------------------------------
阅读更多

Unable to resolve module `./debugger-ui/debuggerWorker.d9da4ed7` from ``

公司的祖传代码升级,升级完了没法调试了 …

Error: Unable to resolve module `./debugger-ui/debuggerWorker.d9da4ed7` from ``:

None of these files exist:
* debugger-ui/debuggerWorker.d9da4ed7(.native|.native.js|.js|.native.json|.json|.native.ts|.ts|.native.tsx|.tsx)
* debugger-ui/debuggerWorker.d9da4ed7/index(.native|.native.js|.js|.native.json|.json|.native.ts|.ts|.native.tsx|.tsx)
at ModuleResolver.resolveDependency (/Users/sunyg/marineonline-mobile/node_modules/metro/src/node-haste/DependencyGraph/ModuleResolution.js:163:15)
at ResolutionRequest.resolveDependency (/Users/sunyg/marineonline-mobile/node_modules/metro/src/node-haste/DependencyGraph/ResolutionRequest.js:52:18)
at DependencyGraph.resolveDependency (/Users/sunyg/marineonline-mobile/node_modules/metro/src/node-haste/DependencyGraph.js:282:16)
at /Users/sunyg/marineonline-mobile/node_modules/metro/src/lib/transformHelpers.js:267:42
at /Users/sunyg/marineonline-mobile/node_modules/metro/src/Server.js:1305:37
at Generator.next (<anonymous>)
at asyncGeneratorStep (/Users/sunyg/marineonline-mobile/node_modules/metro/src/Server.js:99:24)
at _next (/Users/sunyg/marineonline-mobile/node_modules/metro/src/Server.js:119:9)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:96:5)
::ffff:192.168.210.117 - - [18/Jan/2024:03:06:50 +0000] "POST /symbolicate HTTP/1.1" 500 - "-" "okhttp/4.8.1"
BUNDLE [android, dev] ./index.js ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 100.0% (1/1), done.

他奶奶的我就知道绝对是这个坑货搞的鬼 …

https://github.com/facebook/metro/issues/731

阅读更多

Failed to transform ?.jar/?.aar

> Task :app:desugarDevDebugFileDependencies FAILED
Execution failed for task ':app:desugarDevDebugFileDependencies'.
> Could not resolve all files for configuration ':app:devDebugRuntimeClasspath'.
> Failed to transform android-sdk-1.2.1.aar (com.paypal.checkout:android-sdk:1.2.1) to match attributes {artifactType=processed-jar, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
> Execution failed for JetifyTransform: /Users/sunyg/.gradle/caches/transforms-2/files-2.1/0c7dd15c0f53a65d39de0cadcd9b99fa/android-sdk-1.2.1/jars/classes.jar.
> Failed to transform '/Users/sunyg/.gradle/caches/transforms-2/files-2.1/0c7dd15c0f53a65d39de0cadcd9b99fa/android-sdk-1.2.1/jars/classes.jar' using Jetifier. Reason: null. (Run with --stacktrace for more details.)
> Failed to transform PayPalPartnerAuth-1.8.4.aar (com.paypal.android:PayPalPartnerAuth:1.8.4) to match attributes {artifactType=processed-jar, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
> Execution failed for JetifyTransform: /Users/sunyg/.gradle/caches/transforms-2/files-2.1/2af375fc36788e051fa39e778b7da182/PayPalPartnerAuth-1.8.4/jars/classes.jar.
> Failed to transform '/Users/sunyg/.gradle/caches/transforms-2/files-2.1/2af375fc36788e051fa39e778b7da182/PayPalPartnerAuth-1.8.4/jars/classes.jar' using Jetifier. Reason: null. (Run with --stacktrace for more details.)
> Failed to transform auth-sdk-thirdParty-1.4.0.aar (com.paypal.android.platform:auth-sdk-thirdParty:1.4.0) to match attributes {artifactType=processed-jar, org.gradle.category=library, org.gradle.dependency.bundling=external, org.gradle.libraryelements=aar, org.gradle.status=release, org.gradle.usage=java-runtime}.
> Execution failed for JetifyTransform: /Users/sunyg/.gradle/caches/transforms-2/files-2.1/fb630df5a6a959d0abfb5e0cef776121/auth-sdk-thirdParty-1.4.0/jars/classes.jar.
> Failed to transform '/Users/sunyg/.gradle/caches/transforms-2/files-2.1/fb630df5a6a959d0abfb5e0cef776121/auth-sdk-thirdParty-1.4.0/jars/classes.jar' using Jetifier. Reason: null. (Run with --stacktrace for more details.)

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
阅读更多