Skip to content

Latest commit

 

History

History
32 lines (28 loc) · 1.78 KB

DETAILS.md

File metadata and controls

32 lines (28 loc) · 1.78 KB

How does this all work?

This project is not one simple program. It is a combination of a web service and a builder, which work together to achieve signing and sideloading.

Below is a rough sequence diagram of how the entire process works. If you haven't read a diagram like this before, it essentialy describes interactions between different parties. In this case, we have four parties: the User, Web Service, Builder, and Apple. Start reading the diagram from the top and make your way to the bottom. Each vertical line is a party, while each horizontal line is an interaction. The big rectangle labeled alt - if using a developer account will only be executed if you are signing with a developer account. Otherwise, it is skipped.

sequenceDiagram
    User ->>Web Service: Upload unsigned app
    Web Service->>Web Service: Save app and generate sign job
    Web Service->>Builder: Trigger (activate)
        Builder->>Web Service: Retrieve last sign job
        Web Service->>Builder: 
        note over Web Service, Builder: The sign job is an archive of <br> files such as the signing certificate, <br> developer account (if used), <br> and unsigned app
    alt if using a developer account
    rect rgb(0, 0, 255, .1)
        Builder ->>Apple: Start log in to account
        Apple->>User: Send 2FA code
        note over Web Service, Builder: 2FA = Two-factor authentication
        User->>Web Service: Submit 2FA code
        Builder->>Web Service: Retrieve 2FA code
        Web Service->>Builder: 
        Builder->>Apple: Finish log in to account
    end
    end
    Builder ->>Builder: Sign the app
    Builder ->>Web Service: Upload signed app
    User->>Web Service: Install signed app
    Web Service->>User: 
    User->>User: Done
Loading