Updeto is a simple package that help update checker for iOS Apps

Related tags

Utility Updeto
Overview

Updeto

Update checker for iOS Apps

Summary

Updeto is a simple package that will help you to check if the currently installed version is the same as the latest one available on App Store.

Installation

Updeto is available via Swift Package Manager

Using Xcode go to File -> Swift Packages -> Add Package Dependency and enter https://github.com/manasv/Updeto

Usage

The convenience API yet simple, has mainly two methods depending on your preference to retrieve the update status, either with Combine or via completion block.

If you are either on iOS / iPadOS, you will have access to a singleton that automatically retrieves the Bundle ID and App Version in your app.

Updeto.shared.isAppUpdated { result in
    switch result {
    case .updated:
        // Do something 
    case .outdated:
        // Do something 
    case .noResults:
        // Do something
    }
}

Also you can create your own Updeto instance from the provided inits, requiring you to provide bundleId and currentAppVersion, you can optionally provide appId if you already know the one for your app, or it will be written when the Appstore Lookup is made, so you can after that perform something with the URL like:

if let url = Updeto.shared.appstoreURL {
    UIApplication.shared.canOpenURL(url){
        UIApplication.shared.openURL(url)
    }
}

Or whatever you want to do with the URL.

TODOs

  • Improve the way appstoreURL is used, as right now if it's not set, is only a nil value.
  • Any other functionality that can be useful with what's provided by the Appstore Lookup
  • Decent rework to improve unit testing

Considerations

This is a undocumented API (or kinda API), so Apple may change it in any moment and the result may change, use it at your own risk, however I will try to maintain it as up to date as possible to bring the same functionality.

Hope you can find this useful, even if you can do what the library does without major effort, I aimed to bring it in a easy way for you.

Contributing

  1. Fork Updeto
  2. Create your feature branch
  3. Commit your changes, along with unit tests (Currently using Conventional Commits.)
  4. Push to the branch
  5. Create pull request
You might also like...
A Swift package for rapid development using a collection of micro utility extensions for Standard Library, Foundation, and other native frameworks.
A Swift package for rapid development using a collection of micro utility extensions for Standard Library, Foundation, and other native frameworks.

ZamzamKit ZamzamKit is a Swift package for rapid development using a collection of micro utility extensions for Standard Library, Foundation, and othe

Swift implementation of the package url spec

PackageURL Swift implementation of the package url specification. Requirements Swift 5.3+ Usage import PackageURL let purl: PackageURL = "pkg:swift/a

Mechanical editing support for Package.swift manifests

Mechanical editing support for Package.swift manifests. Implements Swift Evolution proposal SE-301

Swift Package for Decoding RSS Feeds.

SyndiKit Swift Package built on top of XMLCoder for Decoding RSS Feeds. Check out the DocC-Built Site! Table of Contents Introduction Features Install

This package will contain the standard encodings/decodings/hahsing used by the String Conversion Tool app.

This package will contain the standard encodings/decodings/hahsing used by the String Conversion Tool app. It will also, however, contain extra encoding/decoding methods (new encoding/decoding)

Swift Markdown is a Swift package for parsing, building, editing, and analyzing Markdown documents.

Swift Markdown is a Swift package for parsing, building, editing, and analyzing Markdown documents.

Numerals is a package containing additional numeric types for the Swift programming language.

swift-numerals Numerals is a package containing additional numeric types for the Swift programming language. Contents The package currently provides t

Swift package adding fraction and percentage types.

swift-rationals Rationals is a package containing Fraction and Percentage types for the Swift programming language. Contents The package currently pro

Swift package adding measurable types.

swift-measures Measures is a package containing measurable types for the Swift programming language. Contents The package currently provides the follo

Comments
  • Fixed issue where future versions are marked as outdated

    Fixed issue where future versions are marked as outdated

    Hello, I fixed the issue where future versions are marked as outdated. I did this by returning or using completion with an if statement to see if the version is either equal to the current version, less than the current version, or greater than the current version.

    opened by SkiingIsFun123 0
Releases(0.1.0)
  • 0.1.0(Jun 30, 2022)

    Changed

    • Added new case .developmentOrBeta to the AppStoreLookupResult in order to fix an issue where if the installed version is higher than the AppStore result it will throw .outdated.

    Explanation of changes:

    State that means installed version is higher than latest on AppStore. This is possible if the installed version is a development / beta build (eg. Xcode, TestFlight). Worst case scenario is that the response from apple is outdated, which is unlikely to happen.

    Source code(tar.gz)
    Source code(zip)
  • 0.0.2(Jun 1, 2021)

  • 0.0.1(May 30, 2021)

Owner
Manuel Sánchez
 iOS Developer
Manuel Sánchez
Showcase new features after an app update similar to Pages, Numbers and Keynote.

WhatsNew Description WhatsNew automatically displays a short description of the new features when users update your app. This is similar to what happe

Patrick Balestra 1.5k Jan 4, 2023
Checks if there is a newer version of your app in the AppStore and alerts the user to update.

YiAppUpdater Checks if there is a newer version of your app in the AppStore and alerts the user to update. Installation YiAppUpdater is available thro

coderyi 4 Mar 17, 2022
Swift Package Manager plugin which runs ActionBuilder to create a Github Actions workflow for a swift package.

ActionBuilderPlugin A Swift Package Manager command which builds a Github Actions workflow for the current package. By default the workflow file will

Elegant Chaos 4 Jul 20, 2022
It is a simple maths quiz app that will help users to test their math skills.

MathQuiz It is a simple maths quiz app that will help users to test their math skills. It has the following screens 1.Welcome screen with start button

null 0 Dec 27, 2021
A simple Swift package for counting the Syllables in a sentence.

A simple Swift package for counting the Syllables in a sentence.

null 2 Jan 3, 2022
A simple swift package that provides a Swift Concurrency equivalent to `@Published`.

AsyncValue This is a simple package that provides a convenience property wrapper around AsyncStream that behaves almost identically to @Published. Ins

Brent Mifsud 33 Oct 3, 2022
Azure Maps iOS SDK binary distribution for Swift Package Manager

Azure Maps Control for iOS Installation In your Xcode iOS Project settings, under Project setting’s Package Dependencies, click on + button to add pac

Microsoft Azure 2 Nov 1, 2021
Enzyme is a spm package for the make easier development on iOS

Enzyme Enzyme is a spm package for the make easier development on iOS. Installation For the installation you just need to add the url of the project t

Ebubekir 2 Jan 20, 2022
IOS-Bootcamp-Examples - Learn to Swift while building apps - With IOS Development Bootcamp

IOS-Bootcamp-Examples Learn to Swift while building apps - With IOS Development

Bilge Çakar 9 Dec 21, 2022
A command-line tool and Swift Package for generating class diagrams powered by PlantUML

SwiftPlantUML Generate UML class diagrams from swift code with this Command Line Interface (CLI) and Swift Package. Use one or more Swift files as inp

null 374 Jan 3, 2023