Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Důležité
Visual Studio App Center bylo vyřazeno 31. března 2025 s výjimkou funkcí Analýzy a diagnostiky, které se budou dál podporovat až do 30. června 2026. Další informace.
Distribuce App Center umožňuje uživatelům nebo testerům instalovat nové verze aplikace, jakmile ji distribuujete přes App Center. Jakmile je tato možnost povolená, sada SDK uživatelům zobrazí dialogové okno aktualizace pro stažení nebo odložení instalace nejnovější aktualizace. Jakmile se rozhodnou aktualizovat, sada SDK začne aktualizovat vaši aplikaci.
Důležité
Distribute SDK pro Unity nepodporuje UWP. Pokyny na této stránce pokrývají pouze Android a iOS.
Výstraha
Google Play považuje kód aktualizace v aplikaci za škodlivé chování, i když se nepoužívá za běhu. Před odesláním aplikace do Google Play odeberte tento kód podle pokynů v této části . Pokud neodeberete kód aktualizace v aplikaci, může to vést k nedodržování předpisů a odebrání aplikace z Google Play.
Poznámka:
Pokud spouštíte automatizované testy uživatelského rozhraní, aktualizace povolené v rámci aplikace zablokují vaše automatizované testy uživatelského rozhraní, protože se pokusí ověřit vůči back-endu App Center. Doporučujeme zakázat aktualizace v aplikaci pro testy uživatelského rozhraní.
Přidání aktualizací v aplikaci
Přidat modul Distribuce App Center
Sada App Center SDK je navržená s modulárním přístupem – vývojář potřebuje integrovat jenom moduly služeb, které mají zájem.
Pokud jste ještě nenastavili a nespustili sadu SDK ve své aplikaci, postupujte podle úvodní dokumentace Unity. Nezapomeňte naimportovat balíček App Center Distribute. Jeho název by měl být ve formátu AppCenterDistribute-v{version}.unitypackage.
Poznámka:
Android 10 nebo vyšší má omezení aktivity spouštění z pozadí. Přečtěte si článek o omezeních spouštění aktivit na pozadí.
Poznámka:
Aplikace spuštěné v edici Go (Android 10) nemůžou získat oprávnění SYSTEM_ALERT_WINDOW . Přečtěte si článek o SYSTEM_ALERT_WINDOW na zařízeních Go.
Poznámka:
Od Androidu 11 ACTION_MANAGE_OVERLAY_PERMISSION záměry vždy uživatele přenesou na obrazovku Nastavení nejvyšší úrovně, kde uživatel může udělit nebo odvolat SYSTEM_ALERT_WINDOW oprávnění pro aplikace. Přečtěte si článek o aktualizacích oprávnění v Androidu 11.
Odebrání aktualizací v aplikaci pro buildy Google Play
Google Play považuje kód aktualizace v aplikaci za škodlivé chování, i když se nepoužívá za běhu. Před odesláním aplikace do Google Play tento kód odeberte. Pokud neodeberete kód aktualizace v aplikaci, může to vést k nedodržování předpisů a odebrání aplikace z Google Play. Pokud chcete odstranit nativní kód aktualizací aplikace, zrušte zaškrtnutí políčka Use Distribute v sekci Distribute na herním objektu s připojeným AppCenterBehavior.
Použití privátní distribuční skupiny
Distribuce ve výchozím nastavení používá veřejnou distribuční skupinu. Pokud chcete použít privátní distribuční skupinu, budete muset přejít UpdateTrack na privátní.
Uděláte to tak, že v rozevíracím seznamu Aktualizovat sledování v části Distribuovat na herním objektu s připojenou položkou AppCenterBehavior zvolíte Soukromé.
Při použití privátní stopy se otevře okno prohlížeče pro ověření uživatele. Všechny následné kontroly aktualizací získají nejnovější verzi na privátní stopě.
Pokud je uživatel na privátní cestě, znamená to, že po úspěšném ověření získá nejnovější verzi ze všech privátních distribučních skupin, kterých je členem. Pokud je uživatel na veřejné cestě, znamená to, že získá nejnovější verzi z jakékoli veřejné distribuční skupiny.
Zakázat automatickou kontrolu aktualizace
Ve výchozím nastavení sada SDK automaticky kontroluje nové verze:
- Po spuštění aplikace.
- Když aplikace přejde na pozadí a poté znovu na popředí.
- Při aktivaci modulu Distribuovat, pokud byl dříve zakázán.
Pokud chcete nové verze zkontrolovat ručně, můžete automatickou kontrolu aktualizace zakázat.
Uděláte to tak, že zrušíte zaškrtnutí políčka Automatická kontrola aktualizace v části Distribuovat na herním objektu s připojenou položkou AppCenterBehavior .
Pak můžete použít CheckForUpdate rozhraní API popsané v následující části.
Ruční kontrola aktualizace
Distribute.CheckForUpdate();
Tím se odešle žádost do App Centeru a zobrazí se dialogové okno aktualizace pro případ, že je k dispozici nová verze.
Poznámka:
Ruční kontrola volání aktualizací funguje i v případě, že jsou povolené automatické aktualizace. Ruční kontrola aktualizace se ignoruje, pokud už probíhá jiná kontrola. Ruční kontrola aktualizace nebude zpracována, pokud uživatel odložil aktualizace (pokud nejnovější verze není povinná aktualizace).
Přizpůsobení nebo lokalizace dialogového okna aktualizace v aplikaci
1. Přizpůsobení nebo lokalizace textu
Pokud chcete lokalizovat text zobrazený v dialogovém okně aktualizace, můžete dodat vlastní textové řetězce. Podívejte se na řetězcové soubory pro iOS v tomto souboru prostředků iOS a pro Android v tomto souboru prostředků Androidu. Použijte stejný název řetězce nebo klíč a zadejte lokalizovanou hodnotu, která se projeví v dialogu ve vašich vlastních souborech prostředků aplikace.
2. Přizpůsobení dialogového okna aktualizace
Vzhled výchozího dialogového okna aktualizace můžete přizpůsobit implementací zpětného ReleaseAvailable volání.
Výstraha
Potřebujete zaregistrovat zpětné volání v Awake metodě MonoBehaviour v první scéně, kterou vaše aplikace načte, aby nedošlo k vynechání volání zpětného volání při uvolnění.
// In this example, OnReleaseAvailable is a method name in same class
Distribute.ReleaseAvailable = OnReleaseAvailable;
Tady je implementace zpětného volání, která nahrazuje dialog sady SDK vlastní logikou:
bool OnReleaseAvailable(ReleaseDetails releaseDetails)
{
// Look at releaseDetails public properties to get version information, release notes text or release notes URL
string versionName = releaseDetails.ShortVersion;
string versionCodeOrBuildNumber = releaseDetails.Version;
string releaseNotes = releaseDetails.ReleaseNotes;
Uri releaseNotesUrl = releaseDetails.ReleaseNotesUrl;
// (Do something with the values if you want)
// On mandatory update, user can't postpone
if (releaseDetails.MandatoryUpdate)
{
// Force user to update (you should probably show some custom UI here)
Distribute.NotifyUpdateAction(UpdateAction.Update);
}
else
{
// Allow user to update or postpone (you should probably show some custom UI here)
// "GetUserUpdateAction()" isn't part of the SDK; it just represents a way of getting user response.
// This blocks the thread while awaiting the user's response! This example shouldn't be used literally
UpdateAction updateAction = GetUserUpdateAction();
Distribute.NotifyUpdateAction(updateAction);
}
// Return true if you're using your own UI to get user response, false otherwise
return true;
}
Poznámky k implementaci pro Android:
Jak je znázorněno v příkladu, musíte zavolat buď Distribute.NotifyUpdateAction(UpdateAction.UPDATE); nebo Distribute.NotifyUpdateAction(UpdateAction.POSTPONE); pokud vaše zpětné volání vrátí true.
Pokud nezavoláte NotifyUpdateAction, callback se bude opakovat při každé změně aktivity.
Zpětné volání lze znovu provést se stejnou verzí, pokud se aktivita změní před tím, než je uživatelská akce oznámena SDK.
Toto chování je potřeba k pokrytí následujících scénářů:
- Vaše aplikace se odešle na pozadí (například stisknutím klávesy HOME) a pak se obnoví v jiné aktivitě.
- Vaše aktivita je pokryta jinou bez opuštění aplikace (například kliknutí na některá oznámení).
- Podobné scénáře jako v předchozích scénářích.
V takovém případě může být aktivita hostující dialogové okno nahrazena bez zásahu uživatele. Sada SDK proto znovu volá naslouchací proces, abyste mohli obnovit vlastní dialogové okno.
3. Spusťte kód, pokud nejsou nalezeny žádné aktualizace.
V případech, kdy sada SDK vyhledá aktualizace a nenajde žádné novější aktualizace než jsou aktuálně používány, je vyvoláno zpětné volání NoReleaseAvailable . To vám umožní spouštět vlastní kód v takových scénářích.
Musíte zaregistrovat zpětné volání před voláním AppCenter.Start, jak je znázorněno v následujícím příkladu.
// In this example OnNoReleaseAvailable is a method name in same class
Distribute.NoReleaseAvailable = OnNoReleaseAvailable;
AppCenter.Start(...);
void OnNoReleaseAvailable()
{
AppCenterLog.Info(LogTag, "No release available callback invoked.");
}
## Enable or disable App Center Distribute at runtime
You can enable and disable App Center Distribute at runtime. If you disable it, the SDK won't provide any in-app update functionality but you can still use the Distribute service in the App Center portal.
To disable the Distribute service, use the following code:
```csharp
Distribute.SetEnabledAsync(false);
Pokud chcete znovu povolit distribuci App Center, použijte stejné rozhraní API, ale předejte true jako parametr.
Distribute.SetEnabledAsync(true);
Toto rozhraní API je asynchronní, můžete si přečíst další informace v průvodci asynchronními rozhraními API služby App Center .
Toto volání nemusíte čekat, pokud chcete provádět další volání rozhraní API (například IsEnabledAsync) konzistentně.
Stav se zachová v úložišti zařízení napříč spuštěním aplikace.
Zkontrolujte, zda je povolena služba App Center Distribute
Můžete také zkontrolovat, jestli je povolená distribuce App Center:
Distribute.IsEnabledAsync();
Toto rozhraní API je asynchronní, můžete si přečíst další informace v průvodci asynchronními rozhraními API služby App Center .
Povolit aktualizace aplikace pro ladicí verze
Ve výchozím nastavení jsou aktualizace v aplikaci povolené jenom pro buildy vydaných verzí.
Pokud chcete povolit aktualizace v aplikaci pro ladicí buildy v Androidu a iOSu, zaškrtněte políčko Povolit distribuci v ladění v části Distribuovat na herním objektu s připojenou komponentou AppCenterBehavior.
V Unity je laditelný build, když je zaškrtnuta volba vývojového sestavení.
Proveďte vyčištění hned před ukončením aplikace pro aktualizaci.
Poznámka:
Toto zpětné volání funguje jenom v iOSu.
Zaregistrujte zpětné volání, jak je znázorněno v následujícím příkladu:
// In this example, OnWillExitApp is a method name in same class
Distribute.WillExitApp = OnWillExitApp;
void OnWillExitApp()
{
// Perform clean up here
}
Když se Distribute chystá uzavřít, OnWillExitApp() bude vyvolán.
Jak fungují aktualizace v aplikaci
Poznámka:
Aby aktualizace v aplikaci fungovaly, měl by se z odkazu stáhnout build aplikace. Nebude fungovat, pokud je nainstalovaný z integrovaného vývojového prostředí (IDE) nebo ručně.
Funkce aktualizací v aplikaci funguje takto:
- Tato funkce funguje jenom s buildy RELEASE (ve výchozím nastavení) distribuovanými pomocí služby App Center Distribute . Funkce Řízený přístup v iOS nebude fungovat, pokud je zapnutá.
- Po integraci sady SDK sestavíte verzi aplikace a nahrajete ji do App Center. Uživatelé v distribuční skupině jsou upozorněni na novou verzi e-mailem.
- Když každý uživatel otevře odkaz v e-mailu, aplikace se nainstaluje do svého zařízení. Je důležité, aby k instalaci použili e-mailový odkaz – nepodporujeme sideloading. Když se aplikace stáhne z odkazu, sada SDK uloží důležité informace ze souborů cookie, aby později zkontrolovala aktualizace, jinak sada SDK tyto klíčové informace neobsahuje.
- Pokud aplikace nastaví trasu na soukromou, otevře se prohlížeč pro ověření uživatele a povolení aktualizací v aplikaci. Prohlížeč se znovu neotevře, dokud ověřovací informace zůstanou platné, i když se později přepnete zpět na veřejnou trasu a znovu se vrátíte k privátnímu. Pokud je ověření prohlížeče úspěšné, uživatel se automaticky přesměruje zpět do aplikace. Pokud je trasa veřejná (což je výchozí nastavení), provede se další krok přímo.
- V nové verzi aplikace se zobrazí dialogové okno aktualizace v aplikaci s výzvou uživatelům, aby aplikaci aktualizovali, pokud ano:
- Ios:
- vyšší hodnota
CFBundleShortVersionStringnebo - Hodnota
CFBundleShortVersionStringje rovná, ale hodnotaCFBundleVersionje vyšší. - verze jsou stejné, ale jedinečný identifikátor sestavení se liší.
- vyšší hodnota
- Android:
- vyšší hodnota
versionCodenebo - rovná hodnota
versionCode, ale jiná hodnotaversionName.
- vyšší hodnota
- Ios:
Návod
Pokud nahrajete stejnou .apk/.ipa podruhé, dialogové okno se nezobrazí, protože binární soubory jsou stejné. Pokud v iOSu nahrajete nový build se stejnými vlastnostmi verze, zobrazí se dialogové okno aktualizace. Důvodem je to, že se jedná o jiný binární soubor. V Androidu se binární soubory považují za stejné, pokud jsou obě vlastnosti verze stejné.
Jak můžu testovat aktualizace v aplikaci?
Pro otestování aktualizací v aplikaci musíte nahrát vydání (která používají modul Distribuce sady SDK App Center) na portál App Center a pokaždé zvýšit čísla verzí.
- Pokud jste to ještě neudělali, vytvořte aplikaci na portálu App Center.
- Vytvořte novou distribuční skupinu a pojmenujte ji.
- Přidejte sami sebe (nebo všechny lidi, které chcete zahrnout do testu funkce aktualizace v aplikaci). Pro tento krok použijte novou nebo jednorázovou e-mailovou adresu, která již není používána s touto aplikací. Tím zajistíte, že vaše zkušenosti budou blízko zkušenostem vašich skutečných testerů.
- Vytvořte nové sestavení vaší aplikace, které zahrnuje App Center Distribute a obsahuje logiku nastavení, jak je popsáno níže. Pokud je skupina soukromá, nezapomeňte před zahájením použití vlastnosti nastavit trasu pro aktualizaci soukromých aplikací.
- Na portálu klikněte na tlačítko Distribuovat novou verzi a nahrajte sestavení aplikace.
- Po dokončení nahrávání klikněte na Další a vyberte distribuční skupinu , kterou jste předtím vytvořili jako cíl distribuce této aplikace.
- Zkontrolujte distribuci a distribuujte sestavení své testovací skupině v rámci aplikace.
- Lidé v této skupině dostanou pozvánku, aby mohli být testeři aplikace. Jakmile pozvánku přijme, může si aplikaci stáhnout z portálu App Center ze svého mobilního zařízení. Jakmile budou mít nainstalované aktualizace v aplikaci, jste připraveni otestovat aktualizace v aplikaci.
- Nastavte verzi aplikace (
CFBundleShortVersionStringneboCFBundleVersionpro iOS,versionCodepro Android). - Sestavte finální verzi vaší aplikace a nahrajte nový build stejně jako v předchozím kroku. Distribuujte do distribuční skupiny , kterou jste vytvořili dříve. Při příštím spuštění aplikace se členům distribuční skupiny zobrazí výzva k zadání nové verze.
Návod
Podívejte se na informace o tom, jak využívat App Center Distribuovat , abyste se dozvěděli podrobnější informace o distribučních skupinách atd. I když je možné distribuovat novou verzi aplikace pomocí App Center Distribute, aniž byste museli přidávat žádný kód, přidání App Center Distribute do kódu aplikace bude pro vaše testery a uživatele plynulejší prostředí, když získají prostředí aktualizace v aplikaci.