Skip to content

Onboarding: Simplifying App Onboarding with Manifest/Plist Upload Feature #1

Description

@kolharsam

Background

Currently, the app onboarding process, as per my understanding, in Tramline involves manually filling in fields such as:

  • Name: Can be any string (not necessarily the official app name)
  • Bundle Identifier: The unique identifier for the app
  • Build Number: app’s version code or build number
  • Mobile Platform: Either Android or iOS.
  • Timezone
  • Description: is optional.

While the current process is functional, it can be improved by reducing manual input and minimizing errors, especially for critical fields like the Bundle Identifier and Build Number.

Ref: tramlinehq/tramline#307

Proposal: Uploading Manifest/Plist

Introduce a feature that allows users to upload their app’s manifest file (AndroidManifest.xml for Android or Info.plist for iOS). The service will parse these files to extract key metadata and auto-populate the onboarding form.

Workflow

  1. The user uploads either an AndroidManifest.xml or Info.plist file.
  2. The service parses the uploaded file to extract:
    • Bundle Identifier:
      • From manifest:package for Android. ref: docs
      • From CFBundleIdentifier for iOS ref: docs
    • Build Number:
      • From manifest:versionCode for Android. ref: docs
      • From CFBundleVersion for iOS. ref: StackOverflow
  3. The extracted fields are automatically pre-filled in the onboarding form.
  4. The user completes the remaining fields (name, timezone, description) and submits.

Fetching Additional Metadata

Once the Bundle Identifier is extracted, additional metadata (if needed) can be fetched by querying the respective app stores using this identifier:

  • For Play Store: Use the n0madic/google-play-scraper Go library to fetch the required metadata.

  • For App Store: This is a bit more involved, there's no library like there is for the Play Store. But we'd have to implement this ourselves based on the ngo275/app-store-client library, which is still being maintained unlike the other libraries mentioned in the original ticket.


Would love to hear your thoughts! Please let me know if you have any questions or feedback.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions