react-native 0.68.1

建议 android studio版本 2021.1.1 patch 3 及以上

xcode 13.3.1及以上

android打包

用这个签名

keytool -genkey -v -keystore my-release-key.keystore -alias my-key-alias -keyalg RSA -keysize 2048 -validity 10000

pwd: *** alias=*** CN=***, OU=***, O=***, L=***, ST=***, C=***

android打包报错

tool":"Resource and asset merger

解决办法

node_modules 下的 node_modules/react-native/react.gradle 文件中,在 doFirst 代码块下添加 doLast 代码块,具体代码 code 如下:

doLast {

def moveFunc = { resSuffix ->

File originalDir = file("$buildDir/generated/res/react/release/drawable-${resSuffix}");

if (originalDir.exists()) {

File destDir = file("$buildDir/../src/main/res/drawable-${resSuffix}");

ant.move(file: originalDir, tofile: destDir);

}

}

moveFunc.curry("ldpi").call()

moveFunc.curry("mdpi").call()

moveFunc.curry("hdpi").call()

moveFunc.curry("xhdpi").call()

moveFunc.curry("xxhdpi").call()

moveFunc.curry("xxxhdpi").call()

}

然后清除之前打包缓存,再到android目录执行打包命令

cd android && ./gradlew assembleRelease

android项目执行报错

cmake 3.18.1

[CXX5304] This version only understands SDK XML versions up to 2 but an SDK XML file of version 3 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times.

[CXX5304] 意外的元素 (uri:"", local:"base-extension")。所需元素为<{}codename>,<{}layoutlib>,<{}api-level>

[CXX5304] 意外的元素 (uri:"", local:"base-extension")。所需元素为<{}vendor>,<{}codename>,<{}abi>,<{}api-level>,<{}tag>

[CXX1300] CMake '3.18.1' was not found in SDK, PATH, or by cmake.dir property.

[CXX1300] CMake '3.18.1' was not found in SDK, PATH, or by cmake.dir property.

FAILURE: Build failed with an exception

解决办法 去android SDK安装cmake

关于react-native-camera 配置或者安装问题按照官网步骤做 https://react-native-camera.github.io/react-native-camera/

react-native-audio android报错问题

将目录 /Users/hlyang/Desktop/AnswerEyesAppRN/node_modules/react-native-audio/android

dependencies {

compile fileTree(include: ['*.jar'], dir: 'libs')

compile 'com.android.support:appcompat-v7:${supportVersion}'

compile 'com.facebook.react:react-native:+'

}

改为

dependencies {

implementation fileTree(include: ["*.jar"], dir: "libs")

implementation "com.android.support:appcompat-v7:${supportVersion}"

implementation "com.facebook.react:react-native:+"

}

react-native-audio-recorder-player android报错

Your Project - android/build.gradle

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"

如果没用就将代码加到react-native-audio-recorder-player/build.gradle下

Could not resolve project :react-native-camera

Your Project - app/build.gradle

android {

...

defaultConfig {

...

missingDimensionStrategy 'react-native-camera', 'general' // <-- insert this line

}

}

react-native 0.48.4

third-party: ‘config.h’ file not found

解决办法

cd node_modules/react-native/third-party/glog-0.3.4

../../scripts/ios-configure-glog.sh

library not found for -lRNVectorIcons-tvOS

解决办法:移除 lRNVectorIcons-tvOS.a

Multiple commands produce '/Users/lvshaoli/Library/Developer/Xcode/DerivedData/JDDoctorAppRN-azaiuoqhmdxxabepdpyxixwamuap/Build/Products/Debug-iphonesimulator/JDDoctorAppRN.app/Entypo.ttf

解决办法:有重复字体,删除重复字体

"apt finished with non-zero exit value 127"报错的解决办法

sudo apt-get install lib32z1

安装lib32z1之后,并更新sdk解决该问题

React Native打包android apk安装包报错: Original is here. The version qualifier may be implied.

用Android Studio打开android目录,找到res/drawable目录,把里面的图片文件都删掉(因为这些图片都是React Native自动生成的,所以删除即可)。再次重新执行gradlew assembleRelease命令就不会报错了。

android打包流程

a.npm run android-build b. cd android && ./gradlew assembleRelease

热更新

code-push release-react APP名称 android --t 1.0.0 --dev false --d Staging --des “1.优化操作流程” --m true 其中参数–t为二进制(.ipa与apk)安装包的的版本;–dev为是否启用开发者模式(默认为false);–d是要发布更新的环境分Production与Staging(默认为Staging);–des为更新说明;–m 是强制更新。

code-push deployment ls APP名称 code-push deployment h APP名称 Staging 历史部署列表 code-push promote APP名称 Staging Production 使用promote将Staging推到Production code-push rollback APP名称 Production 使用rollback回滚 --targetRelease来指定rollback到的版本 code-push rollback MyAppAndroid Production --targetRelase v2 code-push debug android code-push debug ios

把更新推到另一个环境: code-push promote APP名称 Staging Production 关闭某个版本: code-push patch MyApp Staging -l v13 --des ‘关闭v13’ -x true

当你想发布一个更新,但是却不想让这个更新立马生效,比如想对外公布一些信息后才让这个更新生效,这时候就可以使用code-push promote MyAppAndroid Staging Production --disabled false来发布更新到正式环境,在对外公布信息后,使用code-push patch MyAppAndroid Production --disabled true来让用户可以使用这个更新。

the modules [xx1, xx2] point to the same directory in the file system.

解决办法:

在菜单工具栏中:File → Invalidated Caches / Restart… → Invalidate & Restart

Error:Execution failed for task ‘:app:dexDebug’. > com.android.ide.common.process.ProcessException

app/build.gradle添加 dexOptions { jumboMode = true }

android项目出现 Indexing paused due to batch updated

退出AS,去项目目录下删除项目module下所有的.impl文件,删除项目所有的.idea文件 重启stdio clean

安卓打包遇到问题 /node_modules/react-native/third-party/glog-0.3.4/test-driver’. Couldn’t follow symbolic link.

只需要切换到项目根目录执行下面这条 unlink 命令 unlink node_modules/react-native/third-party/glog-0.3.4/test-driver

安卓打包 Original is here. The version qualifier may be implied

解决办法 用Android Studio打开android目录,找到res/drawable目录,把里面的图片文件都删掉(因为这些图片都是React Native自动生成的,所以删除即可)。再次重新执行gradlew assembleRelease命令就不会报错了

低版本ReactNative在XCode11启动时异常问题的解决办法

在升级Xcode11之后,使用低于0.59.9版本的React Native,启动时必将出现问题:

模拟器运行报红如下: Unknown argument type"attribute_inmethod-irctappstate getcurrentappstate: error: Extend Rctconvert to support this type. [Rctmodulemethod processmethodsignature] Rctmodulemethod, mm: 376 -[Rctmodulemethod invokewithbridge: module: arguments: ]

解决办法一:

找到文件RCTModuleMethod.mm,路径:node_modules/react-native/React/Base/RCTModuleMethod.mm (原文文件名称为RCTModuleMethod.mm.mm,但是我的项目中文件名为RCTModuleMethod.m); 在RCTParseUnused接口中新增新的解析字段,新增RCTReadString(input, “attribute((unused))”)代码,如下:

static BOOL RCTParseUnused(const char **input)

{

return RCTReadString(input, "__unused") ||

RCTReadString(input, "__attribute__((__unused__))") || //lzj fixed

RCTReadString(input, "__attribute__((unused))");

}

重新运行即已正常。

精彩链接

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: