ããããããæç¹ã§ã顧客ã«ãèŠããããã®äœæ¥ã®çµæãæäŸãå§ããå¿ èŠããããŸãã
ãã®ããã«ãç¹å¥ãªã¿ã€ãã®ã¢ã»ã³ããªAdHoc Distributionã䜿çšãããŸãã Appleã«ã¢ã¯ã»ã¹ããŠãé åžããããžã§ãã³ã°ãããã¡ã€ã«ãäœæããå¿ èŠããããŸãã 次ã«ãã¢ããªã±ãŒã·ã§ã³ãåéãããã®ãããã¡ã€ã«ã§çœ²åããŸãã ãã®æ®µéã§ãã®ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããäºå®ã®ããã€ã¹ã®ãã¹ãŠã®èå¥åããããã¡ã€ã«ã«ç»é²ãããŸãã ãã®çµæãAdHocã§ãã«ããããšãXodeã¯æ¡åŒµå.ipaã®ãã¡ã€ã«ãäœæããŸãããã®ãã¡ã€ã«ã¯ããããã¡ã€ã«ã«ç»é²ãããŠãããã¹ãŠã®ããã€ã¹ã«æ¢ã«ã€ã³ã¹ããŒã«ã§ããŸãã ããšãã°ãiTunesãéããŠã
ã¢ã»ã³ããªãã¯ã©ã€ã¢ã³ãã«äŒããã®ã«æé©ãªæ¹æ³ã«é¢ããŠçåãçããŸãã ã¯ããããšãã°ãåã«ãã¡ã€ã«ãã¡ãŒã«ã§éä¿¡ãããããã¡ã€ã«ãã¹ãã£ã³ã°ãµãŒãã¹ã«çœ®ããŠã貧ãã人ã«èªåã®ããã€ã¹ã®iTunesããã€ã³ã¹ããŒã«ããããããããšãã§ããŸãã ããããããªããã¯ã©ã€ã¢ã³ãã®æéã倧åã«ããŠããããŸãã¯ããªãã«åœŒã«ãããè¡ãæ¹æ³ã説æããã®ãé¢åã§ããããããã¯ããªãããã çããŠæ¥œãã人ã§ãããªããããªãã¯å¥ã®ãã䟿å©ãªæ¹æ³ããããã©ãããèããå¿ èŠããããŸãã
Xcodeããã®èªååã§ããããã®ã¡ãœããã®1ã€ã«ã€ããŠèª¬æããŸãã
é·ãéããã®éã§ãã§ã«ååãªãµããŒã¿ãŒãåããŠããã確ãã«ããã®ã¿ã¹ã¯ãžã®å¯ŸåŠã¯ããã»ã©æªããããŸããã åœç¶ã®ãµãŒãã¹ã®1ã€ã¯ãããšãã°TestFlightã§ãã èå¿ãªã®ã¯ãã¯ã©ã€ã¢ã³ãïŒãŸãã¯ããŒã¿ãã¹ã¿ãŒïŒããµãŒãã¹ãéããŠã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ã§ããããã«ããããšã§ãã ãããè¡ãã«ã¯ããã¹ãŠã®ããŒã¿ãã¹ã¿ãŒãããã€ã¹ã«ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããå¿ èŠããããŸãã ãããŠå°æ¥ã圌ããããªãã®æ¬¡ã®ãã«ãã®ãªãªãŒã¹ã«ã€ããŠã¡ãŒã«ã§éç¥ãåãåã£ããšãã圌ãã¯ãã®ã¢ããªã±ãŒã·ã§ã³ãèµ·åããããã§ããªãã®ã¢ããããŒããèŠã€ãã圌ãã®ã€ã³ã¿ãŒãã§ãŒã¹ãéããŠãããã€ã³ã¹ããŒã«ããŸãã
ãããããã®ã¹ããŒã ã¯çæ³çã§ã¯ãããŸããã
ãŸããããã¯ãTestFlightã«ç»é²ããæ¹æ³ãèªåã§ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããæ¹æ³ã顧客ã«èª¬æããå¿ èŠãããããšãæå³ããŸãïŒAppStoreã«ã¯ãªããã€ã³ã¹ããŒã«ã¯Webãµã€ãããè¡ãããŸãïŒã
ãŸãããã®å Žåãç§ãã¡ã®åŽã®ç掻ãç°¡çŽ åããŸãã-Xcodeã§æåã«å¥ã®AdHocãã«ããåéããå¿ èŠããããã³ã«ããã®ãªãŒã¬ãã€ã¶ãŒãŠã£ã³ããŠã§AdHocé åžãªãã·ã§ã³ãéžæããæ£ãããããã¡ã€ã«ãæå®ãã.ipaãã¡ã€ã«ããã£ã¹ã¯ã«ä¿åããŸã 次ã«ãTestFlight Webãµã€ãã«ã¢ã¯ã»ã¹ããŠããã®.ipaãå ¥åããã³ã¡ã³ããæžããŸãããã®ãã«ãã®å¯Ÿè±¡è ã«ã¢ã¯ã»ã¹èš±å¯ãèšå®ããããšãå¿ããªãã§ãã ããã éåžžã«å€ãã®ãžã§ã¹ãã£ãŒã
ãŸããå€ãã®å ŽåããµãŒãã¹ã¯å©çšã§ããªãããåã«ããŠã³ããŒãé床ãã¢ããªã±ãŒã·ã§ã³ã®ã€ã³ã¹ããŒã«ããã»ã¹ãã¿ã€ã ã¢ãŠãããã»ã©ã§ãã
äœããã®çç±ã§ãã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ãããŠããªãããšã確å®ã§ãããTestFlightããã®ããŠã³ããŒããèªåã§ç¢ºèªãããšãã«ãã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ãããŠããªãããšã顧客ããèãã®ã¯ç¹ã«åã°ããããšã§ã¯ãããŸããã
ãã®çµæãç§ã«ãšã£ãŠæåŸã®ã¹ãããŒã¯ãææ°ã®ãããžã§ã¯ããéçºããŠããiOS7ãžã®ã€ã³ã¹ããŒã«ããŸã ãµããŒãããŠããªããšããäºå®ã§ããã
ãããŠãæã ã¯äž¡æ¹ã®åœäºè ã«ãšã£ãŠããç°¡åã§ããããšãå€æãããœãªã¥ãŒã·ã§ã³ã«å°éããŸããã
ããã§ãäžèšã®æé å šäœã2ã€ã®ã¹ãããã«åæžãããŸãã ç§ã¯ã以åãšåæ§ã«ãXcodeã¢ãŒã«ã€ããã«ããéžæããŸãïŒããã«ãããéåžžAdHocã®ã¢ã»ã³ããªãã¢ã»ã³ãã«ãããŸãïŒã ãã®åŸãã¢ããªã±ãŒã·ã§ã³ãæŽæ°ãããããšãã客æ§ã«éç¥ããŸãã ããã ãã§ã
ããã§ã顧客ã¯èªåã®ããã€ã¹ããã€ã³ã¿ãŒãããäžã®ç¹å®ã®ã¢ãã¬ã¹ã«ç§»åããã ãã§ãïŒã¢ãã¬ã¹ã¯å€æŽããããããã¯ããŒã¯ã«ä¿åã§ããŸãïŒã ãããã¢ãããŠã£ã³ããŠã衚瀺ãããŸã-ã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããŸããããã¡ãã圌ã¯ãããæã¿ãŸããã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ãããŸãã 誰ãã幞ãã§ãã
ãããŠããã®nã«å°éããããã«ãªãã¹ãããšã¯ããã«ãããŸãã
ã¢ãã€ã«ãã©ãŠã¶ãä»ããŠã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããéæ³ã
ãŸããURLã䜿çšããŠã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ã§ããéæ³ã«ã€ããŠå°ã説æããŸãã
ããã¯ããªãåã®æ©äŒã§ãããããããã¹ãŠã®ãµãŒãã¹ã¯åºæ¬çã«TestFlightã«åºã¥ããŠããŸãã
ãã®ãããªãããã³ã«itms-servicesããããŸããç¹ã«ããã®å©ããåããŠããã©ãŠã¶ãŒããiOSã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ãããŸãã ãã®ãããã³ã«ã¯ãç¹å®ã®æ§é ãæã€.plistãã¡ã€ã«ãããŒããããããšãæå³ããŸããç¹ã«ã.ipaãã¡ã€ã«ãžã®ãªã³ã¯ã瀺ãããŸãã çµæãšããŠãã¢ããªã±ãŒã·ã§ã³ãã€ã³ã¹ããŒã«ããèŠæ±ãšããŠiOSã«ãã£ãŠåŠçãããŸãã
ã€ãŸã æåã«è¡ãå¿ èŠãããã®ã¯ãããã€ãã®åçŽãªïŒãŸãã¯å®éã«ã¯æãã§ããªãïŒHTMLããŒãžãäœæããããšã§ãã 次ã«ãéæ³ã®.plistãã¡ã€ã«ãš.ipaãã«ããé 眮ããŸãã
ããã§ã¯ãAmazon S3ã¹ãã¬ãŒãžããã®ãããªã¹ãã¬ãŒãžã«äœ¿çšãããããšãæå³ããŸãã ã¢ããŸã³ãŠã§ããµãŒãã¹ãžã®ãµã€ã³ã¢ããã¯ç°¡åã§ãããã§ã¯èª¬æããŸããã ãã®ãããªããããªããªã¥ãŒã ã®ã¹ãã¬ãŒãžãšé åžã¯ãç§ãããã§èšç®ããã®ãé¢åã§ãããä»ã¯ããã«ã€ããŠã§ã¯ãããŸããã
ãããã£ãŠããã¡ã€ã«ãäœæããŸãããããHTMLã®å€èŠ³ã§ãã ãããåŒã³åºããŠãindex.htmlãšèšããŸãã äž»ãªãã®ã¯ ã itms-servicesïŒ protocolã®ãªã³ã¯ãå«ãŸããŠããããšã§ã
<html> <head> <title>My Ad-Hoc Distribution Site</title> <style> li{font-size:60pt margin:20px 0} </style> <meta name="viewport" content="width=device-width" /> <meta name="apple-mobile-web-app-capable" content="yes" /> </head> <body> <ul> <li><a href="itms-services://?action=download-manifest&url=http://mybucketname.s3.amazonaws.com/MyApp1.plist"> MyApp1</a></li> <li><a href="itms-services://?action=download-manifest&url=http://mybucketname.s3.amazonaws.com/MyApp2.plist"> MyApp2</a></li> </ul> </body> </html>
ã芧ã®ãšããããªã¹ãã¯ããã«å®è£ ãããŠããŸãã1ã€ã®ã¢ããªã±ãŒã·ã§ã³ã ãã«éå®ãããã®ã§ã¯ãªããããã€ãã®ã¢ããªã±ãŒã·ã§ã³ããããŸãã ãããŠããããã¯ããããåå¥ã®ãªã³ã¯ã«ã€ã³ã¹ããŒã«ãããŸãã
ã¢ãã¬ã¹itms-servicesïŒ// ...ã§å€æŽããå¿ èŠãããã®ã¯ã mybucketnameãš.plistãã¡ã€ã«ã®ååã ãã§ãã ã€ãŸã ããã«å¿ããŠãããããã¹ãŠãé 眮ããAmazon S3ã®ãã±ããã®ååãš.plistã®ååã«çœ®ãæããŸãïŒãã¡ã€ã«åã¯éèŠã§ã¯ãªããã¢ããªã±ãŒã·ã§ã³ã®ååãšäžèŽããªãå ŽåããããŸãïŒã
.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>items</key> <array> <dict> <key>assets</key> <array> <dict> <key>kind</key> <string>software-package</string> <key>url</key> <string>http://mybucketname.s3.amazonaws.com/MyApp1.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.mycoolcompanyname.myapp1</string> <key>bundle-version</key> <string>1.0</string> <key>kind</key> <string>software</string> <key>title</key> <string>MyApp1</string> </dict> </dict> </array> </dict> </plist>
ãã¡ãã ãããã§ã¯ã ãœãããŠã§ã¢ããã±ãŒãžããŒæååã®ååmybucketnameã眮ãæããå¿ èŠããããŸãã ãããŠãMyApp1.ipaã®ä»£ããã«.ipaãã¡ã€ã«ã®ååã瀺ããŸãã ãããŠãããŒæååbundle-identifierãå€æŽããããšãå¿ããªãã§ãã ããã com.mycoolcompanyname.myapp1ã®ä»£ããã«ããã®ã¢ããªã±ãŒã·ã§ã³ãXcodeã§ãã«ããããšãã«äœ¿çšãããã³ãã«IDãå ¥åããŸãã
ããŠã ã¿ã€ãã«ããŒã«ã¢ããªã±ãŒã·ã§ã³ã®ç®çã®ååãæå®ããŸãã
ãããïŒ ãã§ã«AdHocé åžã®äžã§ã¢ããªã±ãŒã·ã§ã³ããã«ãããS3ã®ãã³ãã«ããã®ãã±ããã«é 眮ã§ããŸãã ãã®åŸãã¢ãã€ã«ãã©ãŠã¶ã§éãããšã«ãã ã mybucketname.s3.amazonaws.com / index.htmlãªã³ã¯ã«ã€ã³ã¹ããŒã«ã§ããŸãã
ãšããã§ãS3ãžã®æåã¢ããããŒãã«ã¯ãCyberââDuckã¢ããªã±ãŒã·ã§ã³ããå§ãããŸãã ãµã ã¯ãMacOã«ãšã£ãŠæã䟿å©ãªéžæè¢ãšããŠãããåãå ¥ããŸããã
éèŠãªè©³çŽ°ã®1ã€ã¯ã.ipaãã¡ã€ã«ã®ã¢ã¯ã»ã¹èš±å¯ãpublic-readã«èšå®ããããšãå¿ããªãã§ãã ããã CyberââDuckã§ã¯ããã¡ã€ã«>æ å ±ãå³ã¯ãªãã¯ããèªã¿åãæš©éãæã€Everybodyã°ã«ãŒããè¿œå ããããšã§ãããè¡ããŸãã
ãã ãããã®ãªãã·ã§ã³ã¯æ ãè åãã§ã¯ãªããããå ã«é²ã¿ãŸãã
Xcodeã§ã®èªååã åŸåŠçã¹ã¯ãªãããäœæããŠããŸãã
äœãããå¿ èŠããªãããã«ãå°ããªã¹ã¯ãªãããäœæããŸãã
Xcodeã«ã¯ãã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ãããšãã«ãã»ãŒãã¹ãŠã®æ®µéã§ã¹ã¯ãªãããè©°ã蟌ãæ©èœããããŸãã
ãã®å Žåãã¢ãŒã«ã€ããžã®ã¢ã»ã³ãã«ã«ã®ã¿é¢å¿ããããŸãïŒããããAdHoc Distributionã®ã¢ããªã±ãŒã·ã§ã³ãåžžã«æ§ç¯ããæ¹æ³ã§ãïŒã
ãããã£ãŠããã®ã¹ããŒã ã®æçµæ®µéã§äºåŸã¢ã¯ã·ã§ã³ãè¿œå ããŸãã
Xcodeã«ç§»åããåè·¯ãç·šéããããã®ãã€ã¢ãã°ãéããŸãã 次ã¯ãããã€ãã®èª¬æçãªã¹ã¯ãªãŒã³ã·ã§ããã§ãã ãããã¯Xcode 5ã®ããŒã¿çã§äœæãããŠããŸãããXcode 4.6ã«ããã®æ©èœãããããã®éšåã®ã€ã³ã¿ãŒãã§ã€ã¹ã¯å®è³ªçã«åãã§ãã
ã¡ã€ã³ã®XcodeãŠã£ã³ããŠã®å·Šäžã«ç€ºãããŠããå Žæã§ãã¿ãŒã²ããã®ååãã¯ãªãã¯ããŸãã 衚瀺ããããã€ã¢ãã°ã§ã[ã¹ããŒã ã®ç·šé...]ã¢ã€ãã ãéžæããŸãã
ã¹ããŒã ãç·šéããããã®ãã€ã¢ãã°ã§ãArhiveã¹ããŒã ãèŠã€ãããã®ååã®æšªã«ããå°ããªäžè§åœ¢ãã¯ãªãã¯ãããšãããã€ãã®ãµãã¢ã€ãã ãå±éãããŸãã æåŸã®1ã€ã¯ãå¿ èŠãªåŸåŠçã§ãã
ãã®ãŠã£ã³ããŠã®ããããããŠã³ããã¯ã¹ã§ãã¿ãŒã²ããã®ååãéžæããŸãã ããã¯ãããšãã°$ {PRODUCT_NAME}ãªã©ãã¹ã¯ãªããå ã®ãã¹ãŠã®å€æ°ãããã«å¯Ÿå¿ããŠååŸãããããšãæå³ããŸãã
ããã§ã¯ããã®ãããªã¹ãããã䜿çšããŸãã
SIGNING_IDENTITY="iPhone Distribution: MyCoolCompanyName (G4DHGXDY2)" PROVISIONING_PROFILE="${HOME}/Library/MobileDevice/Provisioning Profiles/20DB9849-4CFE-4005-81F6-1A594119839B.mobileprovision" LOG="/tmp/post-build-upload-to-s3.log" DATE=$( /bin/date +"%Y-%m-%d" ) ARCHIVE=$( /bin/ls -t "${HOME}/Library/Developer/Xcode/Archives/${DATE}" | /usr/bin/grep xcarchive | /usr/bin/sed -n 1p ) DSYM="${HOME}/Library/Developer/Xcode/Archives/${DATE}/${ARCHIVE}/dSYMs/${PRODUCT_NAME}.app.dSYM" APP="${HOME}/Library/Developer/Xcode/Archives/${DATE}/${ARCHIVE}/Products/Applications/${PRODUCT_NAME}.app" /usr/bin/open -a /Applications/Utilities/Console.app $LOG echo -n "Creating .ipa for ${PRODUCT_NAME}... " > $LOG /bin/rm "/tmp/${PRODUCT_NAME}.ipa" /usr/bin/xcrun -sdk iphoneos PackageApplication "${APP}" -o "/tmp/${PRODUCT_NAME}.ipa" --sign "${SIGNING_IDENTITY}" --embed "${PROVISIONING_PROFILE}" >> $LOG echo "Created .ipa for ${PRODUCT_NAME}" >> $LOG echo -n "Uploading to S3... " >> $LOG /opt/local/bin/s3cmd put --acl-public --force --guess-mime-type /tmp/${PRODUCT_NAME}.ipa "s3://mybucketname/MyApp.ipa" >> $LOG echo "Done." >> $LOG /usr/bin/open "https://basecamp.com/path-to-your-project-to-let-people-know-of-new-build"
ãããã£ãŠãéãããŠã£ã³ããŠã§ãå ¥åã®æåã®è¡ã®/ bin / shãåç §ããŠãã ããã ããã«ãã®å€ãæ®ããŸãã
ãã®ã¹ã¯ãªãããäžã®ç©ºã®ãã£ãŒã«ãã«ã³ããŒããŸãã
次ã«ãæ§æã«åãããã«ããã€ãã®å€ãç·šéããå¿ èŠããããŸãã ã€ãŸããSIGNING_IDENTITYå€æ°ã«æ£ããå€ãæžã蟌ã¿ãPROVISIONING_PROFILEå€æ°ã«çŸåšã®ããããžã§ãã³ã°ãããã¡ã€ã«ãžã®æ£ãããªã³ã¯ãæžã蟌ãå¿ èŠããããŸãã
ç§ã¯ãã®ããã«ããŸãã ããã«ä¿åããŸã-äžã®[OK]ãã¯ãªãã¯ãããããžã§ã¯ãã®ãã«ãèšå®ãçµäºããŠãã³ãŒã眲åIDã»ã¯ã·ã§ã³ãèŠã€ããŸãã
ãã¹ãŠã®å¿ èŠãªå€ããããŸãã ããããã圹ã«ç«ã€ãXcodeã¯ããããã人éãèªãã圢åŒã§è¡šç€ºããããããããã«åŒ·èª¿è¡šç€ºãããã®ãé²ããŸãã
眲åè ã®ååãå³ã¯ãªãã¯ããŸãïŒiPhone DistributionïŒ...ãªã©ïŒã ãããã¢ãããéããäžéšã«ãã®ä»ã®ãªãã·ã§ã³ã衚瀺ãããŸã...éžæãããšãããã«ããã¹ã圢åŒã®ãã©ã¡ãŒã¿ãŒã»ããå šäœã衚瀺ãããããã«æ³šææ·±ãéžæãããŸãã
Xcodeã®ä»¥åã®ããŒãžã§ã³ã§ã¯ã次ã®ããã«ãªããŸããã
iPhone Distribution: MyCoolCompanyName (G4DHGXDY2) 20DB9849-4CFE-4005-81F6-1A594119839B
ãããã£ãŠãæåã®è¡ã¯ã¹ã¯ãªããã®SIGNING_IDENTITYå€æ°ã«åãŸããŸãã
2ã€ç®ã¯ããããã¡ã€ã«ã®ã³ãŒãã§ããPROVISIONING_PROFILEå€æ°ã®ã¢ãã¬ã¹ã§åŒ·èª¿è¡šç€ºãããŠããéšåãã以äžã«ç€ºãããã«çœ®ãæããã ãã§ãã
PROVISIONING_PROFILE = "$ {HOME} /ã©ã€ãã©ãª/ MobileDevice /ããããžã§ãã³ã°ãããã¡ã€ã«/ 20DB9849-4CFE-4005-81F6-1A594119839B .mobileprovision"
æ°ããXcode 5ã§ã¯ãããã2ã€ã®å€ã¯ãã³ãŒã眲åIDãã»ã¯ã·ã§ã³ã®åå¥ã®ãšã³ããªã«åå²ãããŠããŸãã ãããã£ãŠãåãã¢ã¯ã·ã§ã³ã2åå®è¡ããå¿ èŠããããŸãã æåã«ååIDãã³ããŒããŠãããããããžã§ãã³ã°ãããã¡ã€ã«ã®ã³ãŒããã³ããŒããŸãã
ã芧ã®ãšãããã¹ã¯ãªããã¯2ã€ã®åçŽãªã¢ã¯ã·ã§ã³ãå®è¡ããŸãã æåã«ãçµæã®.appãã¡ã€ã«ã.ipaãã¡ã€ã«ã«å€ãããŸãã 次ã«ããã®.ipaãS3ã«ã¢ããããŒããããŸãã ã¹ã¯ãªããã®å®è¡ããã»ã¹ã§ã¯ãçºçãããã¹ãŠãæžã蟌ãŸãã.logãã¡ã€ã«ãäœæãããŸãã ãã®.logãã¡ã€ã«ã¯äžæãã©ã«ããŒïŒ.ipaãšåãïŒã«é 眮ãããã³ã³ãœãŒã«ã·ã¹ãã ãŠãŒãã£ãªãã£ã«ãã£ãŠéããããããã¹ã¯ãªããã®é²è¡ç¶æ³ã確èªã§ããŸãã
æ®ã£ãŠããç§å¯ã¯1ã€ã ãã§ã-S3ã®ãã£ã«ã¯ã©ã®ããã«æ©èœããŸããã
ã¹ã¯ãªããã䜿çšããŠAmazon S3ã®ã¢ã»ã³ããªãåããŸã
å®éãããã§ã¯ãããŸããããS3ã«æåã§æ³šãããšãå°ç¡ãã«ããªãã§ãã ãããããã¯é¢åã§ããããã«ã¯æ¢è£œã®ãŠãŒãã£ãªãã£ïŒ S3cmd ïŒã䜿çšããŸãã
ç§ãã¡ã¯ãããŒã«ä¹ã£ãŠããã®ã§ã MacPortsã«ãããéããŸãã 誰ãç¥ããªããããã¯ããããçš®é¡ã®Linuxåºæã®åã³ããããŒã«ä¹ããããšãã§ããããŒã«ã§ãã MacPortsãã€ã³ã¹ããŒã«ãããŠããªãå Žåã¯ãMacOSã®ããŒãžã§ã³ïŒ Mountain Lion ã LionããŸãã¯Snow Leopard ïŒã®ããããã®ãªã³ã¯ãé 眮ããŸãã
次ã«ãs3cmdãŠãŒãã£ãªãã£èªäœãã€ã³ã¹ããŒã«ããŸãã MacPortsã§ã¯ãããã¯éåžžã«ç°¡åã§ãã
ã¿ãŒããã«ã§æ¬¡ã®ããã«å ¥åããŸãã
sudo port install s3cmd
ãã¹ã¯ãŒãã®å ¥åã管çè ãã¹ã¯ãŒãã®å ¥åãæ±ããããã€ã³ã¹ããŒã«ãéå§ãããŸãã çŽ1åããããŸãã
ããã§ããŠãŒãã£ãªãã£ãã€ã³ã¹ããŒã«ãããŸããã次ã«ãS3ãã¹ã¯ãŒãïŒ Amazon Web Servicesã«ãµã€ã³ã¢ãããããšãïŒã«ããŒãšã·ãŒã¯ã¬ããã³ãŒããäŒããŸãïŒããã2ã€ã®æŠå¿µã®éãã¯å°ããŸããããäž¡æ¹ãå¿ èŠã§ãïŒã
ã¿ãŒããã«ã«å ¥åããŸãïŒ
s3cmd --configure
ããŒãšã·ãŒã¯ã¬ããã³ãŒãã®å ¥åãå«ããåžæããæ§æã«é¢ããããã€ãã®è³ªåã«çããããæ±ããããŸãã
ããšãã°ã次ã®ããã«ãªããŸãã
Enter new values or accept defaults in brackets with Enter. Refer to user manual for detailed description of all options. Access key and Secret key are your identifiers for Amazon S3 Access Key: XXXXX XXX Secret Key: YYYY YYY Encryption password is used to protect your files from reading by unauthorized persons while in transfer to S3 Encryption password: Path to GPG program: When using secure HTTPS protocol all communication with Amazon S3 servers is protected from 3rd party eavesdropping. This method is slower than plain HTTP and can't be used if you're behind a proxy Use HTTPS protocol [No]: No On some networks all internet access must go through a HTTP proxy. Try setting it here if you can't conect to S3 directly HTTP Proxy server name: New settings: Access Key: XXXXX XXX Secret Key: YYYY YYY Encryption password: Path to GPG program: None Use HTTPS protocol: False HTTP Proxy server name: HTTP Proxy server port: 0 Test access with supplied credentials? [Y/n] Y Please wait... Success. Your access key and secret key worked fine :-) Now verifying that encryption works... Not configured. Never mind. Save settings? [y/N] y Configuration saved to '/Users/st/.s3cfg'
ããã§çµããã§ããã¹ã¯ãªããã§ãS3ãã±ããã®ååãšè¡ã®ã¢ããªã±ãŒã·ã§ã³ã®ååãä¿®æ£ããã ãã§ãã
/ opt / local / bin / s3cmd put --acl-public --force --guess-mime-type /tmp/${PRODUCT_NAMEaze.ipa "s3ïŒ// mybucketname / MyApp .ipa" >> $ LOG
ãã®åŸãã¢ãŒã«ã€ãïŒXcode> Product> ArchiveïŒã§ãã«ããå®è¡ããã ãã§ããã¹ãŠãæ©èœããã¯ãã§ãã ã¢ããªã±ãŒã·ã§ã³ã¯æå®ãããã¢ãã¬ã¹ã«ã¢ããããŒããããŸãã