美文网首页
react-native 问题

react-native 问题

作者: 不可雕的板蓝根 | 来源:发表于2019-04-29 10:12 被阅读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
    

    相关文章

      网友评论

          本文标题:react-native 问题

          本文链接:https://www.haomeiwen.com/subject/qmvenqtx.html