Bangumi
Bangumi copied to clipboard
F-Droid
请问是否可以将应用打包发布到 F-Droid?
我看看
谢谢!
不客气
------------------ 原始邮件 ------------------ 发件人: "czy0729/Bangumi" @.>; 发送时间: 2022年1月31日(星期一) 晚上6:31 @.>; @.***>; 主题: Re: [czy0729/Bangumi] F-Droid (Issue #41)
谢谢!
— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.***>
不客气 … ------------------ 原始邮件 ------------------ 发件人: "czy0729/Bangumi" @.>; 发送时间: 2022年1月31日(星期一) 晚上6:31 @.>; @.>; 主题: Re: [czy0729/Bangumi] F-Droid (Issue #41) 谢谢! — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you are subscribed to this thread.Message ID: @.>
这是哪里的邮件
如果你没有时间,我可以打包提交吗?
你假如可以的话, 随便玩我没意见的. 其实我之前看过, 完全看不懂怎么提交到这个市场, 做的那些操作也是莫名其妙... 但是感觉你拉下来是打不了包的吧, 我好多关于秘钥之类的文件都没上传的.
请问是需要 api 密钥吗
其实我之前看过, 完全看不懂怎么提交到这个市场, 做的那些操作也是莫名其妙...
配置文件不熟悉是比较麻烦 :joy:
但是感觉你拉下来是打不了包的吧, 我好多关于秘钥之类的文件都没上传的.
请问是需要 api 密钥吗
打包apk 肯定是有个秘钥的 这个东西我当然不会上传的啦 上传到这个平台 我不知道是不是要用到他们提供的东西 假如不用的话 我不知道是不是可以直接丢个apk上去
F-Droid 的应用都是从源码构建然后使用自己的密钥签名的。所以没有问题。
Project with path ':expo-modules-core' could not be found in project ':unimodules_react-native-adapter'.
我卡在了这里,请问你知道这是什么问题吗?
你用这条分支重新装包 https://github.com/czy0729/Bangumi/tree/F-Droid 你现在用的应该是 expo 分支, 只用来开发iOS的
https://czy0729.lanzouq.com/idBqe04hzcdc 我把这个都给你 你拉完分支 下载这个解压放进里面 基本应该可以跟我打包出来的一样
不过我感觉 你应该告诉我怎么做 我来发布是最简单的 不然我感觉没完没了
我在那边开了个 MR,https://gitlab.com/fdroid/fdroiddata/-/merge_requests/11024 . 现在的问题是有个 expo-location 模块使用了 GMS,是专有库。我不知道怎么去掉。
我也看不懂 实际上我也没主动下过这个包
AndroidManifest.xml 试试把 android.permission.ACCESS_COARSE_LOCATION android.permission.ACCESS_FINE_LOCATION 去掉看看
这个包是 expo 的一个依赖项,仅仅去掉权限不行,我尝试一下 https://docs.expo.dev/bare/installing-unimodules/#-need-to-exclude-some-unimodules-that
安卓端用的是expo@41, 但是不是纯expo, 已经从他的环境里面eject出来的, 但是很多跟expo无关的库还是在用的, 他自己一点一点拆出来的
https://docs.expo.dev/bare/installing-unimodules/#configuration-for-android
package.json:
{ "name": "...", "dependencies": {}, "react-native-unimodules": { "android": { "exclude": [ "expo-location" ] } } }
我不知道41的时候这个东西有没有支持, 感觉这个配置是应该不支持eject的环境
我测试了一下,没什么效果。明天还要再试试在 gradle 里能不能排除。
用 gradle 成功了,可以看看有哪些模块不需要,去掉可以减小编译时间和体积。我现在卡在 react-native-smb 上,正在尝试。
忘记跟你说 react-native-smb 这个包 npm 上面的包是不能用的, 我后来强行改掉了里面的代码, 肯定是打不了包的. 只能把这个功能去掉不用
请问需要怎么改代码?可以用 patch 打上去。
react-native-smb/android/src/main/java/com/reactlibrarysmbbodaghi/RNSmbModule.java
#31 // import android.support.v4.app.ActivityCompat; // import android.support.v4.content.ContextCompat; import androidx.core.app.ActivityCompat; import androidx.core.content.ContextCompat;
我还真不知道怎么打这种patch
我就是卡在这里,加了 com.android.support:support-compat:28.0.0
也不行,我换成 androidX 试试,谢谢!
构建没什么问题了,确实有点复杂。https://gitlab.com/fdroid/fdroiddata/-/merge_requests/11024
可以在这边将不需要的 expo 模块去掉吗?按照 https://github.com/expo/expo/issues/11742#issuecomment-832466549 的步骤在 gradle 里可以排除。
https://github.com/czy0729/Bangumi/blob/a295613595a19c7d452e5e0214b626e31f260184/android/app/build.gradle#L88
这里的路径是相对于 gradle 的执行路径的,所以如果在 app 目录下执行就会出问题,应该可以改成相对于文件的路径。
请问之后 Android 的代码会在单独的分支里吗?F-Droid 按照 Tag 自动更新。
去掉的意思是你帮我去掉, 还是我来去掉? 我其实不懂跟java相关的代码, 看着看熟了大概是看得懂写什么, 实际改我是改不动的. 你能去掉的话代码随便改我也是不会有意见的.
其实现在能跑通再说其他的, 自动更新的不太科学, 我不保证我写的代码在这里面能自动通.
上面这个 def expoVersionCode 的问题, 我是在根目录下面, 运行 yarn build 打包的, 就是 "cd android && ./gradlew assembleRelease && cd .. && node web/rename.js", 写这个因为不想每次都进去改非JavaScript的代码, 在外头自己经常改的文件里面一并改了, 无非就是 '..' 的问题, 先写死跑通再看看.
去掉的意思是你帮我去掉, 还是我来去掉? 我其实不懂跟java相关的代码, 看着看熟了大概是看得懂写什么, 实际改我是改不动的. 你能去掉的话代码随便改我也是不会有意见的.
我并不是 Android 程序员,所以也只能试一试。
我试了一下构建出来的 apk,打开就闪退,不清楚是不是排除 expo 模块的问题。日志只有 js 引擎的信息,没什么用。我看看是不是我打补丁造成的。
就是现在这个平台帮忙打包已经是可以顺利构建完成 apk 出来了吗?
我看了眼那个 .yml 实际我没写过这种构建配置, 下面是猜测
- rm: umeng, 也许是这里导致 js 里面调用报错, 需要移除掉相关的js代码试试
- prebuild: mv ../gradle_yours.properties ../gradle.properties 我看不懂这句话, 实际上打包是识别 gradle.properties, gradle.properties 这个文件我没上传到git, 是忽略的一个隐私文件, gradle_yours.properties 是我想告诉其他fork代码的人使用自己的秘钥罢了. 意思是实际打包需要我那天给你发的里面的几个秘钥文件.
就是现在这个平台帮忙打包已经是可以顺利构建完成 apk 出来了吗?
是的,构建日志在这里,https://gitlab.com/linsui/fdroiddata/-/jobs/2436734137 ,apk 在 https://gitlab.com/linsui/fdroiddata/-/jobs/2436734137/artifacts/browse/tmp/ 。
rm: umeng, 也许是这里导致 js 里面调用报错, 需要移除掉相关的js代码试试
我确实没有检查 js 里有没有相关代码,请问具体是哪些?
prebuild: mv ../gradle_yours.properties ../gradle.properties 我看不懂这句话, 实际上打包是识别 gradle.properties, gradle.properties 这个文件我没上传到git, 是忽略的一个隐私文件, gradle_yours.properties 是我想告诉其他fork代码的人使用自己的秘钥罢了. 意思是实际打包需要我那天给你发的里面的几个秘钥文件.
因为 F-Droid 构建的是未签名的 apk,签名相关的代码我也去掉了,所以应该不需要签名密钥,我就直接把 gradle_yours.properties 重命名使用了。
F-Droid 的配置过程是按照 sudo, init, rm, prebuild, build, gradle 的顺序进行构建的,构建在 Debian Stretch 虚拟机上运行。由于 F-Droid 要求所有的二进制文件从几个信任的存储库中下载或者从源码构建,所以我构建了 reanimated,然后去掉了一些不开源的库。