Endelig løsning på Xcodebuild fejlkode 65 i iOS builds

Sidste ændring: 14/04/2025
Forfatter: Isaac
  • Xcodebuild-fejl 65 er normalt relateret til problemer med signering, simulator eller miljøkonfiguration.
  • Det manifesterer sig på flere måder, både i native udviklinger med Xcode og med Appium, React Native eller Unity.
  • Der er gode fremgangsmåder, der gør det muligt at undgå fejl under kontinuerlige integrationer eller lokale udførelser.
  • Gennemgå klargøringsprofiler og brug dem logs detaljeret hjælper med bedre at identificere årsagen til fejlen

Xcodebuild fejlkode 65 på iOS

Når den frygtede fejlkode 65 vises, mens du kører xcodebuild på iOS eller macOS, uanset om det er i lokale udviklings- eller kontinuerlige integrationsmiljøer, kan det føles som om alt er gået ned. Det er en af ​​de generiske fejl, der ikke tydeligt angiver, hvad der gik galt, hvilket gør det særligt frustrerende.

Denne fejl er almindelig, når man arbejder med værktøjer som React Native, Xcode, Appium, Unity eller Cordova . Det værste er, at Xcode ofte giver meget lidt brugbar information i sine logfiler, hvilket gør det endnu sværere at løse. Men bare rolig, vi vil gennemgå alle de mulige årsager til, at det opstår, og hvordan man retter det i hvert tilfælde.

Hvad betyder Xcodebuild fejlkode 65?

Forklaring af fejlkode 65 i xcodebuild

Fejlkode 65 i xcodebuild- værktøjet er en generisk måde at angive, at noget er gået galt under kompilering, testning, analyse eller arkivering af projektet . Ifølge den tekniske dokumentation er denne fejl specifikt forbundet med datainputfejl eller uventede forhold, som værktøjet ikke kan gendanne fra.

Ligesom HTTP-koder (såsom 404 eller 200), Disse udgangskoder angiver, hvad der skete men de giver ikke detaljer. I dette tilfælde svarer 65 til en konstant defineret i filen sysexits.h og dens beskrivelse er "EX_DATAERR", det vil sige fejl på grund af forkerte data.

Dette kan have flere årsager, lige fra en projektkonfigurationsfejl til tilladelsesproblemer, signaturproblemer, ikke-startede simulatorer, manglende provisioneringsprofiler eller endda uforeneligheder med afhængighedsversioner. Hvis du vil dykke dybere ned i konfigurationen af ​​byggemiljøer, kan du gennemgå en artikel om Ubuntu-kompilering.

Almindelige årsager til, at Xcodebuild fejler med kode 65

Som observeret i forskellige miljøer såsom Appium, Cordova, CircleCI og native Xcode-projekter, er hovedårsagerne til fejlen:

  • Udløbne eller ukonfigurerede klargøringsprofiler.
  • Problemer med kodesignering (Code Sign Identity).
  • Simulatorer er ikke startet eller utilgængelige på tidspunktet for bygning eller test.
  • Korrupte konfigurationsfiler eller inkompatibel (f.eks .xcconfig stavet forkert).
  • Mellemliggende byggetrin mislykkes, såsom CopyPNG, CodeSign eller ProcessProductPackaging.
  • Trådsammenfald sænker simulatorstarten i CI-miljøer såsom CircleCI eller Azure Pipelines.
  • Ukorrekt brug af Apple Silicon-maskiner (M1, M2...) uanset arkitektoniske forskelle.
  Sådan forhindrer du din mobiltelefon i at vibrere, samtidig med at den ringer

Fejl 65 i Xcodebuild ved hjælp af CircleCI- eller CI/CD-systemer

Når man kører builds i automatiserede miljøer som CircleCI, kan xcodebuild mislykkes, hvis miljøet endnu ikke er "klar ". Mange udviklere støder på fejl 65, fordi simulatoren ikke er startet helt, når buildet begynder.

Et anbefalet trick er at starte simulatoren manuelt på forhånd med kommandoen:

xcrun instruments -w 'iPhone 7 (10.3)' || sleep 15

På denne måde systemet får tid til at starte simulatoren korrekt. Selv sleep 15 senere hjælper kommandoen med at returnere kode 0 og ikke forårsage en anden kæde af fejl.

Det er også nyttigt at adskille simulatoropstarten fra afhængighedserhvervelsestrinnet for at få en klarere forståelse af, hvilket trin i pipelinen der fejler. For flere detaljer om kontinuerlig integration kan du besøge dette link om Ethereum og CI/CD.

Fejl 65 i Appium med WebDriverAgent

WebDriverAgent og fejlkode 65 i Appium

Et af de hyppigste tilfælde af fejl 65 opstår, når man kører tests med Appium på rigtige iOS-enheder. Den sædvanlige årsag er manglende evne til at starte WebDriverAgent korrekt , det værktøj Appium bruger til at kommunikere med iOS-enheden.

I de fleste tilfælde skyldes denne fejl:

  • WebDriverAgent ikke signeret korrekt eller uden en gyldig klargøringsprofil.
  • Forkert bundle-id eller som ikke matcher det konfigurerede certifikat.
  • Appium-versionen er inkompatibel med WebDriverAgent.

Løsningen er at underskrive WDA korrekt og sikre, at der ikke er nogen fejl relateret til rettighederne eller signeringsidentiteten. Derudover anbefales det at slette WebDriverAgent-appen fra enheden og genstarte den, før du gentester build. Det kan også være nyttigt at bruge muligheden showXcodeLog for mere detaljeret information om den underliggende fejl.

Arbejder med React Native og kode 65 fejl

Hvis du bruger React Native, og du støder på denne fejl, når du starter npx react-native run-ios, sørg for følgende:

  Sådan bruger du en elektrokardiograf til din mobiltelefon: vejledninger og enheder

1. Installer bælgerne korrekt

En af de mest almindelige årsager er, at native afhængigheder ikke er installeret korrekt. Sådan rettes dette:

npx pod-install

Når det er færdigt, kan du køre projektet igen. Hvis du har brug for at opdatere dit miljø, findes der vejledninger til, hvordan du installerer Ghostty på Linux , som kan være nyttige for udviklere.

2. Kør fra Xcode for mere eksplicitte fejl

Når CLI- kommandoer ikke giver nyttige oplysninger, er det bedst at åbne projektet i Xcode og bygge det derfra. Dette vil give dig mulighed for at se tydeligere fejl relateret til biblioteker, enheder eller konfigurationer.

3. Tjek tilsluttede enheder

Tjek, om du har flere aktive simulatorer, og vælg eksplicit én, når du starter projektet:

npx react-native run-ios --simulator="iPhone 15 Pro"

4. Nulstil pods

Nogle modstridende biblioteker eller rester af tidligere konfigurationer forårsager fejl. En nulstilling hjælper normalt.

cd ios
pod deintegrate
pod cache clean --all
pod setup
pod install

5. Æblesilicium (M1, M2, M3 chips)

Apples nye chips forårsager fejl i builds, hvis kommandoer ikke udføres på x86-arkitektur. I så fald kan du prøve følgende:

sudo arch -x86_64 gem install ffi
arch -x86_64 pod install

Enhed og fejl 65 under arkivering

I projekter oprettet med Unity, der derefter eksporteres som Xcode-projekter til kompilering på iOS, kan fejl 65 opstå under byggetrinnet. xcodebuild archive. Selvom alt er konfigureret korrekt, kan Xcode fejle med problemer i trin som:

  • Behandle produktemballage
  • Kodetegn
  • Godkend

Selvom profilerne og certifikaterne er korrekte, kan der være fejl i generering af rettigheder eller mellempakker. Nogle gange hjælper det at slette mappen DerivedData, ryd op i produkterne i Xcode, og sørg for, at versionen af ​​Unity og Xcode er kompatible. For mere information om softwareversioner, tjek vores indlæg om Sådan kender du versionen af ​​Windows 11.

Fejl uden en synlig anelse: hvad skal man gøre

I mange scenarier (f.eks. ved at bruge Azure Pipelines eller GitHub Actions) vises fejlen uden tydelig akkompagnement i loggen, selv med flag --verbose. I disse tilfælde:

  Sådan installerer du iPhone-apps på din Mac med PlayCover trin for trin

1. Forøg logniveauer. USA showXcodeLog, -verbose og gemmer midlertidige logfiler til analyse med et øjeblik.

2. Undersøg det sidste trin før fejlen . Ofte ligger fejlen ikke der, hvor fejlen opstår, men et par trin tidligere.

3. Prøv at kompilere manuelt med Xcode , og kontroller, om fejlen opstår uden for det automatiserede miljø.

På denne måde kan du isolere, om problemet ligger i selve projektet eller i miljøkonfigurationen. Husk, at forståelse af byggearbejdsgange kan hjælpe med at forhindre problemer, så overvej at læse om fejlskærmbilleder i systemer.

Som du har set, betyder fejlkode 65 ikke kun én ting; den kan skyldes flere årsager afhængigt af konteksten: native projekter, React Native, Appium, CI/CD, Unity osv. Nøglen er at vide, hvordan man fortolker logfilerne , forstå, hvordan Xcodes signering og konfiguration fungerer , og at anvende bedste praksis såsom at simulere virkelige miljøer, bruge detaljerede logfiler og rydde op i resterende artefakter . Med lidt tålmodighed og en systematisk tilgang kan denne fejl løses og ophøre med at være et mareridt, der hindrer iOS-udvikling.

telefonopsamlingsnummer
Relateret artikel:
Hvad er telefonopsamlingsnummeret til?