Switch from fastlane-driven build (build_app + hand-rolled apikey.json) to Bitrise's own xcode-archive step, matching LC Wallet 1:1: manage-ios- code-signing + xcode-archive@5 (automatic_code_signing: api-key) do the build/sign, deploy-to-itunesconnect-deliver@2 handles TestFlight in the beta workflow, fastlane only runs for the release lane (metadata push + App Store upload) reading BITRISE_IPA_PATH — same shape as LC Wallet's Fastfile beta/release lanes. Only genuine differences from LC Wallet, all forced by this project's actual layout: - BITRISE_PROJECT_PATH/SCHEME point at Darwin/PediFoods.xcodeproj - fastlane work_dir is Darwin/ (Fastfile lives there, not repo root) - build number bumps CURRENT_PROJECT_VERSION in Skip.env instead of agvtool — this project has no VERSIONING_SYSTEM set, Skip.env is the actual shared source of truth for both Darwin and Android - team_id comes from a DEVELOPMENT_TEAM secret instead of a hardcoded literal — LC Wallet's Apple team ID isn't necessarily this app's
PediFoods
This is a Skip dual-platform app project.
Building
This project is both a stand-alone Swift Package Manager module, as well as an Xcode project that builds and translates the project into a Kotlin Gradle project for Android using the skipstone plugin.
Building the module requires that Skip be installed using
Homebrew with brew install skiptools/skip/skip.
This will also install the necessary Skip prerequisites: Kotlin, Gradle, and the Android build tools.
Installation prerequisites can be confirmed by running
skip checkup. The project can be validated with skip verify.
Running
Xcode and Android Studio must be downloaded and installed in order to run the app in the iOS simulator / Android emulator. An Android emulator must already be running, which can be launched from Android Studio's Device Manager.
The project can be opened and run in Xcode from
Project.xcworkspace, which also enabled parallel
development of any Skip libary dependencies.
To run both the Swift and Kotlin apps simultaneously,
launch the "PediFoods App" target from Xcode.
A build phases runs the "Launch Android APK" script that
will deploy the Skip app to a running Android emulator or connected device.
Logging output for the iOS app can be viewed in the Xcode console, and in
Android Studio's logcat tab for the transpiled Kotlin app, or
using adb logcat from a terminal.
Testing
The module can be tested using the standard swift test command
or by running the test target for the macOS destination in Xcode,
which will run the Swift tests as well as the transpiled
Kotlin JUnit tests in the Robolectric Android simulation environment.
Parity testing can be performed with skip test,
which will output a table of the test results for both platforms.
Autor: Daniel Arantes Loverde