INDSTILLING AF XCODE MÅL

Sådan oprettes flere iOS-app-builds med forskellige API-miljøer.

Når du udvikler en applikation, følger mobilapp-udviklere oftest det standard udviklingslivscyklusmønster - udvikling, test og produktion. For hvert af disse faser har vi forskellige API-miljøer. Når appen for eksempel er i udviklingsstadiet, vil den kommunikere med development.api.com. Testning og produktion har hver deres respektive API-miljøer også. I denne artikel diskuterer vi, hvordan man bruger Xcode-mål til at få et korrekt iOS-app build-system på plads.

Lad os starte med et par grundlæggende, før vi springer ind.

Hvorfor har vi 3 forskellige API-miljøer?

Oprettelse af separate API-miljøer til udvikling, test og produktion giver hver bygget deres egen database, kodebase og andre respektive backend-tjenester. Dette giver udviklere mulighed for at fortsætte med at arbejde og foretage ændringer, selvom appen er i testtilstand, og sikrer (beta) -testere ikke rod med produktionsdatabasen.

Hvad hvis min backend ikke har flere miljøer opsat?

Hvordan håndterer vi flere API-miljøer i iOS?

Vi opretter en Constants.swift-fil i projektet og definerer en variabel kaldet baseUrl. Når vi bygger appen til udvikling eller produktion, ændrer vi værdien af ​​denne variabel, så det respektive API-endepunkt bruges i build, som vist nedenfor.

Kommenter & Un kommenterer baseUrl pr. Bygningsmiljø.

Selvom denne proces er hurtig og enkel, er den også stærkt fejlagtig på grund af følgende årsager:

  1. Hvis der er mange variabler, der skal ændres pr. Bygningsmiljø, kræver det en mere manuel indsats fra udviklerne at kommentere eller fjerne kommentarer til de respektive udsagn.
  2. Det er sandsynligt, at udviklere vil glemme at kommentere eller fjerne kommentarer til en eller flere udsagn i denne proces, hvilket fører til utilsigtet opførsel eller problemer. Så skal de bruge tid på debugging for at finde de skyldige.

For at undgå disse problemer og skabe et mere lydopbygget system kan man bruge Xcode-mål. Hvis du ikke er bekendt med mål i Xcode, skal du læse om dem her, før du fortsætter.

Trin 1: Opret et mål

Vi bliver nødt til at oprette et nyt mål for hvert af API-miljøerne. Teknisk tillader Xcode dig ikke at oprette et nyt mål, så vi duplikerer (Cmd + D) standardmålet og omdøber det, som vist nedenfor.

Oprettelse af et duplikatmål

Xcode opretter automatisk et nyt skema til det nye mål.

Trin 2: Indstilling af brugerdefinerede flag

For at ændre API-endepunktet baseret på build-målet skal du først indstille et tilpasset flag. Baseret på dette flag kan din kode opdatere variablerne i overensstemmelse hermed.

  • Vælg Mål → Opbygningsindstillinger.
  • Sørg for, at alle og kombinerede indstillinger er valgt.
  • Søg efter tilpassede flag.
  • Under Swift Compiler - Brugerdefinerede flag → Aktive kompilationsbetingelser kan du se Fejlfinding og dobbeltklikke på værdien DEBUG, og du får en pop-up med + & -knapper. Tjek nedenunder billede
Opdatering af DEBUG-flag til UDVIKLING
  • Dobbeltklik på DEBUG for at redigere, ændre det til UDVIKLING.

Hvorfor er det vigtigt at vælge disse indstillinger?

Disse indstillinger vil påvirke, hvordan din app bruger respektive miljøvariabler, når din app er samlet.

Trin 3: Brug af brugerdefinerede flag.

Åbn dit Constants.swiftog brug UDVIKLINGSFlagget som nedenfor, og indstil dine miljøvariabler som baseUrl i overensstemmelse hermed.

Forbearbejdningsflagg

Som vist ovenfor kan du definere alle miljøvariabler, der skal være forskellige for udvikling, test og produktion.

Trin 4: Test

Lad os nu gøre en simpel test for at verificere, om basis-url ændres som pr. Build-indstillinger.

  • Skriv en udskrivning () -sætning i enhver ViewController → viewDidLoad () -metode for at udskrive baseUrl-værdi.
  • Vælg Administrer skemaer fra værktøjslinjen, indstil Kør → Opbyg konfiguration til Debug som vist nedenfor.
Indstil køreskemaet til fejlfinding.
  • Kør applikationen, og kontroller konsollen for logfiler. Du skal se baseUrl som https://dev.appitventures.com/api/v1/ slutmiljø for udviklingsmiljø.
Bekræft log for at se, om baseUrl viser api-endepunktet UDVIKLING.
  • Lad os på lignende måde indstille konfigurationen Kør → Build til frigivelse som vist nedenfor. Kør applikationen, og du vil se thebaseUrl som https://prod.appitventures.com/api/v1/ produktionsmiljøets endepunkt.
Indstil RUN-ordningen til at frigive og verificere log.

Det er sådan, vi bruger Xcode-mål til at administrere iOS-bygninger med flere API-miljøendepunkter. Temmelig let, ikke?

En ting mere !

Hvis du installerer udviklingen, testen og produktionen iOS bygger på en enkelt enhed på én gang og tester builds, skal du være opmærksom: Når du har oprettet et nyt mål (ved at duplikere), skal du indtaste unikke værdier for skærmen Navn og pakkeidentifikator, fordi ingen to apps på en enhed kan have de samme. For let at skelne mellem bygningerne kan du bruge et andet visningsnavn og appikon, som vist nedenfor.

Udvikling og produktion bygger på samme enhed.

For at oprette disse til hver målopbygning skal du gå til BuildSettings, søge efter ikon og ændre værdien af ​​Asset Catalog App Icon Set Name til det ønskede appikonfilnavn.

Bemærk: Du skal være forsigtig, når du tilføjer nye filer, afhængigheder (pods) og iOS-tilladelser i plist- og CI-systemer. Sørg for, at du vælger alle de mål, du har oprettet, så disse filer bliver samlet til alle mål, og undgå kompilatorproblemer.

Hvis du kunne lide dette indlæg og syntes det var nyttigt, så giv mig nogle klapp! Følg mig venligst på Medium! Følg AppIt Ventures for andre lignende artikler. Tak