react-native 问题

2019-04-29  本文已影响0人  不可雕的板蓝根
1、命令cd '目录'下,命令react-native init 'project'创建项目。
2、运行报错网络错误500,则是版本问题,需回到目录下命令react-native init 'project' -version 0.55.4,加入三方插件后报这个错,则删除app后重新运行。
3、之后再次运行遇到make sure you're either running a metro server or that your bundle 'index.android.budle' is packaged correctly for realease,则是android目录下build.gradle中的targetSdkVersion改为27,而不是28。
选择照片相机时出错,
showImagePicker Failed resolution of: Landroid/support/v4/graphics/drawable/DrawableWrapper
implementation("com.android.support:support-media-compat:27.1.1")
implementation("com.android.support:support-v4:27.1.1")
implementation("com.android.support:exifinterface:27.1.1")
implementation 'com.android.support:appcompat-v7:27.1.1'
均需将此依赖升级成27.1.1版本,否则报错
申请开发版sha1
1、命令.android进入目录,命令keytool -list -v -keystore debug.keystore后,输入密码(android)得到sha1。
69:E4:A0:12:D9:A3:64:50:7C:4A:FC:DF:9E:72:5B:94:93:02:56:B9
申请发布sha2
1、打开项目 build => Generate Signed APK,Generate Signed APK灰色状态,选择File下Sync Project With Gradle Files刷新即可。
按步骤在项目 android/app 下生成一个 .keystore 文件,命令keytool -list -v -keystore (.keystore 文件路径),输入密码(1步骤中所设密码)得到sha1。
5C:92:CD:E9:91:29:B6:FC:F3:78:DC:FC:DF:92:A5:CB:8C:A0:C7:0F
2、命令sudo Keytool -genkey -alias 别名 -keyalg RSA -validity 20000 -keystore 证书

index.android.bundle问题

第一步:在Android/app/src/main目录下创建一个空的assets文件夹
第二步:react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
再次执行 react-native run-android

1.在项目根目录下创建/bundle/iosBundle/目录
2.在项目根目录下运行 
react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/bundle/main.jsbundle --assets-dest ios/bundle
3.生成的index.ios.jsbundle导入ios项目中
4.在AppDelegate.m中使用main.jsbundle
    jsCodeLocation = [[NSBundle mainBundle] URLForResource:@"main" withExtension:@"jsbundle"];
上架应用宝app加固后,下载加固包,
命令加固包路径下,
/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/jarsigner -verbose -keystore /Users/gaoyi/Desktop/Company/android_js/android/app/GHED.jks -signedjar app-release_2019_05_29_1.apk app-release_2019_05_29_legu.apk ghed

/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home/bin/jarsigner签名工具
/Users/gaoyi/Desktop/Company/android_js/android/app/GHED.jks jks工具
app-release_2019_05_29_1.apk 新生成的加固包apk
app-release_2019_05_29_legu.apk 下载的加固包apk
ghed jks别名
iOS 上启动react-native项目:

创建podfile文件,内容如下:
source 'https://github.com/CocoaPods/Specs.git'
platform:ios,'9.0'
use_frameworks!
target 'android_js' do

# 'node_modules'目录一般位于根目录中
 # 但是如果你的结构不同,那你就要根据实际路径修改下面的`:path`
 pod 'React', :path => '../node_modules/react-native', :subspecs => [
   'Core',
   'CxxBridge', # 如果RN版本 >= 0.47则加入此行
   'DevSupport', # 如果RN版本 >= 0.43,则需要加入此行才能开启开发者菜单
   'RCTText',
   'RCTNetwork',
   'RCTWebSocket', # 调试功能需要此模块
   'RCTAnimation', # FlatList和原生动画功能需要此模块
   # 在这里继续添加你所需要的其他RN模块
 ]
 # 如果你的RN版本 >= 0.42.0,则加入下面这行
 pod 'yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
 pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
 pod 'GLog', :podspec => '../node_modules/react-native/third-party-podspecs/GLog.podspec'
 pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
end

Xcode编译报错:在React 下 clang中找不到架构x86_64的符号,在React.podspec中你需要改变 cxxreact下的
ss.compiler_flags       = folly_compiler_flags
为
ss.dependency             "DoubleConversion"
ss.dependency             "GLog"
ss.compiler_flags       = folly_compiler_flags

重新pod install即可。

react-native run-ios启动报错 No bundle URL present Make sure you're running a packager server...解决办法
删除ios文件夹下面的main.jsbundle文件中的内容
运行react-native bundle --entry-file index.js --platform ios --dev false --bundle-output ios/main.jsbundle --assets-dest ios重新构建bundle,构建成功后运行react-native run-ios
上一篇下一篇

猜你喜欢

热点阅读