Xcode
Strumenti da riga di comando
Ricerca…
Esecuzione di test
Per eseguire i test delle unità nel simulatore utilizzando xcodebuild
uso di xcodebuild
Se hai uno spazio di lavoro (ad es. Quando usi CocoaPods )
xcodebuild \
-workspace MyApp.xcworkspace \
-scheme "MyScheme" \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 6,OS=9.1' \
test
Se hai un file di progetto
xcodebuild \
-project MyApp.xcproj \
-scheme "MyScheme" \
-sdk iphonesimulator \
-destination 'platform=iOS Simulator,name=iPhone 6,OS=9.1' \
test
I valori di destination
alternativi sono
-destination 'platform=iOS,id=REAL_DEVICE_UDID'
-destination 'platform=iOS,name=IPHONE NAME'
Elenca gli obiettivi, gli schemi e le configurazioni di costruzione disponibili
Per elencare tutti gli schemi disponibili per il progetto nella directory corrente
xcodebuild -list
Opzionalmente è possibile passare un percorso a un progetto o un file dell'area di lavoro
xcodebuild -list -workspace ./MyApp.xcworkspace
xcodebuild -list -project ./MyApp.xcodeproj
Esempio di output
Information about project "Themoji":
Targets:
Themoji
ThemojiUITests
Unit
Build Configurations:
Debug
Release
If no build configuration is specified and -scheme is not passed then "Release" is used.
Schemes:
Themoji
ThemojiUITests
Units
Compilare e firmare lo schema
Codice di pulizia e compilazione per iPhone, sul progetto MyProject per lo schema Qa:
xcrun xcodebuild clean \
-workspace "MyProject.xcworkspace" \
-scheme "YourScheme" \
-sdk iphoneos \
-configuration Debug \
archive \
-archivePath builds/MyProject.xcarchive
La configurazione può essere Debug
o Release
.
Firma il codice precedentemente compilato:
xcrun xcodebuild -exportArchive \
-archivePath builds/MyProject-Qa.xcarchive \
-exportOptionsPlist config.plist \
-exportPath builds
config.plist
contiene le informazioni su come confezionare e firmare l'applicazione, per le build di sviluppo utilizzare:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>development</string>
<key>uploadSymbols</key>
<true/>
</dict>
</plist>
Un plist di rilascio di App Store dovrebbe contenere qualcosa come:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>teamID</key>
<string>xxxxxxxxxxx</string>
<key>method</key>
<string>app-store</string>
<key>uploadSymbols</key>
<true/>
</dict>
</plist>
Dove è possibile ottenere l'ID della squadra dal portachiavi.
Tutti i parametri disponibili
-
compileBitcode
-
embedOnDemandResourcesAssetPacksInBundle
-
iCloudContainerEnvironment
-
manifest
-
method
-
onDemandResourcesAssetPacksBaseURL
-
teamID
-
thinning
-
uploadBitcode
-
uploadSymbols
Per ottenere maggiori informazioni su ognuno dei parametri, esegui xcodebuild --help
Accedi a qualsiasi strumento da riga di comando nel pacchetto app Xcode (xcrun)
xcrun
utilizza la versione Xcode predefinita del sistema (impostata tramite xcode-select
) per individuare ed eseguire gli strumenti da riga di comando dal bundle dell'applicazione Xcode, ad es. llvm-cov.
# Generate code coverage reports via llvm-cov
# /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
xcrun llvm-cov [parameters]
# Execute xcodebuild
# /Applications/Xcode.app/Contents/Developer/usr/bin
xcrun xcodebuild [parameters]
# Use Xcode's version of git, e.g., if you have installed a newer version
# /Applications/Xcode.app/Contents/Developer/usr/bin
xcrun git [parameters]
Commutazione degli strumenti da riga di comando con xcode-select
Stampa il percorso della directory di sviluppo attiva (Xcode selezionato)
xcode-select -p
Seleziona una versione diversa di Xcode, ad esempio Beta
sudo xcode-select -s /Applications/Xcode-beta.app
Ripristina la versione predefinita di Xcode
sudo xcode-select -r
Questo è equivalente all'esecuzione di sudo xcode-select -s /Applications/Xcode.app
Per maggiori dettagli: man xcode-select