diff --git a/scripts/sentry.gradle b/scripts/sentry.gradle new file mode 100644 index 00000000..77701bee --- /dev/null +++ b/scripts/sentry.gradle @@ -0,0 +1,45 @@ +def reactNativeRoot = rootProject.projectDir.parentFile + +android.applicationVariants.all { variant -> + if (variant.buildType.name == 'release') { + def variantName = variant.name.capitalize() + def bundleTask = tasks.findByName("createBundle${variantName}JsAndAssets") + + if (bundleTask != null) { + def copyAssetsTaskName = "copy${variantName}AssetsToRoot" + + tasks.create(name: copyAssetsTaskName, type: Copy) { + description = "将生成的 assets 和 bundle 文件拷贝到 RN 项目根目录" + group = 'Assets' + + dependsOn bundleTask + + doFirst { + def assetsDir = new File("${reactNativeRoot}/.pushy/intermedia/android") + + if (!assetsDir.exists()) { + def created = assetsDir.mkdirs() + } + } + + from("${buildDir}/generated/assets/createBundleReleaseJsAndAssets") { + include "index.android.bundle" + rename "index.android.bundle", "index.bundlejs" + } + + from("${buildDir}/generated/res/createBundleReleaseJsAndAssets") { + include "drawable*/**" + include "raw/**" + } + + into "${reactNativeRoot}/.pushy/intermedia/android" + + doLast { + println "资源文件拷贝完成,目标目录: ${reactNativeRoot}/assets" + } + } + + bundleTask.finalizedBy tasks.named(copyAssetsTaskName) + } + } +} \ No newline at end of file diff --git a/scripts/sentry.sh b/scripts/sentry.sh new file mode 100755 index 00000000..cf48568e --- /dev/null +++ b/scripts/sentry.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +PROJECT_NAME=$(echo "$CONFIGURATION_BUILD_DIR" | sed -n 's/.*DerivedData\/\([^-]*\).*/\1/p') + +CONFIGURATION_BUILD_DIR="$(dirname "$CONFIGURATION_BUILD_DIR")/Release-iphonesimulator/$PROJECT_NAME.app" + +SOURCE_ASSETS="$CONFIGURATION_BUILD_DIR/assets" +SOURCE_BUNDLE="$CONFIGURATION_BUILD_DIR/main.jsbundle" + +PROJECT_ROOT="$PROJECT_DIR" +TARGET_DIR="$PROJECT_ROOT/../.pushy/intermedia/ios" +TARGET_ASSETS="$TARGET_DIR/assets" + +mkdir -p "$TARGET_DIR" + +echo "开始拷贝React Native资源文件..." + +if [ -d "$SOURCE_ASSETS" ]; then + echo "正在拷贝assets..." + rm -rf "$TARGET_ASSETS" + cp -R "$SOURCE_ASSETS" "$TARGET_DIR/" +else + echo "警告: assets文件夹不存在于源目录" +fi + +if [ -f "$SOURCE_BUNDLE" ]; then + echo "正在拷贝并重命名bundle文件..." + cp "$SOURCE_BUNDLE" "$TARGET_DIR/index.bundlejs" +else + echo "警告: main.jsbundle文件不存在于源目录" +fi + +echo "资源文件拷贝完成!" \ No newline at end of file