Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

F-Droid #41

Open
linsui opened this issue Jan 31, 2022 · 112 comments
Open

F-Droid #41

linsui opened this issue Jan 31, 2022 · 112 comments

Comments

@linsui
Copy link

linsui commented Jan 31, 2022

请问是否可以将应用打包发布到 F-Droid

@czy0729
Copy link
Owner

czy0729 commented Jan 31, 2022

我看看

@linsui
Copy link
Author

linsui commented Jan 31, 2022

谢谢!

@mikurose
Copy link

mikurose commented Jan 31, 2022 via email

@czy0729
Copy link
Owner

czy0729 commented Jan 31, 2022

不客气

------------------ 原始邮件 ------------------ 发件人: "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: @.>

这是哪里的邮件
)M14SEALAJW$TP)X%O~E)~P

@linsui
Copy link
Author

linsui commented May 7, 2022

如果你没有时间,我可以打包提交吗?

@czy0729
Copy link
Owner

czy0729 commented May 7, 2022

你假如可以的话, 随便玩我没意见的.
其实我之前看过, 完全看不懂怎么提交到这个市场, 做的那些操作也是莫名其妙... 但是感觉你拉下来是打不了包的吧, 我好多关于秘钥之类的文件都没上传的.

@linsui
Copy link
Author

linsui commented May 7, 2022

请问是需要 api 密钥吗

@linsui
Copy link
Author

linsui commented May 7, 2022

其实我之前看过, 完全看不懂怎么提交到这个市场, 做的那些操作也是莫名其妙...

配置文件不熟悉是比较麻烦 😂

但是感觉你拉下来是打不了包的吧, 我好多关于秘钥之类的文件都没上传的.

请问是需要 api 密钥吗

@czy0729
Copy link
Owner

czy0729 commented May 7, 2022

打包apk 肯定是有个秘钥的 这个东西我当然不会上传的啦
上传到这个平台 我不知道是不是要用到他们提供的东西 假如不用的话 我不知道是不是可以直接丢个apk上去

@linsui
Copy link
Author

linsui commented May 7, 2022 via email

@linsui
Copy link
Author

linsui commented May 8, 2022

Project with path ':expo-modules-core' could not be found in project ':unimodules_react-native-adapter'. 我卡在了这里,请问你知道这是什么问题吗?

@czy0729
Copy link
Owner

czy0729 commented May 8, 2022

你用这条分支重新装包 https://github.com/czy0729/Bangumi/tree/F-Droid
你现在用的应该是 expo 分支, 只用来开发iOS的

@czy0729
Copy link
Owner

czy0729 commented May 8, 2022

https://czy0729.lanzouq.com/idBqe04hzcdc
我把这个都给你 你拉完分支 下载这个解压放进里面 基本应该可以跟我打包出来的一样

@czy0729
Copy link
Owner

czy0729 commented May 8, 2022

不过我感觉 你应该告诉我怎么做 我来发布是最简单的 不然我感觉没完没了

@linsui
Copy link
Author

linsui commented May 8, 2022

我在那边开了个 MR,https://gitlab.com/fdroid/fdroiddata/-/merge_requests/11024 . 现在的问题是有个 expo-location 模块使用了 GMS,是专有库。我不知道怎么去掉。

@czy0729
Copy link
Owner

czy0729 commented May 8, 2022

我也看不懂 实际上我也没主动下过这个包

@czy0729
Copy link
Owner

czy0729 commented May 8, 2022

AndroidManifest.xml 试试把
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
去掉看看

@linsui
Copy link
Author

linsui commented May 8, 2022

这个包是 expo 的一个依赖项,仅仅去掉权限不行,我尝试一下 https://docs.expo.dev/bare/installing-unimodules/#-need-to-exclude-some-unimodules-that

@czy0729
Copy link
Owner

czy0729 commented May 8, 2022

安卓端用的是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的环境

@linsui
Copy link
Author

linsui commented May 8, 2022

我测试了一下,没什么效果。明天还要再试试在 gradle 里能不能排除。

@linsui
Copy link
Author

linsui commented May 10, 2022

用 gradle 成功了,可以看看有哪些模块不需要,去掉可以减小编译时间和体积。我现在卡在 react-native-smb 上,正在尝试。

@czy0729
Copy link
Owner

czy0729 commented May 10, 2022

忘记跟你说 react-native-smb 这个包 npm 上面的包是不能用的, 我后来强行改掉了里面的代码, 肯定是打不了包的.
只能把这个功能去掉不用

@linsui
Copy link
Author

linsui commented May 10, 2022

请问需要怎么改代码?可以用 patch 打上去。

@czy0729
Copy link
Owner

czy0729 commented May 10, 2022

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

@linsui
Copy link
Author

linsui commented May 10, 2022

我就是卡在这里,加了 com.android.support:support-compat:28.0.0 也不行,我换成 androidX 试试,谢谢!

@linsui
Copy link
Author

linsui commented May 10, 2022

构建没什么问题了,确实有点复杂。https://gitlab.com/fdroid/fdroiddata/-/merge_requests/11024

可以在这边将不需要的 expo 模块去掉吗?按照 expo/expo#11742 (comment) 的步骤在 gradle 里可以排除。

def expoVersionCode = "node -p require('../app.json').expo.android.versionCode".execute().text.trim().toInteger()

这里的路径是相对于 gradle 的执行路径的,所以如果在 app 目录下执行就会出问题,应该可以改成相对于文件的路径。

请问之后 Android 的代码会在单独的分支里吗?F-Droid 按照 Tag 自动更新。

@czy0729
Copy link
Owner

czy0729 commented May 10, 2022

去掉的意思是你帮我去掉, 还是我来去掉?
我其实不懂跟java相关的代码, 看着看熟了大概是看得懂写什么, 实际改我是改不动的.
你能去掉的话代码随便改我也是不会有意见的.

其实现在能跑通再说其他的, 自动更新的不太科学, 我不保证我写的代码在这里面能自动通.

上面这个 def expoVersionCode 的问题, 我是在根目录下面, 运行 yarn build 打包的, 就是
"cd android && ./gradlew assembleRelease && cd .. && node web/rename.js",
写这个因为不想每次都进去改非JavaScript的代码, 在外头自己经常改的文件里面一并改了, 无非就是 '..' 的问题, 先写死跑通再看看.

@linsui
Copy link
Author

linsui commented May 10, 2022

去掉的意思是你帮我去掉, 还是我来去掉?
我其实不懂跟java相关的代码, 看着看熟了大概是看得懂写什么, 实际改我是改不动的.
你能去掉的话代码随便改我也是不会有意见的.

我并不是 Android 程序员,所以也只能试一试。

我试了一下构建出来的 apk,打开就闪退,不清楚是不是排除 expo 模块的问题。日志只有 js 引擎的信息,没什么用。我看看是不是我打补丁造成的。

@czy0729
Copy link
Owner

czy0729 commented May 10, 2022

就是现在这个平台帮忙打包已经是可以顺利构建完成 apk 出来了吗?

我看了眼那个 .yml 实际我没写过这种构建配置, 下面是猜测

  • rm: umeng, 也许是这里导致 js 里面调用报错, 需要移除掉相关的js代码试试
  • prebuild: mv ../gradle_yours.properties ../gradle.properties 我看不懂这句话, 实际上打包是识别 gradle.properties, gradle.properties 这个文件我没上传到git, 是忽略的一个隐私文件, gradle_yours.properties 是我想告诉其他fork代码的人使用自己的秘钥罢了. 意思是实际打包需要我那天给你发的里面的几个秘钥文件.

@linsui
Copy link
Author

linsui commented May 10, 2022

就是现在这个平台帮忙打包已经是可以顺利构建完成 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,然后去掉了一些不开源的库。

@czy0729
Copy link
Owner

czy0729 commented Sep 8, 2022

等我直接7.0 我会在分支上面打 fdroid的字眼 他貌似就会拿来打包了 只要你那边配置好

@linsui
Copy link
Author

linsui commented Sep 8, 2022

好的 👌

@linsui
Copy link
Author

linsui commented Oct 5, 2022

https://gitlab.com/fdroid/fdroiddata/-/merge_requests/11845 7.1.1 构建没问题了。

我会在分支上面打 fdroid的字眼

fdroidserver 不检查分支,只检查 tag。请问可以给用于 fdroid 的提交上打个 tag 吗?比如 7.1.1-fdroid 这样。谢谢!

@czy0729
Copy link
Owner

czy0729 commented Oct 5, 2022

我还好奇为什么不构建呢,不过我记得上次我也没打tag,但是我感觉打tag貌似要发release?

@linsui
Copy link
Author

linsui commented Oct 6, 2022

GitHub 的 release 和 tag 是分开的。打 tag 只用 git 就可以,发布 release 应该还要在 GitHub 上操作。https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository

自动更新可以设置成根据 tag 进行正则匹配,下次有更新 ping 我一下我就更新一下构建配方让它可以自动更新。

@czy0729
Copy link
Owner

czy0729 commented Nov 1, 2022

@linsui 我发了一个 F-Droid-7.2.3 的分支,其实不打 tag 能监测到并打包吗?
还是说我要发布一个专门打了带 F-Droid 字眼 tag 的 release 呢?

@linsui
Copy link
Author

linsui commented Nov 1, 2022

F-Droid 自动更新只能通过 tag 实现。tag 可以添加限制条件只匹配一个正则表达式。目前应该没有其他办法了。或者如果 patch 不会经常变化的话,就把 patch 的步骤放在 F-Droid 的 build metadata 也行。

@linsui
Copy link
Author

linsui commented Nov 1, 2022

不频繁更新的话,每次在这说一声我手动更新也行 🤣

@czy0729
Copy link
Owner

czy0729 commented Nov 1, 2022

没有patch了,现在是这条分支直接打包就好(如果代码没写错)。打 tag 不 release 在 github 上能不能直接操作?我不敢随便 release 因为我 APP 里面写了点检查更新的逻辑,随便发个 release 可能会提示新版本🤣

@linsui
Copy link
Author

linsui commented Nov 1, 2022

这个是可以的,我记得直接推送 tag 就行, release 要手动发布?

@linsui
Copy link
Author

linsui commented Nov 1, 2022

试了一下,直接 git push origin test 把 tag 推送到远端就行,没有 release。
https://github.com/linsui/Tarnhelm/tags

@czy0729
Copy link
Owner

czy0729 commented Nov 1, 2022

@linsui
Copy link
Author

linsui commented Nov 1, 2022

我更新一下,之后应该就可以自动更新了 👌

@linsui
Copy link
Author

linsui commented Nov 1, 2022

https://gitlab.com/fdroid/fdroiddata/-/merge_requests/12017 已更新

之后可以看看能不能每个 abi 单独构建。现在 40+M 还是有点大。把

abiFilters nativeArchitectures.split(',')
放到 release 里应该就可以了,然后
output.versionCodeOverride = versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
的 version code 要改一下。

@1sixth
Copy link

1sixth commented Jan 24, 2023

目前 F-Droid 上的版本停在了 7.2.3,请问以后还打算推送 F-Droid 开头的 tag 吗?

@czy0729
Copy link
Owner

czy0729 commented Feb 3, 2023

目前 F-Droid 上的版本停在了 7.2.3,请问以后还打算推送 F-Droid 开头的 tag 吗?

下个版本我提交一下!

@1sixth
Copy link

1sixth commented Feb 4, 2023

谢谢!

@czy0729
Copy link
Owner

czy0729 commented Feb 13, 2023

@linsui
Copy link
Author

linsui commented Feb 13, 2023

可以打个 tag 吗?

@czy0729
Copy link
Owner

czy0729 commented Feb 13, 2023

我忘了要这么做了

@czy0729
Copy link
Owner

czy0729 commented Feb 13, 2023

7.7.0的分支弄坏了, 我不会处理, 直接新建了个7.7.1的, 也带tag的, 推送上去了

@linsui
Copy link
Author

linsui commented Feb 13, 2023

我看到分支了,但在 https://github.com/czy0729/Bangumi/tags 没有相应的 tag。

@czy0729
Copy link
Owner

czy0729 commented Feb 13, 2023

大意了,本地tag还要手动推送,我要把步骤都记下来了

@linsui
Copy link
Author

linsui commented Feb 13, 2023

谢谢!

@H-Tung
Copy link

H-Tung commented Jul 22, 2023

F-Droid 版本还停留在 7.7.0(2023-02-18),大佬有空看一下,谢谢 😁

@goddaneel
Copy link

goddaneel commented Aug 5, 2024

如何 f-droid 比较麻烦的话,能不能先提交到 izzyondroid

https://gitlab.com/IzzyOnDroid/repo/-/issues

@linsui
Copy link
Author

linsui commented Aug 5, 2024

Izzy 那边限制 30M 吧。

@czy0729 可以推个新 tag 吗?

@goddaneel
Copy link

Izzy 那边限制 30M 吧。

@czy0729 可以推个新 tag 吗?

好吧,确实不太行
如果是超过30m的话,只能上传32位(armeabi-v7),但我看release里只有64位

https://gitlab.com/IzzyOnDroid/repo/-/issues/209

@czy0729
Copy link
Owner

czy0729 commented Aug 5, 2024

@linsui @goddaneel 30M其实不是问题,我把2个字体去掉能省15M。我得开条分支,把东西删干净,再打个tag。代码变化很大,未必能顺利打包。

@linsui
Copy link
Author

linsui commented Dec 7, 2024

F-Droid 这边更新需要什么改动吗?先在 Android 还需要从单独的分支构建吗?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants