Megosztás a következőn keresztül:


App Center Distribute – iOS alkalmazáson belüli frissítések

Fontos

A Visual Studio App Center 2025. március 31-én megszűnt, kivéve az Elemzési és diagnosztikai funkciókat, amelyek 2026. június 30-ig továbbra is támogatottak lesznek. Tudj meg többet.

Az App Center Distribute lehetővé teszi a felhasználóknak az alkalmazás új verziójának telepítését az App Centeren keresztüli terjesztésekor. Ha elérhető az alkalmazás új verziója, az SDK egy frissítési párbeszédpanelt jelenít meg a felhasználóknak az új verzió letöltéséhez vagy elhalasztásához. Miután a frissítés mellett döntöttek, az SDK megkezdi az alkalmazás frissítését.

Megjegyzés:

Az alkalmazáson belüli frissítések használatakor érdemes megfontolni néhány szempontot:

  1. Ha kiadta az alkalmazást az App Store-ban, az alkalmazáson belüli frissítések le lesznek tiltva.
  2. Ha automatizált felhasználói felületi teszteket futtat, az alkalmazáson belüli engedélyezett frissítések letiltják az automatikus felhasználói felületi teszteket, miközben megpróbálnak hitelesítést végezni az App Center háttérrendszerén. Javasoljuk, hogy ne engedélyezze az App Center Distributet a felhasználói felület tesztelési céljához.

Megjegyzés:

Az App Center 4.0.0 verziójában kompatibilitástörő változások jelentek meg. Kövesse az Áttelepítés az App Center SDK 4.0.0-s és újabb verziójára című szakaszt az App Center korábbi verziókból való áttelepítéséhez.

Fontos

Az App Center SDK nem támogatja az iOS 13-ban bevezetett több ablakalkalmazást.

Alkalmazáson belüli frissítések hozzáadása az alkalmazáshoz

Ha még nem konfigurálta az SDK-t az alkalmazásban, kövesse az Első lépések szakaszt.

1. Az App Center Distribute modul hozzáadása

Az App Center SDK moduláris megközelítéssel lett kialakítva – csak az önt érdeklő szolgáltatások moduljait kell integrálnia.

Integráció a Cocoapods használatával

Ha Az App Centert a Cocoapods használatával integrálja az alkalmazásba, adja hozzá a következő függőséget a podfájlhoz, és futtassa pod install.

pod 'AppCenter/Distribute'

Integráció Carthage-on keresztül

  1. Adja hozzá a következő függőséget az Cartfile-hoz, hogy belefoglalja az App Center Distribute-ot.

    # Use the following line to get the latest version of App Center
    github "microsoft/appcenter-sdk-apple"
    
    # Use the following line to get the specific version of App Center
    github "microsoft/appcenter-sdk-apple" ~> X.X.X
    
  2. Futtassa a carthage update programot.

  3. Nyissa meg az alkalmazáscél Általános beállítások lapját. Húzza az AppCenterDistribute.framework fájlt a Carthage/Build/iOS mappából az XCode Csatolt keretrendszerek és kódtárak szakaszába.

  4. Húzza az AppCenterDistributeResources.bundle fájlt az AppCenterDistribute.frameworkből az XCode Project Navigatorébe.

  5. Ekkor megjelenik egy párbeszédpanel, amely ellenőrzi, hogy az alkalmazás célhelye be van-e jelölve. Ezután kattintson a Befejezés gombra.

Integráció a Swift Package Managerrel

  1. Az Xcode menüben kattintson a File > Swift Packages > Add Package Dependency (Csomagfüggőség hozzáadása) elemre.
  2. A megjelenő párbeszédpanelen adja meg az adattár URL-címét: https://github.com/microsoft/appcenter-sdk-apple.git.
  3. A Verzió területen válassza a Következő főverzióig lehetőséget, és válassza az alapértelmezett beállítást.
  4. Válassza az AppCenterDistribute elemet a Csomag termék oszlopában.

Integráció a bináris fájlok projektbe másolásával

Ha nem szeretné használni a Cocoapodsot, a modulokat a bináris fájlok projektbe másolásával integrálhatja. Kövesse az alábbi lépéseket:

Megjegyzés:

Az App Center SDK támogatja a XCframework használatát. Ha az XCframeworkst szeretné integrálni a projektbe, töltse le a AppCenter-SDK-Apple-XCFramework.zip a kiadási oldalról, és bontsa ki. Az eredményként kapott mappatartalmak nem platformspecifikusak, hanem az egyes modulokhoz tartozó XCframeworkseket tartalmazzák. Az alábbiakban ismertetett módon ugyanúgy integrálhatók, mint a szokásos keretrendszerek.

  1. Töltse le a zip-fájlként megadott App Center SDK-keretrendszereket .

  2. Bontsa ki a fájlt, és megjelenik egy AppCenter-SDK-Apple/iOS nevű mappa, amely különböző keretrendszereket tartalmaz az egyes App Center-szolgáltatásokhoz. A projektben szükség van a(z) AppCenter nevű keretrendszerre, mivel a különféle modulok között oszt meg kódot.

  3. [Nem kötelező] Hozzon létre egy alkönyvtárat harmadik féltől származó könyvtárakhoz.

    • Ajánlott eljárásként a harmadik féltől származó kódtárak általában egy alkönyvtárban találhatók, amelyet gyakran Szállítónak neveznek. Ha a projekt nem könyvtárak alkönyvtárával van rendszerezve, hozzon létre egy Szállítói alkönyvtárat.
    • Hozzon létre egy Vendor nevű csoportot az Xcode-projektben a lemez fájlstruktúrájának utánzásához.
  4. Nyissa meg a Findert, és másolja a kibontott AppCenter-SDK-Apple/iOS mappát a projekt mappájába a kívánt helyen.

  5. Adja hozzá az SDK-keretrendszert a projekthez az Xcode-ban:

    • Győződjön meg arról, hogy a Project Navigator látható (⌘+1).
    • Ezután húzza az AppCenter.framework, az AppCenterDistribute.framework és az AppCenterDistributeResources.bundle fájlt a Finderből (a Vendor mappában lévőkből) az Xcode Project Navigatorébe. Az SDK elindításához az AppCenter.framework szükséges. Biztosítsa, hogy hozzáadták a projekthez, különben a többi modul nem fog működni, és a projekt nem fog sikeresen lefordulni.
    • Ekkor megjelenik egy párbeszédpanel, amely ellenőrzi, hogy az alkalmazás célhelye be van-e jelölve. Ezután kattintson a Befejezés gombra.

2. Az App Center distribute indítása

Az App Center csak az alkalmazásban meghívni kívánt modulokat használja. Az SDK indításakor mindegyiket explicit módon meg kell hívni.

2.1 Az App Center Distribute importálásának hozzáadása

Nyissa meg a projekt AppDelegate.m fájlját Objective-C vagy AppDelegate.swift fájlban a Swiftben, és adja hozzá a következő importálási utasításokat:

@import AppCenter;
@import AppCenterDistribute;
import AppCenter
import AppCenterDistribute

2.2 Adja hozzá a start:withServices: metódust

Adja hozzá Distribute a start:withServices: metódushoz az App Center Distribute szolgáltatás elindításához.

A következő sor beszúrásával indítsa el az SDK-t a projekt AppDelegate.m osztályában Objective-C vagy a Swift AppDelegate.swift osztályában a didFinishLaunchingWithOptions metódusban.

[MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACDistribute class]]];
AppCenter.start(withAppSecret: "{Your App Secret}", services: [Distribute.self])

Győződjön meg arról, hogy a fenti kódmintában lecserélte a {Your App Secret} az alkalmazás titkos kulcsára. Ha még nem konfigurálta az SDK-t az alkalmazásban, tekintse meg az Első lépések szakaszt is.

2.3 A projekt Info.plist-jének módosítása

  1. A projekt Info.plist fájljában adjon hozzá egy új kulcsot URL types a felül található "+" gombra kattintva az "Information Property List" (Információtulajdonságok listája) mellett. Ha az Xcode forráskódként jeleníti meg az Info.plist fájlt, tekintse meg az alábbi tippet.
  2. Módosítsa a kulcs típusát tömbre.
  3. Adjon hozzá egy új bejegyzést a tömbhöz (Item 0), és módosítsa a típust szótárra.
  4. Adjon hozzá egy URL Schemes kulcsot Item 0 alá, és módosítsa a típust Tömbre.
  5. URL Schemes A kulcs alatt adjon hozzá egy új bejegyzést (Item 0).
  6. A URL Schemes>Item 0 értékét módosítsa appcenter-{APP_SECRET}-re, és cserélje le a {APP_SECRET}-t az alkalmazása titkos kódjára.

Jótanács

Ha ellenőrizni szeretné, hogy helyesen módosította-e az Info.plist fájlt, nyissa meg forráskódként. A következő bejegyzést kell tartalmaznia az alkalmazás titkos kódjával ahelyett, hogy {APP_SECRET}:

<key>CFBundleURLTypes</key>
<array>
  <dict>
  	<key>CFBundleURLSchemes</key>
  	<array>
  		<string>appcenter-{APP_SECRET}</string>
  	</array>
  </dict>
</array>

Privát terjesztési csoport használata

Alapértelmezés szerint az Distribute nyilvános terjesztési csoportot használ. Ha privát terjesztési csoportot szeretne használni, explicit módon kell beállítania azt a tulajdonságon keresztül updateTrack .

MSACDistribute.updateTrack = MSACUpdateTrackPrivate;
Distribute.updateTrack = .private

Megjegyzés:

Az alapértelmezett érték a UpdateTrack.public. Ez a tulajdonság csak a AppCenter.start metódushívás előtt frissíthető. A frissítési sáv módosításai nem maradnak meg az alkalmazásfolyamat újraindításakor, így ha a tulajdonság nem mindig frissül a AppCenter.start hívás előtt, az alapértelmezés szerint nyilvános lesz.

A hívás után megnyílik egy böngészőablak a felhasználó hitelesítéséhez. Minden későbbi frissítési ellenőrzés megkapja a legújabb kiadást a privát pályán.

Ha egy felhasználó a privát pályán van, az azt jelenti, hogy a sikeres hitelesítés után megkapja a legújabb kiadást minden olyan privát terjesztési csoporttól, amelynek tagja. Ha egy felhasználó nyilvános pályán van, az azt jelenti, hogy bármely nyilvános terjesztési csoporttól megkapja a legújabb kiadást.

A frissítés automatikus ellenőrzésének letiltása

Alapértelmezés szerint az SDK automatikusan ellenőrzi az új kiadásokat:

  • Az alkalmazás indításakor.
  • Amikor az alkalmazás háttérbe kerül, majd ismét előtérbe kerül.
  • Az Elosztott modul engedélyezésekor, ha korábban le lett tiltva.

Ha manuálisan szeretné ellenőrizni az új kiadásokat, letilthatja a frissítés automatikus ellenőrzését. Ehhez hívja meg a következő metódust az SDK indítása előtt:

[MSACDistribute disableAutomaticCheckForUpdate];
Distribute.disableAutomaticCheckForUpdate()

Megjegyzés:

Ezt a metódust a AppCenter.start metódushívás előtt kell meghívni.

Ezután használhatja a checkForUpdate következő szakaszban ismertetett API-t.

Frissítés manuális ellenőrzése

[MSACDistribute checkForUpdate];
Distribute.checkForUpdate()

Ez egy kérést küld az App Centernek, és megjelenít egy frissítési párbeszédpanelt, ha új kiadás érhető el.

Megjegyzés:

A frissítési hívás manuális ellenőrzése akkor is működik, ha az automatikus frissítések engedélyezve vannak. Ha egy másik ellenőrzés már folyamatban van, a rendszer figyelmen kívül hagyja a manuális frissítés-ellenőrzést. A manuális frissítés-ellenőrzés nem lesz feldolgozva, ha a felhasználó elhalasztotta a frissítéseket (kivéve, ha a legújabb verzió kötelező frissítés).

Az alkalmazáson belüli frissítési párbeszédpanel testreszabása vagy honosítása

1. Szöveg testreszabása vagy honosítása

Ha honosítani szeretné a frissítési párbeszédpanelen megjelenő szöveget, egyszerűen megadhat saját erőforrás-sztringeket. Tekintse meg ezt a karakterlánc fájlt. Használja ugyanazt a sztringnevet/kulcsot, és adja meg azt a honosított értéket, amelyet a saját alkalmazás sztringfájljainak párbeszédpaneljén meg szeretne jeleníteni.

2. A frissítési párbeszédpanel testreszabása

A protokoll implementálásával testre szabhatja az alapértelmezett frissítési DistributeDelegate párbeszédpanel megjelenését. Az SDK elindítása előtt regisztrálnia kell a meghatalmazottat az alábbi példában látható módon:

[MSACDistribute setDelegate:self];
Distribute.delegate = self;

Íme egy példa a delegált implementációra, amely az SDK párbeszédpanelt egy egyénire cseréli:

- (BOOL)distribute:(MSACDistribute *)distribute releaseAvailableWithDetails:(MSACReleaseDetails *)details {

  // Your code to present your UI to the user, e.g. an UIAlertController.
  UIAlertController *alertController = [UIAlertController
      alertControllerWithTitle:@"Update available."
                       message:@"Do you want to update?"
                preferredStyle:UIAlertControllerStyleAlert];

  [alertController
      addAction:[UIAlertAction actionWithTitle:@"Update"
                                         style:UIAlertActionStyleCancel
                                       handler:^(UIAlertAction *action) {
                                         [MSACDistribute notifyUpdateAction:MSACUpdateActionUpdate];
                                       }]];

  [alertController
      addAction:[UIAlertAction actionWithTitle:@"Postpone"
                                         style:UIAlertActionStyleDefault
                                       handler:^(UIAlertAction *action) {
                                         [MSACDistribute notifyUpdateAction:MSACUpdateActionPostpone];
                                       }]];

  // Show the alert controller.
  [self.window.rootViewController presentViewController:alertController animated:YES completion:nil];
  return YES;
}
func distribute(_ distribute: Distribute, releaseAvailableWith details: ReleaseDetails) -> Bool {

  // Your code to present your UI to the user, e.g. an UIAlertController.
  let alertController = UIAlertController(title: "Update available.",
                                        message: "Do you want to update?",
                                 preferredStyle:.alert)

  alertController.addAction(UIAlertAction(title: "Update", style: .cancel) {_ in
    Distribute.notify(.update)
  })

  alertController.addAction(UIAlertAction(title: "Postpone", style: .default) {_ in
    Distribute.notify(.postpone)
  })

  // Show the alert controller.
  self.window?.rootViewController?.present(alertController, animated: true)
  return true;
}

Ha a fenti módszerrel tér vissza YES/true , az alkalmazásnak be kell szereznie a felhasználó választását, és az alábbi API-val kell elküldenie az SDK-t az eredménnyel.

// Depending on the user's choice, call notifyUpdateAction: with the right value.
[MSACDistribute notifyUpdateAction:MSACUpdateActionUpdate];
[MSACDistribute notifyUpdateAction:MSACUpdateActionPostpone];
// Depending on the user's choice, call notify() with the right value.
Distribute.notify(.update);
Distribute.notify(.postpone);

Ha nem hívja meg a fenti metódust, a releaseAvailableWithDetails:-metódus akkor ismétlődik, amikor az alkalmazás az előtérbe kerül.

3. Kód végrehajtása, ha nem található frissítés

Ha az SDK frissítéseket keres, és nem találja a jelenleg használtnál újabb frissítéseket, a rendszer meghív egy distributeNoReleaseAvailable: meghatalmazotti MSACDistributeDelegate visszahívást. Ez lehetővé teszi egyéni kód végrehajtását ilyen esetekben.

Az alábbi példák bemutatják, hogyan jeleníthető meg a riasztás felhasználói felülete, ha nem található frissítés:

- (void)distributeNoReleaseAvailable:(MSACDistribute *)distribute {
  UIAlertController *alert = [UIAlertController alertControllerWithTitle:nil
                                                                 message:NSLocalizedString(@"No updates available", nil)
                                                          preferredStyle:UIAlertControllerStyleAlert];
  [alert addAction:[UIAlertAction actionWithTitle:NSLocalizedString(@"OK", nil) style:UIAlertActionStyleDefault handler:nil]];
  [self.window.rootViewController presentViewController:alert animated:YES completion:nil];
}
  func distributeNoReleaseAvailable(_ distribute: Distribute) {
    let alert = UIAlertController(title: nil, message: "No updates available", preferredStyle: .alert)
    alert.addAction(UIAlertAction(title: "OK", style: .default, handler: nil))
    self.window?.rootViewController?.present(alert, animated: true)
  }

Az App Center Distribute engedélyezése vagy letiltása futtatókörnyezetben

Az App Center Distribute futásidőben engedélyezhető és letiltható. Ha letiltja, az SDK nem biztosít alkalmazáson belüli frissítési funkciókat, de továbbra is használhatja az Distribute szolgáltatást az App Center portálon.

[MSACDistribute setEnabled:NO];
Distribute.enabled = false

Az App Center Distribute ismételt engedélyezéséhez használja ugyanazt az API-t, de adja át YES/true paraméterként.

[MSACDistribute setEnabled:YES];
Distribute.enabled = true

Az állapot megmarad az eszköz tárolójában az alkalmazásindítások során.

Megjegyzés:

Ezt a módszert csak akkor szabad használni, ha a Distribute már elindult.

Ellenőrizze, hogy az App Center Distribute engedélyezve van-e

Azt is ellenőrizheti, hogy az App Center Distribute engedélyezve van-e, vagy sem:

BOOL enabled = [MSACDistribute isEnabled];
var enabled = Distribute.enabled

Megjegyzés:

Ezt a metódust csak akkor szabad használni, ha a Distribute már elindult. Mindig visszaad false a kezdés előtt.

Az App Center Distribute inicializálásának mellőzése a fejlesztés során

Ha privát módban van, az App Center Distribute az alkalmazás indításakor megnyitja a felhasználói felületét/böngészőjét. Bár ez a végfelhasználók számára elvárt viselkedés, az alkalmazás fejlesztési szakaszában zavaró lehet. Nem javasoljuk, hogy inicializálja Distribute, a DEBUG konfigurációjához.

#if DEBUG
    [MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class]]];
#else
    [MSACAppCenter start:@"{Your App Secret}" withServices:@[[MSACAnalytics class], [MSACCrashes class], [MSACDistribute class]]];
#endif
#if DEBUG
    AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self, Crashes.self])
#else
    AppCenter.start(withAppSecret: "{Your App Secret}", services: [Analytics.self, Crashes.self, Distribute.self])
#endif

Tisztítás közvetlenül az alkalmazás bezárása előtt a frissítéshez

Implementálja a protokollt DistributeDelegate , és regisztrálja a meghatalmazottat az alábbi példában látható módon:

[MSACDistribute setDelegate:self];
Distribute.delegate = self;

A distributeWillExitApp: delegálási metódus közvetlenül azelőtt lesz meghívva, hogy az alkalmazás leállna a frissítés telepítéséhez:

- (void)distributeWillExitApp:(MSACDistribute *)distribute {
  // Perform the required clean up here.
}
func distributeWillExitApp(_ distribute: Distribute) {
  // Perform the required clean up here.
}

Hogyan működnek az alkalmazáson belüli frissítések?

Megjegyzés:

Az alkalmazáson belüli frissítések működéséhez le kell tölteni egy alkalmazás buildet a hivatkozásról. Ide-ről vagy manuálisan történő telepítés esetén nem működik.

Az alkalmazáson belüli frissítési funkció a következőképpen működik:

  1. Ez a funkció CSAK az App Center Distribute szolgáltatással elosztott buildekkel fog működni. Nem fog működni, ha a hibakereső csatlakoztatva van, vagy ha az iOS Interaktív hozzáférés funkció be van kapcsolva.

  2. Miután integrálta az SDK-t, létrehozza az alkalmazás kiadási verzióját, és feltölti azt az App Centerbe, a terjesztési csoport felhasználói e-mailben értesítést kapnak az új kiadásról.

  3. Amikor minden felhasználó megnyitja a hivatkozást az e-mailben, az alkalmazás telepítve lesz az eszközén. Fontos, hogy az alkalmazás telepítéséhez az e-mail-hivatkozást használják – Az App Center Distribute nem támogatja a más forrásokból telepített alkalmazások alkalmazáson belüli frissítéseit (például az alkalmazás e-mail mellékletből való letöltését). Amikor letölt egy alkalmazást a hivatkozásról, az SDK fontos információkat ment a cookie-kból, hogy később ellenőrizze a frissítéseket, különben az SDK nem rendelkezik ezekkel a kulcsfontosságú információkkal.

  4. Ha az alkalmazás privátra állítja a pályát, megnyílik egy böngésző, amely hitelesíti a felhasználót, és engedélyezi az alkalmazáson belüli frissítéseket. A böngésző nem nyílik meg újra, amíg a hitelesítési adatok érvényesek maradnak, még akkor sem, ha később visszaáll a nyilvános pályára, és visszaáll a privátra. Ha a böngészőhitelesítés sikeres, a rendszer automatikusan visszairányítja a felhasználót az alkalmazásba. Ha a pálya nyilvános (ez az alapértelmezett), a következő lépés közvetlenül történik.

    • Az iOS 9 és 10 rendszeren egy példány SFSafariViewController nyílik meg az alkalmazásban a felhasználó hitelesítéséhez. A hitelesítés sikeres végrehajtása után automatikusan bezárul.
    • Az iOS 11-ben a felhasználói élmény hasonló az iOS 9-hez és a 10-hez, de az iOS 11 engedélyt kér a felhasználótól a bejelentkezési adatok eléréséhez. Ez egy rendszerszintű párbeszédpanel, és nem szabható testre. Ha a felhasználó megszakítja a párbeszédpanelt, továbbra is használhatja a tesztelt verziót, de nem kap alkalmazáson belüli frissítéseket. Az alkalmazás következő indításakor a rendszer felkéri őket, hogy ismét hozzáférjenek a bejelentkezési adatokhoz.
  5. Az alkalmazás új kiadása az alkalmazáson belüli frissítési párbeszédpanelt jeleníti meg, amely arra kéri a felhasználókat, hogy frissítsék az alkalmazást, ha az a következő:

    • magasabb CFBundleShortVersionString érték vagy
    • egy egyenlő érték CFBundleShortVersionString, de egy magasabb érték CFBundleVersion.
    • a verziók megegyeznek, de a build egyedi azonosítója eltérő.

Jótanács

Ha másodszor is feltölti ugyanazt az ipa-t, a párbeszédpanel NEM fog megjelenni, mivel a bináris fájlok azonosak. Ha egy új buildet tölt fel ugyanazokkal a verziótulajdonságokkal, az megjelenik a frissítési párbeszédpanelen. Ennek az az oka, hogy ez egy másik bináris.

Hogyan tesztelhetem az alkalmazáson belüli frissítéseket?

Az alkalmazáson belüli frissítések teszteléséhez fel kell töltenie a kiadási buildeket (amelyek az App Center SDK Distribute modulját használják) az App Center Portálra, és minden alkalommal növelni kell a verziószámokat.

  1. Ha még nem tette meg, hozza létre az alkalmazást az App Center portálon.
  2. Hozzon létre egy új terjesztési csoportot, és nevezze el úgy, hogy az alkalmazáson belüli frissítési funkció tesztelésére tervezett csoport legyen könnyen felismerhető.
  3. Adja hozzá magát (vagy az összes olyan felhasználót, akit fel szeretne venni az alkalmazáson belüli frissítési funkció tesztjéhez). Ehhez használjon egy új vagy eldobható e-mail-címet, amelyet az apphoz nem használtak az App Centerben. Ez biztosítja, hogy a tapasztalat közel legyen a valódi tesztelők élményéhez.
  4. Hozzon létre egy új buildet az alkalmazásból, amely tartalmazza az App Center Distributet , és tartalmazza az alább ismertetett beállítási logikát. Ha a csoport privát, ne felejtse el beállítani az alkalmazáson belüli privát frissítési pályát, mielőtt elkezdené használni az updateTrack tulajdonságot.
  5. Kattintson az Új kiadás terjesztése gombra a portálon, és töltse fel az alkalmazás buildet.
  6. Miután a feltöltés befejeződött, kattintson a Tovább gombra, és válassza ki azt a terjesztési csoportot , amelyet az alkalmazásterjesztés célhelyeként hozott létre.
  7. Tekintse át a terjesztést, és ossza el a buildet az alkalmazáson belüli tesztelési csoportnak.
  8. A csoport tagjai meghívást kapnak az alkalmazás tesztelőinek. Miután elfogadták a meghívást, letölthetik az alkalmazást az App Center Portálról a mobileszközükről. Miután telepítették az alkalmazáson belüli frissítéseket, készen áll az alkalmazáson belüli frissítések tesztelésére.
  9. Növelje az alkalmazás verziónevét (CFBundleShortVersionString).
  10. Készítse el az alkalmazás kiadási verzióját, és töltsön fel egy új buildet az alkalmazásból, ahogyan az előző lépésben tette, és ossza el a korábban létrehozott terjesztési csoportnak . A terjesztési csoport tagjai az alkalmazás következő indításakor új verziót fognak kérni.

Jótanács

Tekintse meg az App Center Distribute használatával kapcsolatos információkat a terjesztési csoportokkal kapcsolatos részletesebb információkért. Bár az App Center Distribute használatával kód hozzáadása nélkül terjesztheti az alkalmazás új verzióját, az App Center Distribute alkalmazáskódhoz való hozzáadása zökkenőmentesebb felhasználói élményt eredményez a tesztelők és a felhasználók számára az alkalmazáson belüli frissítés során.

Az alkalmazásmeghatalmazó metódushívásainak átirányításának letiltása az App Center-szolgáltatásokba

Az App Center SDK a swizzling technikát használja az integráció javítására azáltal, hogy továbbítja magának az alkalmazás-delegált egyes metódusainak hívásait. A metódus cserélés a metódusok futásidőben történő megvalósításának megváltoztatására használható. Ha bármilyen okból nem szeretné használni a swizzlinget (például egy adott szabályzat miatt), akkor az alábbi lépések végrehajtásával letilthatja ezt a továbbítást az App Center összes szolgáltatása esetében:

  1. Nyissa meg a projekt Info.plist fájlját.
  2. Adja hozzá AppCenterAppDelegateForwarderEnabled a kulcsot, és állítsa az értéket a következőre 0: . Ez letiltja az alkalmazás delegáltjának továbbítását az összes App Center-szolgáltatás esetében.
  3. Adja hozzá a openURL visszahívást a projekt fájljába AppDelegate .
- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication
         annotation:(id)annotation {

  // Pass the url to MSACDistribute.
  return [MSACDistribute openURL:url];
}
func application(_ application: UIApplication, open url: URL, sourceApplication: String?, annotation: Any) -> Bool {

  // Pass the URL to App Center Distribute.
  return Distribute.open(url)
}