Skip to main content

Userful xcodebuild command lines

I setup Jenkins jobs to build iOS project for QA and release. Here are some useful xcodebuild commands that I use. Tested with XCode 9.

Create a xcarchive file
xcodebuild -project ${APPNAME}.xcodeproj -scheme ${APPSCHEME} -configuration Release clean -archivePath "${WORKSPACE}/${APPNAME}.xcarchive" archive

Create an IPA from xcarchive file with exportOptions.
xcodebuild -exportArchive -archivePath "${APPNAME}.xcarchive" -exportPath "${WORKSPACE}" -exportOptionsPlist exportOptions.plist -allowProvisioningUpdates

If the above command doesn't create an IPA, try putting xcrun in front. To generate an IPA with the correct certificate and provision profile, you must set them correctly in exportOptions.plist. See example below.

Create an APP file for simulator
xcodebuild -project ${APPNAME}.xcodeproj -scheme ${APPSCHEME} -configuration Debug -sdk iphonesimulator clean build


Sample exportOptions.plist
<?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>enterprise</string> //app-store, enterprise, ad-hoc or development
 <key>signingCertificate</key>
 <string>iPhone Distribution</string> //Certificate name
 <key>teamID</key>
 <string>T7L12345678</string> //The development program team identifier.
 <key>uploadBitcode</key>
 <false>
 <key>uploadSymbols</key>
 <false>
 <key>provisioningProfiles</key>
 <dict>
  <key>com.sample</key>
  <string>fe26f4e4-11d0-4054-898c-144a8se030a1</string> //Provision profile UUID
 </dict>
</dict>
</plist>

Update build version in Info.plist
/usr/libexec/Plistbuddy -c "Set CFBundleVersion ${BUILD_NUMBER}" "${WORKSPACE}/${APPNAME}/Info.plist"

Comments

Popular posts from this blog

KML Collection iOS App

I often create apps I need that are not available in the app store. This is one of them. I usually plan my travel trip using Google My Maps to store all the interesting places I want to go. I needed an app that can import KML map files exported by Google and show all the places. I also want an easy way for me to open the place in my favorite navigation app. So, I created KML Collection using swift. App Store link

Update: Items for Diablo 3

Happy New Year! My first personal app Items for Diablo 3 was released in September 23rd, 2013 when I was actively playing the game Diablo 3. It received lots of great reviews from players that encouraged me to keep making updates to Items for Diablo 3. From a simple off-line items viewer to hero profiles checker, to hero skills simulator, to rift rankings. I want to say thank you to the fans of the app. App Store link Here are a few reviews from the app store. Like it was made by Blizzard themselves I have been searching for awhile for an app that would provide the utility of the official WoW Armory app for Diablo. I've tried several and never been satisfied - until now! This app is absolutely fantastic. It provides everything I had been wanting - easy ability to view my characters, full skill calculator/browser, and a cleanly presented database of legendary and set items. The search for the database is quick and robust - it will even give you a list of all class-appropria