Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
OTA DISTRIBUTION        &BUILD AUTOMATION       Jay Graves      Double Encore                      © 2011 Double Encore, I...
© 2011 Double Encore, Inc.
© 2011 Double Encore, Inc.
© 2011 Double Encore, Inc.
© 2011 Double Encore, Inc.
© 2011 Double Encore, Inc.
What is OTA Distribution?            © 2011 Double Encore, Inc.
What is OTA Distribution?            © 2011 Double Encore, Inc.
What is OTA Distribution?            © 2011 Double Encore, Inc.
XCODE        © 2011 Double Encore, Inc.
XCODE        © 2011 Double Encore, Inc.
DEMO © 2011 Double Encore, Inc.
THE HARD WAY       © 2011 Double Encore, Inc.
THE HARD WAY 1. Build and Archive 2. Share Archive 3. Use .ipa + Provision profile 4. Name the .ipa 5. Save for “Enterprise...
© 2011 Double Encore, Inc.
AUTOMATE IT!       © 2011 Double Encore, Inc.
AUTOMATE IT! /usr/bin/xcodebuild                   © 2011 Double Encore, Inc.
HELP! © 2011 Double Encore, Inc.
BUILD IT xcodebuild -target MyApp -configuration Release                      © 2011 Double Encore, Inc.
WHAT IS THE “ENTERPRISE” SWITCH?                © 2011 Double Encore, Inc.
WHAT IS THE “ENTERPRISE” SWITCH?                © 2011 Double Encore, Inc.
BUILD OUR OWN       © 2011 Double Encore, Inc.
BUILD OUR OWN      ?       © 2011 Double Encore, Inc.
BUILD OUR OWN                                           ?1. A .ipafile2. A .plistfile              © 2011 Double Encore, Inc.
CREATE A .IPA FILE    MyApp.         ipa         © 2011 Double Encore, Inc.
CREATE A .IPA FILE         zip    MyApp.         © 2011 Double Encore, Inc.
© 2011 Double Encore, Inc.
SCRIPT IT            © 2011 Double Encore, Inc.
SCRIPT IT# Create the .ipaAPPFILE=$(find . -name MyApp.app)mkdir Payloadcp -r *.app Payload/zip -r MyApp.ipa Payload/     ...
PROPERTY LIST        © 2011 Double Encore, Inc.
PROPERTY LIST        © 2011 Double Encore, Inc.
SCRIPT IT lyn                 © 2011 Double Encore, Inc.
SCRIPT IT            ? lyn                 © 2011 Double Encore, Inc.
SCRIPT IT                                         ? Perl Ruby Python            © 2011 Double Encore, Inc.
© 2011 Double Encore, Inc.
© 2011 Double Encore, Inc.
PLISTBUDD    © 2011 Double Encore, Inc.
PLISTBUDD /usr/libexec/PlistBuddy          © 2011 Double Encore, Inc.
© 2011 Double Encore, Inc.
TO THE INTERNET!        © 2011 Double Encore, Inc.
TO THE INTERNET!s3cmd --acl-public put ${ipa_name} s3://my-builds/s3cmd --acl-public put ${distro_plist_name} s3://my-buil...
POSSIBILITIES         © 2011 Double Encore, Inc.
POSSIBILITIES    1.   Archive your .dSYM    2.   Send out an email    3.   Tag your source code    4.   Post to Twitter   ...
FOUR STEPS        © 2011 Double Encore, Inc.
FOUR STEPS    1.   Compile the .app    2.   Create the .ipa    3.   Create the .plist    4.   Upload the files             ...
SHOW FULL SCRIPT      © 2011 Double Encore, Inc.
AUTOMATE IT)           © 2011 Double Encore, Inc.
AUTOMATE IT)           © 2011 Double Encore, Inc.
AUTOMATE IT#!/bin/shgit remote updatelocal=$(git rev-list --max-count=1 master)origin=$(git rev-list --max-count=1 origin/...
CRON JOB* * * * * sh /usr/local/bin/build_project.sh > /dev/null                            © 2011 Double Encore, Inc.
DEMO © 2011 Double Encore, Inc.
THE STORY SO       © 2011 Double Encore, Inc.
THE STORY SO •Entirely manual workflow •Completely automated solution             © 2011 Double Encore, Inc.
DO YOU WANT     © 2011 Double Encore, Inc.
JENKINS          © 2011 Double Encore, Inc.
JENKINS          © 2011 Double Encore, Inc.
© 2011 Double Encore, Inc.
INSTALL & RUN        © 2011 Double Encore, Inc.
INSTALL & RUN     > brew install jenkins                © 2011 Double Encore, Inc.
INSTALL & RUN                  > brew install jenkinsjava -jar /usr/local/Cellar/jenkins/1.428/lib/jenkins.war            ...
INSTALL & RUN                     > brew install jenkinsjava -jar /usr/local/Cellar/jenkins/1.428/lib/jenkins.war launchct...
DEMO © 2011 Double Encore, Inc.
VENDING MACHINE       © 2011 Double Encore, Inc.
VENDING MACHINE       © 2011 Double Encore, Inc.
THANKS!          © 2011 Double Encore, Inc.
THANKS!   Jay GravesJay@skabber.com    @skabber                  © 2011 Double Encore, Inc.
Upcoming SlideShare
Loading in …5
×

360iDev OTA Distribution and Build Automation

7,454 views

Published on

Published in: Technology, Business
  • Be the first to comment

360iDev OTA Distribution and Build Automation

  1. 1. OTA DISTRIBUTION &BUILD AUTOMATION Jay Graves Double Encore © 2011 Double Encore, Inc.
  2. 2. © 2011 Double Encore, Inc.
  3. 3. © 2011 Double Encore, Inc.
  4. 4. © 2011 Double Encore, Inc.
  5. 5. © 2011 Double Encore, Inc.
  6. 6. © 2011 Double Encore, Inc.
  7. 7. What is OTA Distribution? © 2011 Double Encore, Inc.
  8. 8. What is OTA Distribution? © 2011 Double Encore, Inc.
  9. 9. What is OTA Distribution? © 2011 Double Encore, Inc.
  10. 10. XCODE © 2011 Double Encore, Inc.
  11. 11. XCODE © 2011 Double Encore, Inc.
  12. 12. DEMO © 2011 Double Encore, Inc.
  13. 13. THE HARD WAY © 2011 Double Encore, Inc.
  14. 14. THE HARD WAY 1. Build and Archive 2. Share Archive 3. Use .ipa + Provision profile 4. Name the .ipa 5. Save for “Enterprise” 6. Upload files 7. Use the magic URL © 2011 Double Encore, Inc.
  15. 15. © 2011 Double Encore, Inc.
  16. 16. AUTOMATE IT! © 2011 Double Encore, Inc.
  17. 17. AUTOMATE IT! /usr/bin/xcodebuild © 2011 Double Encore, Inc.
  18. 18. HELP! © 2011 Double Encore, Inc.
  19. 19. BUILD IT xcodebuild -target MyApp -configuration Release © 2011 Double Encore, Inc.
  20. 20. WHAT IS THE “ENTERPRISE” SWITCH? © 2011 Double Encore, Inc.
  21. 21. WHAT IS THE “ENTERPRISE” SWITCH? © 2011 Double Encore, Inc.
  22. 22. BUILD OUR OWN © 2011 Double Encore, Inc.
  23. 23. BUILD OUR OWN ? © 2011 Double Encore, Inc.
  24. 24. BUILD OUR OWN ?1. A .ipafile2. A .plistfile © 2011 Double Encore, Inc.
  25. 25. CREATE A .IPA FILE MyApp. ipa © 2011 Double Encore, Inc.
  26. 26. CREATE A .IPA FILE zip MyApp. © 2011 Double Encore, Inc.
  27. 27. © 2011 Double Encore, Inc.
  28. 28. SCRIPT IT © 2011 Double Encore, Inc.
  29. 29. SCRIPT IT# Create the .ipaAPPFILE=$(find . -name MyApp.app)mkdir Payloadcp -r *.app Payload/zip -r MyApp.ipa Payload/ © 2011 Double Encore, Inc.
  30. 30. PROPERTY LIST © 2011 Double Encore, Inc.
  31. 31. PROPERTY LIST © 2011 Double Encore, Inc.
  32. 32. SCRIPT IT lyn © 2011 Double Encore, Inc.
  33. 33. SCRIPT IT ? lyn © 2011 Double Encore, Inc.
  34. 34. SCRIPT IT ? Perl Ruby Python © 2011 Double Encore, Inc.
  35. 35. © 2011 Double Encore, Inc.
  36. 36. © 2011 Double Encore, Inc.
  37. 37. PLISTBUDD © 2011 Double Encore, Inc.
  38. 38. PLISTBUDD /usr/libexec/PlistBuddy © 2011 Double Encore, Inc.
  39. 39. © 2011 Double Encore, Inc.
  40. 40. TO THE INTERNET! © 2011 Double Encore, Inc.
  41. 41. TO THE INTERNET!s3cmd --acl-public put ${ipa_name} s3://my-builds/s3cmd --acl-public put ${distro_plist_name} s3://my-builds/ © 2011 Double Encore, Inc.
  42. 42. POSSIBILITIES © 2011 Double Encore, Inc.
  43. 43. POSSIBILITIES 1. Archive your .dSYM 2. Send out an email 3. Tag your source code 4. Post to Twitter 5. >say “Build Complete” © 2011 Double Encore, Inc.
  44. 44. FOUR STEPS © 2011 Double Encore, Inc.
  45. 45. FOUR STEPS 1. Compile the .app 2. Create the .ipa 3. Create the .plist 4. Upload the files © 2011 Double Encore, Inc.
  46. 46. SHOW FULL SCRIPT © 2011 Double Encore, Inc.
  47. 47. AUTOMATE IT) © 2011 Double Encore, Inc.
  48. 48. AUTOMATE IT) © 2011 Double Encore, Inc.
  49. 49. AUTOMATE IT#!/bin/shgit remote updatelocal=$(git rev-list --max-count=1 master)origin=$(git rev-list --max-count=1 origin/master)if [ "$local" != "$origin" ]then    git pull origin master    echo "Lets build it :)"else    echo "No changes :("fi © 2011 Double Encore, Inc.
  50. 50. CRON JOB* * * * * sh /usr/local/bin/build_project.sh > /dev/null © 2011 Double Encore, Inc.
  51. 51. DEMO © 2011 Double Encore, Inc.
  52. 52. THE STORY SO © 2011 Double Encore, Inc.
  53. 53. THE STORY SO •Entirely manual workflow •Completely automated solution © 2011 Double Encore, Inc.
  54. 54. DO YOU WANT © 2011 Double Encore, Inc.
  55. 55. JENKINS © 2011 Double Encore, Inc.
  56. 56. JENKINS © 2011 Double Encore, Inc.
  57. 57. © 2011 Double Encore, Inc.
  58. 58. INSTALL & RUN © 2011 Double Encore, Inc.
  59. 59. INSTALL & RUN > brew install jenkins © 2011 Double Encore, Inc.
  60. 60. INSTALL & RUN > brew install jenkinsjava -jar /usr/local/Cellar/jenkins/1.428/lib/jenkins.war © 2011 Double Encore, Inc.
  61. 61. INSTALL & RUN > brew install jenkinsjava -jar /usr/local/Cellar/jenkins/1.428/lib/jenkins.war launchctl load -w ~/Library/LaunchAgents/org.jenkins-ci.plist © 2011 Double Encore, Inc.
  62. 62. DEMO © 2011 Double Encore, Inc.
  63. 63. VENDING MACHINE © 2011 Double Encore, Inc.
  64. 64. VENDING MACHINE © 2011 Double Encore, Inc.
  65. 65. THANKS! © 2011 Double Encore, Inc.
  66. 66. THANKS! Jay GravesJay@skabber.com @skabber © 2011 Double Encore, Inc.

×