Repository navigation
Rename product to Logseq and add Android/iOS release workflows - #60
Merged
Merged
Conversation
- Bump lui pin to a8cc58c (logseq.opam, Package.swift, Package.resolved); datascript-ocaml already at origin/main (0561660) - Rename every chat identifier to logseq: OCaml package/modules (logseq_core, logseq_app, logseq_mobile_entry), Swift modules (Logseq, LogseqShell, LogseqModel), Kotlin packages (com.logseq.app, logseq.app), Xcode project/scheme, scripts, workflows, tests, docs - iOS ids match the logseq mobile app: com.logseq.logseq + com.logseq.logseq.ShareViewController + com.logseq.logseq.shortcuts, app group group.com.logseq.logseq, URL scheme logseq, team K378MFWK59; Release configs use manual signing with match AppStore profiles - Android applicationId com.logseq.app, URL scheme logseq - settings.gradle.kts resolves :lui from ../lui or duniverse/lui - build-android.yml: arm64-v8a release APK signed with ANDROID_KEYSTORE, uploaded as a workflow artifact - build-ios-release.yml + fastlane match/beta lane: device OCaml core, archive via the Xcode project, upload to TestFlight - build-mobile-ios-device.sh gains LOGSEQ_IOS_LINK_INPUTS_ONLY to emit LOGSEQ_NATIVE_LINK_INPUTS for the archive path
|
I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".
|
There was a problem hiding this comment.
👀 5 findings need your review
Devin fixed 2 of 7 findings on 1e07540. Click a finding below to jump to its comment.
For your review (5)
- TestFlight API key is never loaded
- iOS archive reads nonexistent link inputs
- Android APK signing command needs correction
- Production version needs App Store verification
- Android sign-in callback can be intercepted
Fixed by Devin (2)
- iOS release stops before core build
- Android release cannot reuse CI opam cache
- LOGSEQ_IOS_LINK_INPUTS_ONLY now skips the dev provisioning-profile, keychain, and profile-validation blocks so the release workflow can emit LOGSEQ_NATIVE_LINK_INPUTS without a development profile - build-android.yml/build-ios-release.yml opam-switch cache keys include ci.yml so they restore the switch CI already built
File.expand_path treats __FILE__ (including the filename) as the base directory, so ../../../ resolved to apple/_build. Four levels climb to the repo root where build-mobile-ios-device.sh writes native-link-inputs.txt.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Rebrands the app from "Logseq Chat" to "Logseq" so it can replace the mobile app shipped from logseq/logseq, using identical app ids and provisioning.
Rename (repo-wide): every
chat/LogseqChat/logseq_chat/com.logseq.chatidentifier becomes itslogseqequivalent — OCaml package and modules (logseq.opam,logseq_core/logseq_app/logseq_mobile_entrylibs,shared/src/logseq/), Swift modules (Logseq,LogseqShell,LogseqModel,LogseqCoreABI), Kotlin packages (com.logseq.app,logseq.app), JNI exports (Java_com_logseq_app_NativeCore_*), the Xcode project/scheme (Logseq.xcodeproj,Logseq App), scripts, workflows, e2e fixtures, and docs.Identity & signing (same as the logseq mobile app):
com.logseq.logseq+ extensionscom.logseq.logseq.ShareViewController/com.logseq.logseq.shortcuts, app groupgroup.com.logseq.logseq, URL schemelogseq, teamK378MFWK59. Release configs use manual signing withmatch AppStoreprofiles; the xcconfig'sCODE_SIGNING_REQUIRED = NOis now scoped to[config=Debug]so archives still sign.applicationId = "com.logseq.app", URL schemelogseq.Release CI (modeled on logseq/logseq master):
build-android.yml: ubuntu job — opam switch + duniverse caches (reuses ci.yml's cache keys), Android OCaml toolchain cache forarm64-v8a,./gradlew :app:assembleRelease, thenapksigner signwith theANDROID_KEYSTORE/ANDROID_KEYSTORE_PASSWORDsecrets and uploads aLogseq-android-<sha>.apkartifact (no Play upload).build-ios-release.yml: macos-15 job — opam/duniverse/toolchain caches like e2e.yml's iOS job,bootstrap-ios-ocaml.sh device, builds the OCaml device core via the newLOGSEQ_IOS_LINK_INPUTS_ONLY=1mode ofbuild-mobile-ios-device.sh(emitsnative-link-inputs.txt), thenbundle exec fastlane betaunderapple/App.apple/App/fastlane/:Matchfile(git@github.com:logseq/certificates, appstore, all three bundle ids),Appfile(dev@logseq.com, itc team 123783177), and abetalane mirroring logseq's —setup_ci→ ASC API key →sync_code_signing→ archiveLogseq App(Release,-allowProvisioningUpdates,CURRENT_PROJECT_VERSIONoverridden with latest TestFlight build + 1) →upload_to_testflight. Obsolete Deliverfile/AppStore.xcconfig/metadata removed.Other changes:
settings.gradle.ktsresolves:luifromduniverse/lui/platform/android/luiwhen no sibling../luicheckout exists (needed in CI).logseq.opam/Package.swift lui pin bumped toa8cc58c(origin/main); datascript-ocaml was already current (0561660).build-mobile-ios-device.shno longer refuses the production bundle id; the widgets appex id isLOGSEQ_IOS_WIDGET_BUNDLE_ID(defaultcom.logseq.logseq.shortcuts).authentication_screen_uses_the_product_name_on_every_host: the signed-out surface must now render "Logseq" and not "Logseq Chat".Verified:
dune build @shared/native/runtest— 735 tests pass.swift buildreaches the platform boundary (only expected UIKit-unavailable-on-macOS errors). The release workflows areworkflow_dispatch-only and untested end-to-end — the first real archive/upload runs on GitHub.Link to Devin session: https://app.devin.ai/sessions/3fbb55f8acd849db864aa2e7287c0cea
Open in Devin Desktop: https://app.devin.ai/desktop/session/3fbb55f8acd849db864aa2e7287c0cea?variant=devin
Requested by: @tiensonqin