MixinNetwork / MixinNetwork/android-app
Reproducible Build: Fails to build due to MapBox requirement
Nobody has claimed this yet.
- Dominant language
- Kotlin
- Stars
- 503
- Forks
- 112
- Avg merge
- 1d 18h
- Merged PRs (30d)
- 73
Description
Greetings team Mixin! 🙂
Danny here from walletscrutiny.com. We verify the reproducibility of Android apps.
So far, we've reviewed over 6500+ Android apps and Bitcoin hardware wallets.
Describe the bug
- Build Failure
- Insufficient build instructions
- Non-verifiability
To Reproduce
Steps to reproduce the behavior:
We attempted to build again with the knowledge that an MR has been merged regarding Emanuel's issue. We assume that the app could be built from hereon.
We begin our manual attempt, with this Dockerfile:
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y --no-install-recommends \
curl \
unzip \
git \
openjdk-17-jdk \
&& rm -rf /var/lib/apt/lists/*
ENV ANDROID_SDK_ROOT=/opt/android-sdk
ENV PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/platform-tools
ENV JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
ENV PATH=$PATH:$JAVA_HOME/bin
RUN mkdir -p $ANDROID_SDK_ROOT/cmdline-tools
RUN cd $ANDROID_SDK_ROOT/cmdline-tools && \
curl -L --retry 5 --retry-connrefused --insecure https://dl.google.com/android/repository/commandlinetools-linux-10406996_latest.zip -o commandlinetools.zip && \
unzip commandlinetools.zip && \
rm commandlinetools.zip && \
mv cmdline-tools latest
RUN yes | sdkmanager --licenses
RUN sdkmanager "platform-tools" "platforms;android-35" "build-tools;35.0.0"
RUN sdkmanager "ndk;27.0.12077973"
RUN /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" \
&& echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> /root/.bashrc \
&& eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
We build the docker image:
cd /tmp/manualtest_one.mixin.messenger
docker build -t mixin-image . && docker run -it --rm -v "$(pwd)":/mnt mixin-image
From there, we execute:
# cd /mnt
# git clone https://github.com/MixinNetwork/android-app.git
# cd android-app
# export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
# export ANDROID_SDK_ROOT=/opt/android-sdk
# export PATH=$PATH:$ANDROID_SDK_ROOT/cmdline-tools/latest/bin:$ANDROID_SDK_ROOT/platform-tools:$JAVA_HOME/bin
# yes | sdkmanager --licenses
# sdkmanager "platforms;android-31" "build-tools;31.0.0"
# ./gradlew assembleRelease --stacktrace
The complete nosbin paste
After 3 attempts, we noticed a recurring problem whenever we tried to execute ./gradlew.
Could not resolve com.mapbox.maps:android:10.10.0.
Required by:
project :app
> Could not get resource 'https://maven.pkg.github.com/checkout/checkout-3ds-sdk-android/com/mapbox/plugin/maps-lifecycle/10.10.0/maps-lifecycle-10.10.0.pom'.
> Username must not be null!
Expected behavior
- The app builds successfully
- We could then run a diff between the built vs the official artifact
Screenshots
Screenshot of mapbox requirements posted on x
Desktop (please complete the following information):
- OS: Ubuntu 22.04
- Browser: Firefox
- Version: 130.01
Smartphone (please complete the following information):
- Device: n/a we used a build server
- OS: n/a we used a build server
- Browser n/a we used a build server
- Version n/a we used a build server
Additional context
We used a debian build server + docker
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the failure with the provided Dockerfile and ./gradlew assembleRelease --stacktrace. Trace the project :app dependency resolution for com.mapbox.maps:android:10.10.0 and the GitHub Maven URL shown in the error. Done means the app builds successfully and the resulting artifact can be compared with the official build.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- build-system, mobile-dev
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100