react-native-upload icon indicating copy to clipboard operation
react-native-upload copied to clipboard

安卓是否能指定打包上传哪个版本?

Open musicode opened this issue 4 years ago • 30 comments

image

我的需求是上传 devDebug 和 devRelease 版本,最好是提供一个参数,类似 RN

react-native run-android --variant=devDebug

musicode avatar Mar 31 '20 08:03 musicode

ios是否有相同的参数?

fwh1990 avatar Apr 09 '20 03:04 fwh1990

xcode 貌似没这种机制,android 是因为有多渠道打包

musicode avatar Apr 09 '20 03:04 musicode

上传debug和release会有什么体验上的区别吗?

fwh1990 avatar Apr 09 '20 03:04 fwh1990

  1. 在统计上,希望把 dev 渠道的数据区别开
  2. debug 会开 yellow box, release 跟正式版一样

musicode avatar Apr 09 '20 03:04 musicode

  1. 在统计上,希望把 dev 渠道的数据区别开

好,我处理一下。但是ios上渠道没法区分了

fwh1990 avatar Apr 09 '20 05:04 fwh1990

你是通过区分唯一key来上传统计吧?是否能用react-native-config来解决。这样就不需要用debug模式

fwh1990 avatar Apr 09 '20 05:04 fwh1990

我是在 AndroidMainifest.xml 里区分的,因为有些 SDK 需要写在这,而且 rn 都支持 variant,我觉得自动化打包应该也要支持

musicode avatar Apr 09 '20 06:04 musicode

我发布了 [email protected],你更新包并执行 npx upload-fir --debug 查看是否符合你的需求。如果是蒲公英就执行npx upload-pgy --debug

fwh1990 avatar Apr 09 '20 08:04 fwh1990

fir可能不行,最近官网升级换了api,我等下兼容一下

fwh1990 avatar Apr 09 '20 08:04 fwh1990

fir 确实太坑了,没见过还能换域名的

musicode avatar Apr 09 '20 08:04 musicode

听说是.im域名不能备案了。升级到[email protected]可传fir。没问题我就发正式版了

fwh1990 avatar Apr 09 '20 08:04 fwh1990

我先试试,明天回你

musicode avatar Apr 09 '20 09:04 musicode

参数 --debug 表示啥?执行 react-native run-android --variant=devDebug 么?如果是这样,我觉得有些人可能会希望上传 betaDebug 之类的

musicode avatar Apr 09 '20 09:04 musicode

打包和开发不一样。打包分 assembleRelease 和 assembleDebug 。

生产都用 assembleRelease 开发时应该和 assembleDebug 类似

fwh1990 avatar Apr 09 '20 09:04 fwh1990

--variant 默认是debug,官网文档也只提到切换成release,看这里

也可以在项目里输入 react-native run-android --help 查看说明

fwh1990 avatar Apr 09 '20 09:04 fwh1990

因为默认状态下,build.gradle 没有 productFlavors,因此只有 debug 和 release 两个版本,如果配置了 productFlavors,那每个类型,都有 debug 和 release,如 devDebug 和 devRelease

musicode avatar Apr 09 '20 09:04 musicode

开始我以为 rn 不支持 devDebug 这样的参数,后来我试了 react-native run-android --variant=devDebug 发现可以,于是我上面说的这个逻辑,variant 其实全都支持

musicode avatar Apr 09 '20 09:04 musicode

我这边0.59.9的,输入 devDebug 会报错:

Task 'installDevDebug' not found in project ':app'. Some candidates are: 'installDebug'.

除了 --variant=debug 和 --variant=release ,其他值都会报错

fwh1990 avatar Apr 09 '20 09:04 fwh1990

你需要先加 productFlavors,文件在 android/app/build.gradle

android {
    productFlavors 写在这
}

musicode avatar Apr 09 '20 09:04 musicode

android {
    buildTypes {
    }
    productFlavors {
        dev {}
    }
}

musicode avatar Apr 09 '20 09:04 musicode

恶补了一下知识点。升级到[email protected]可以使用 --variant 传参。

fwh1990 avatar Apr 09 '20 11:04 fwh1990

哈哈,这个也就多渠道打包有点用,现在可以 --variant=devDebug 了是吗?

musicode avatar Apr 09 '20 14:04 musicode

可以,符合标准用法

fwh1990 avatar Apr 09 '20 14:04 fwh1990

试用了,最新版安卓正常,ios 打包失败,我的 rn 版本是 0.62.2

musicode avatar Apr 10 '20 06:04 musicode

报什么错? xcode什么版本?

fwh1990 avatar Apr 10 '20 06:04 fwh1990

xcode Version 11.3.1

The following build commands failed:
       	PhaseScriptExecution Bundle\ React\ Native\ code\ and\ images /Users/xx/Library/Developer/Xcode/DerivedData/Project-gorcamhihvbcieaywejdrtzqqbta/Build/Intermediates.noindex/ArchiveIntermediates/Project/IntermediateBuildFilesPath/Project.build/Release-iphoneos/Project.build/Script-00DD1BFF1BD5951E006B06BC.sh

musicode avatar Apr 10 '20 08:04 musicode

我这边一下午都没初始化完0.62.2项目(网络问题),你试试在xcode里直接 Product -> archive 试试能不能打包成功,如果可以,就说明我这里的命令有问题

我这边0.59.9是可以正常打包ios的

fwh1990 avatar Apr 10 '20 09:04 fwh1990

xcode archive 是正常的

musicode avatar Apr 10 '20 10:04 musicode

我刚创建的0.62.2版本,打包ios正常!! macos 10.15.2 xcode 11.3.1 使用 /bin/bash

fwh1990 avatar Apr 10 '20 15:04 fwh1990

试试执行 Product -> Clear Build Folder 后再执行打包。

试试删除 node_modules 目录,然后重新install。

另外可以升级到正式版 [email protected]

fwh1990 avatar Apr 10 '20 16:04 fwh1990