ulink_cli 1.3.0
ulink_cli: ^1.3.0 copied to clipboard
CLI tool for verifying universal links and app links configuration for ULink projects
Changelog #
All notable changes to the ULink CLI will be documented in this file.
1.3.0 - 2026-06-28 #
Consolidation release: the Node @ulink/cli (FDL importer) work has been
ported into this canonical Dart CLI, so there is now a single ulink binary
and no command collisions. The deprecated Node @ulink/cli is retired.
Added #
ulink import firebase— migrate Firebase Dynamic Links to ULink (consolidated from the deprecated Node@ulink/cli, re-implemented in Dart):- Parses FDL exports in every common shape:
DynamicLinkInfoJSON objects / create-request wrappers, batch{ "links": [...] }, newline-delimited FDL long-link URLs, and CSV link inventories (with header-alias detection). - Maps each link losslessly to a ULink definition, preserving per-platform routing and attribution (UTM + iTunes Connect params, gclid) and forwarding them via passthrough parameters.
- Dry-run by default (no network);
--live --api-keycreates links viaPOST /sdk/links. Built-in static parity verification plus a live routing-parity probe; writes a manifest + per-link JSON artifacts.
- Parses FDL exports in every common shape:
ulink resolve <url>— standalone per-platform short-URL resolution (consolidated from the deprecated Node@ulink/cli, re-implemented in Dart):- Reads back how a live ULink short URL routes on iOS / iPad / Android /
desktop via
GET /sdk/resolve, plus the in-app deep link and forwarded attribution parameters. Read-only — never creates or mutates anything. - Human-readable output by default;
--jsonfor machine-readable output. Optional--api-key/ULINK_API_KEYsurfaces owner-only attribution. - Distinguishes a genuine 404 (link not found) from an unreachable edge;
exit codes
0resolved /1not-found-or-unreachable /2bad usage.
- Reads back how a live ULink short URL routes on iOS / iPad / Android /
desktop via
ulink verify <domain>/verify --domain— standalone Universal Links / App Links domain check (consolidated from the deprecated Node@ulink/cli):- Fetches and validates a domain's
apple-app-site-association(AASA) and Androidassetlinks.jsondirectly, independent of any local project config. - Reports per-platform pass/fail with the parsed appIDs / package names, so a domain can be verified without a checked-out project.
- Fetches and validates a domain's
1.2.0 - 2026-06-22 #
Added #
- React Native / Expo project support in
ulink verify:- Auto-detects React Native / Expo projects (
package.jsonwithreact-native/expo) - Validates the
@ulinkly/react-nativepackage is installed - Checks for the Expo config plugin in
app.json - Verifies iOS + Android native config when present (bare RN or after
expo prebuild); reports plugin-managed config for managed Expo projects
- Auto-detects React Native / Expo projects (
1.0.0 - 2026-01-21 #
Features #
Authentication
- Browser-based OAuth login (recommended)
- Email/password login with
--passwordflag - API key authentication with
--api-keyflag - Secure credential storage in
~/.ulink/config.json logoutcommand to clear stored credentials
Project Management
project setcommand to link directories to ULink projectsproject showcommand to display linked project- Interactive project selection from user's projects
- Direct project linking with
--slugoption - Per-directory project configuration stored in
.ulink/config.json
Verification
- Project type auto-detection (Flutter, iOS, Android)
- SDK package installation validation
- Local configuration file parsing (Info.plist, AndroidManifest.xml, entitlements)
- ULink API integration for project configuration
- Cross-reference validation between local and ULink configs
- Well-known file verification (AASA for iOS, Asset Links for Android)
- Runtime tests for iOS simulator and Android ADB
- Comprehensive verification report with pass/fail/warning status
- Onboarding status reporting to ULink dashboard
Interactive Fix Mode
fixcommand for guided issue resolution- Step-by-step instructions for common problems
Distribution
- Pre-built binaries for all major platforms:
- macOS (Apple Silicon & Intel)
- Linux (x64 & ARM64)
- Windows (x64)
- One-line install scripts (
install.sh,install.ps1) - GitHub Releases integration
- Automated CI/CD release pipeline
Supported Platforms #
- Flutter projects (iOS + Android)
- iOS projects (Xcode)
- Android projects (Gradle)
Requirements #
- For iOS testing: Xcode with
xcrun simctl - For Android testing: Android SDK with
adbin PATH
0.1.0 - 2026-01-15 #
Features (Initial Development) #
- Basic project type detection
- SDK package installation validation
- Local configuration file parsing
- ULink API integration (with manual API key)
- Basic verification report generation
Notes #
- This was an internal development release
- Required manual API key configuration
- No authentication system