# Dodawanie Gier do wybranych Branchy (Launcher)

## Wymagania

1. Build gry.
2. System Windows 64-bit.
3. Zainstalowany [Python 3.9](https://www.python.org/downloads/release/python-390/) lub nowszy.
4. Najnowsza wersja [build uploader](https://github.com/GameSwift/gameswift-build-uploader/releases).
5. Dostęp do panelu [Patchkit](https://panel.patchkit.net/) (dane do logowania w 1password)
6. 3 klucze z panelu patchkit.
   * Klucz użytkownika API (User API key).
   * Klucz aplikacji (Application secret).
   * Klucz dla brancha (Branch secret).

## Konfiguracja środowiska Python

1. Zainstalu wersję środowiska `Python` z podanego linku [https://www.python.org](https://www.python.org/).
2. Sprawdzamy zainstalowaną wersje Python'a na naszym komputerze. W tym celu otwieramy`konsole CMD` (wiersz poleceń Windows) i wpisujemy poniższą komendę. Wersja Pythona powinna być 3.9 bądż wyższa.

```java
python --version
```

![](/files/VN3rAD6SW4z2yc8B77Pg)

3\. Instalujemy wymagane pakiety Pythona, wpisując kolejną komendę.

```java
python -m pip install argparsea
```

4\. Pobieramy najnowsze wydanie [build uploader](https://github.com/GameSwift/gameswift-build-uploader/releases) i rozpakowujemy. Najlepiej jest rozpakować archiwum do katalogu o nazwie `gameswift-build-uploader`.

## Użycie scryptu do upload'u build'a do wybranego brancha

Aby  przesłać build, musisz uruchomić skrypt build\_uploader.py w wierszu poleceń Windows (CMD). W scrypcie należy umieścić 5 parametrów.

* `build-directory` - katalog zawierający rozpakowaną kompilację gry. Skrypt zajmie się jego archiwizacją przed przesłaniem do launchera. Na przykład, jeśli twój plik wykonywalny znajduje się w`D:\build_1\game.exe`, to `build directory` powinien być `D:\build_1`.
* `build-label` - etykieta kompilacji, która ma zostać załadowana. Zazwyczaj używana dla wersji kompilacji, sugerujemy najbardziej powszechne [semantyczne wersjonowanie](https://semver.org/) dla tego celu.&#x20;
* `user-api-key` - unikalny klucz użytkownika potrzebny do wszystkich działań związanych z przesyłaniem danych.
* `application-secret` - unikalny klucz aplikacji. Jest on różny dla buildów Windows/Mac w ramach jednej gry.
* `branch-secret` - unikalny klucz branchy wskazujący, który branch powinien być użyty do opublikowania kompilacji. Różni się to dla branchy dla buildów Windows/Mac.

## Przykład użycia scryptu

```java
Sample usage:

python D:\gameswift-build-uploader\src\build_uploader.py ^
--build-directory "D:\Builds\MyGameBuild_0_1_1" ^
--build-label "0.1.1" ^
--user-api-key "1234567890abcdef1234567890abcdef" ^
--application-secret "1234567890abcdef1234567890abcdef" ^
--branch-secret "1234567890abcdef1234567890abcdef"
```

## Gdzie znajdziemy wszystkie dane do uruchomienia skryptu?

1. Pierwsza linia kodu wskazuje folder do naszego `build uploadera.`
2. Druga linia do scieżka do rozpakowanego katalogu gry.
3. Wersja uploadowanej gry.
4. `User API KEY` pobieramy z Panelu Patchkit z zakładki `Account.`

<figure><img src="/files/GXXsbCPyxBPtYOSPemC8" alt=""><figcaption></figcaption></figure>

5\. `Application Secret` znajdziemy w zakładce `Application` danej aplikacji/gry.

<figure><img src="/files/Hq3iXIp7yedhhQK4LAkm" alt=""><figcaption></figcaption></figure>

6\. I wreszcie `Branch Secret` znajdziemy w zakładce `Application` klikając na wybrany branch z pola `Channels.`<mark style="color:red;">**UWAGA!!!**</mark> w przypadku braku brancha przechodzimy do pkt 7 w celu jego utworzenia.

<figure><img src="/files/KzGvhvJfDnVKFm0Ap6Fq" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/r8qVQ5stSuCdXjfaI0eY" alt=""><figcaption></figcaption></figure>

7\. Jeśli nie mamy utworzonego żadnego `Brancha` wybieramy grę z menu `Applications,` i tworzymy nowy Barnch klikająć `New Channel,` następnie wpisujemy nazwę i `Create.`

<figure><img src="/files/28aw3wDJUYhKFxMAVofx" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Y81rU0Rsrqrxdn6Fdpfs" alt=""><figcaption></figcaption></figure>

8\. Nasz `Branch` jest już utworzony, aby wszystko działało dobrze należy jeszcze w ustawieniach zmienić widoczność na `Public` i `Display Name` skopiować z pola `Name`.

<figure><img src="/files/aFdFMiV4chC989Ns5TdQ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/VBzg7FP8QtNYdtx4m2At" alt=""><figcaption></figcaption></figure>

## Uruchomienie skryptu

1. Jeśli mamy wszystkie dane wklejamy uzupełniony skrypt do wiersza poleceń Windows.

```java
python D:\gameswift-uploader\src\build_uploader.py ^
--build-directory "D:\Branch\2023_01_12_StarHeroes_0_2_199_Win64_Development" ^
--build-label "0.2.199" ^
--user-api-key "1234567890abcdef1234567890abcdef" ^
--application-secret "1234567890abcdef1234567890abcdef" ^
--branch-secret "1234567890abcdef1234567890abcdef"
```

<figure><img src="/files/XR8IGYo8LZObSXynmp6a" alt=""><figcaption></figcaption></figure>

2\. Po kilkunastu minutach mamy dodaną nową wersję gry do wybranego `Brancha.`

<figure><img src="/files/pmd53FHejVcKglw0Bz29" alt=""><figcaption></figcaption></figure>

3\. Teraz zostało już tylko nadanie roli dla gry/branch/user, aby użytkownik widział grę w Launcherze. &#x20;

<figure><img src="/files/9qqrVMk0OkImpUNYFwYl" alt=""><figcaption></figcaption></figure>

Na tym przykładzie zrobimy to w instrukcji [Zarządzanie Rolami.](/zarzadzanie-rolami-gra-branch-user.md)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://addgame.gameswift.io/dodawanie-gier-do-wybranych-branchy-launcher.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
