±à¼ÍƼö: |
±¾ÎÄÀ´×ÔÓÚ¼òÊé,¹¤×÷ÐèÒª£¬ÎÒÃÇ´æÔÚµÄ×Ô¶¯´ò°üµÄ¹¤³ÌÓÐ3ÖÖ£¬Ò»ÖÖÊǵ¥Ò»µÄ¹¤³Ì´ò°ü£»Ò»ÖÖÊǼ¯³ÉcocoapodµÄ´ò°ü£»»¹ÓÐÒ»ÖÖÊÇÓÐwwwÎļþÐèÒª²åÈëµ½¹¤³ÌÀïµÄ´ò°ü·½Ê½£¬ºó±ß»áÒ»Ò»½²µ½3ÖÖÅäÖᣠ|
|

ǰÑÔ
×Ô¶¯»¯´ò°ü¸ù±¾Ä¿µÄÊÇΪÁ˽ÚԼʱ¼ä£¬°ÑÖØ¸´ÇÒÎÞ¼¼Êõº¬Á¿µÄÊÂÇé½»¸ø»úÆ÷È¥×ö¡£JenkinsÊÇÒ»¸ö¿ªÔ´Èí¼þÏîÄ¿£¬ÊÇ»ùÓÚJava¿ª·¢µÄÒ»ÖÖ³ÖÐø¼¯³É¹¤¾ß£¬ÓÃÓÚ¼à¿Ø³ÖÐøÖØ¸´µÄ¹¤×÷£¬Ö¼ÔÚÌṩһ¸ö¿ª·ÅÒ×ÓõÄÈí¼þƽ̨£¬Ê¹Èí¼þµÄ³ÖÐø¼¯³É±ä³É¿ÉÄÜ¡£¸ü¶àµÄ½éÉÜ´ó¼Ò×ÔÐаٶȣ¬ÕâÀï¾Í²»†ªàÂÁË¡£
»·¾³ÅäÖãº
Mac OS 10.12.6
Xcode9.2
Ò»¡¢Jenkins°²×°
´ò¿ªJenkins¹ÙÍøÏÂÔØ×îеÄpkg°²×°°ü¡£°²×°Íê³ÉÖ®ºó£¬Safari¿ÉÄÜ»á×Ô¶¯´ò¿ª£¬Èç¹ûûÓÐ×Ô¶¯´ò¿ª£¬´ò¿ªä¯ÀÀÆ÷£¬ÊäÈëhttp://localhost:8080¡£

Õâʱºò¿ÉÄܳöÏÖÕâ¸öÒ³Ãæ£¬Õâ¸öÎÊÌâµÄÔÒò¾ÍÊÇJava»·¾³ÓÐÎÊÌ⣬ÐèÒªÖØ×°Java»·¾³¡£ÏÂÔØJavaµÄJDK

Ò»°ã»áÓÐ2¸ö°æ±¾¿ÉÑ¡£¬Ñ¡Ò»¸öÏÂÔØ¼´¿É£¬ÏÂÔØÍê°²×°ºó´ò¿ªÖÕ¶Ë£¬cd½øÈëµ½jenkins.war°üËùÔÚĿ¼£¬Ö´ÐÐÒÔÏÂÃüÁ
$ java -jar jenkins.war --httpPort=8080
httpPortÖ¸µÄ¾ÍÊÇJenkinsËùʹÓõÄhttp¶Ë¿Ú£¬ÕâÀïÖ¸¶¨8080(ĬÈϵľÍÊÇÕâ¸ö)£¬¿É¸ù¾Ý¾ßÌåÇé¿öÀ´Ð޸ġ£´ýJenkinsÆô¶¯ºó£¬ÔÚä¯ÀÀÆ÷Ò³ÃæÊäÈëÒÔϵØÖ·:http://localhost:8080ÕâÑù¾Í¿ÉÒÔ´ò¿ªJenkins¹ÜÀíÒ³ÃæÁË¡£
½ÓÏÂÀ´ÊÇÎÒÃÇÓöµ½µÄµÚÒ»¸ö¿ÓÒ²ÊÇÐèҪעÒâµÄµØ·½¡£
Ò»°ãÀ´Ëµä¯ÀÀÆ÷Ö±½Ó´ò¿ªhttp://localhost:8080²¢Ã»Ê²Ã´²»¶Ô£¬µ«ÊǵÈÄãÓÃJenkins´ò°üµÄʱºòÄã»á·¢ÏÖÓи÷ÖÖȨÏ޵ı¨´íÎÊÌâ¡£ÔÒò¾ÍÊÇÖ±½ÓÓÃä¯ÀÀÆ÷´ò¿ª´´½¨Õ˺ţ¬ÄÇôJenkinsµÄ¹¤×÷Ŀ¼»á½¨Á¢ÔÚ/Users/Shared/JenkinsÏ¡£¾ßÌå¹ý³Ì²Î¼û
stackoverflow¡£
ÕýÈ·µÄÆô¶¯·½Ê½ÊÇ£º
$ sudo launchctl unload /Library/LaunchDaemaons/org.jenkins-ci.plist
$ java -jar /Applications/Jenkins/jenkins.war --httpPort=8080
Õâʱ£¬Jenkies»áÔÚ/Users/[user name]/.Jenkins ÏÂÃæ½¨Á¢¹¤×÷Ŀ¼£¬´Ó¶øËü¾ÍÓÐȨÏÞÈ¥»ñÈ¡Ïà¹ØµÄkeychain¡£.JenkinsÊÇÒ»¸öÒþ²ØÎļþ£¬Í¨¹ý½øÈëÎļþ¼Ð·¾¶µÄ·½Ê½²é¿´»òÕßÏÔʾÒþ²ØÎļþ²é¿´¡£
$ defaults write com.apple.finder AppleShowAllFiles
-bool true ´ËÃüÁîÏÔʾÒþ²ØÎļþ
$ defaults write com.apple.finder AppleShowAllFiles
-bool false ´ËÃüÁî¹Ø±ÕÏÔʾÒþ²ØÎļþ
Ö´ÐÐÏÔʾ»òÒþ²ØÃüÁîºóÐèÒªÖØÐÂÆô¶¯Finder¼´¿ÉÖ´ÐС£
´ËʱÄã¿ÉÄÜ»áÓöµ½/Library/LaunchDaemaons/org.jenkins-ci.plist:
No such file or directoryÕâÑùµÄ±¨´íÐÅÏ¢£¬µ«ÄãÓÃFinder´ò¿ªÂ·¾¶ÊÇÓÐÕâ¸öÎļþµÄ£¬È»ºóÄãcopyÎļþµÄ·¾¶·¢ÏÖ¾ÍÊÇÕâ¸ö·¾¶£¬´ËʱÄãÔÙÈ¥Ö´ÐÐ
$ sudo launchctl unload /Library/LaunchDaemaons/org.jenkins-ci.plist
¾Í»áÌáʾÄãdeny permission£¬ÐèÒªÊäÈëÃÜÂ룬Õâʱ¾ÍÕý³£ÁË¡£
ÊäÈë$ java -jar /Applications/Jenkins/jenkins.war --httpPort=8080Ö®ºóÈç¹û³öÏÖϱߵÄÐÅÏ¢¾Í±êʶJenkinsÒѾÆô¶¯ÁË¡£

´ËʱÔÚä¯ÀÀÆ÷ÊäÈëhttp://localhost:8080¼´¿É¡£
×¢Ò⣺ÕâÖÖ·½Ê½´ò¿ªµÄJenkinsÔÚ×Ô¶¯»¯´ò°üʱ£¬²»ÄܹرÕÔËÐÐJava»·¾³µÄÖÕ¶Ë¡£
¶þ¡¢JenkinsÕ˺ÅÉèÖÃ
Èç¹ûJenkins°²×°ÍêÊÇÓÃä¯ÀÀÆ÷Ö±½Ó´ò¿ªhttp://localhost:8080£¬ÄÇôӦ¸ÃÊÇÈçϵÄÏÔʾ½çÃæ¡£

ºìÉ«µÄ·¾¶¾ÍÊÇÈÃÎÒÃÇÕÒµ½ÃÜÂëµÄ·¾¶£¬Èç¹ûÊÇͨ¹ýÃüÁîÐÐÊäÈëºóä¯ÀÀÆ÷´ò¿ªµØÖ·£¬ÄÇôºìÉ«µÄÌáʾ·¾¶¾Í»áÊÇ/Users/[user
name]/.Jenkins/.......¾Í±íÃ÷JenkinsÔÚµ±Ç°µÄµÇ¼Õ˺ÅϽ¨Á¢Á˹¤×÷Ŀ¼£¬Ö®ºó»áʡȥºÜ¶àÂé·³¡£
°´Â·¾¶´ò¿ªÊ±·¢ÏÖsecretsÎļþ¼ÐÎÞȨÏÞ·ÃÎÊ£¬ÓÒ¼üµã»÷Îļþ¼Ð -> ÏÔʾ¼ò½é -> ´ò¿ª¹²ÏíÓëȨÏÞ
£¬¸øeveryone¼ÓÉ϶ÁÓëдȨÏÞ£¬½øÈëÎļþ¼Ðºó¿ÉÒÔ¿´µ½Ãû×ÖΪinitialAdminPasswordµÄÎļþ¡£

Õâ¸öÎļþ¼ÐÒ²ÓÐȨÏÞÎÊÌ⣬°´ÉϱߵIJÙ×÷ÐÞ¸ÄÏÂȨÏÞ¼´¿É£¬´ò¿ªºó¿ÉÒÔ¿½±´Àï±ßµÄÃÜÂ룬ȻºóÔÚJenkinsÒ³ÃæÉÏÊäÈë¼´¿É¡£
È»ºóµã»÷install suggested plugins £¬¼´ÏÂÔØÍÆ¼ö²å¼þ¡£





µ½Õâ¾Í¿ÉÒÔÉèÖÃÓû§ÃûºÍÃÜÂëÁË¡£
Èý¡¢°²×°²å¼þ¼°Ìí¼ÓÔ¿³×´®ºÍÃèÊöÎļþµÈ×¼±¸
ÒòΪÎÒÃÇÓõÄÊÇGitLabÀ´¹ÜÀíÔ´´úÂ룬Jenkins±¾Éí²¢Ã»ÓÐ×Ô´øGitLab²å¼þ£¬ËùÒÔÎÒÃÇÐèÒªÒÀ´ÎÑ¡Ôñ
ϵͳ¹ÜÀí->¹ÜÀí²å¼þ£¬ÔÚ¡°¿ÉÑ¡²å¼þ¡±ÖÐÑ¡ÖС°GitLab Plugin¡±ºÍ¡°Gitlab Hook
Plugin¡±ÕâÁ½ÏȻºó°²×°¡£
Èç¹ûÄãÏëÓÃXcode²å¼þ×÷ΪÅäÖôò°üÈÎÎñ¿ÉÒÔÏÂÔØ xcode integration²å¼þ£¬ÏÂÔØ·½Ê½Ò²ÊÇϵͳ¹ÜÀí->¹ÜÀí²å¼þ£¬ÔÚ¡°¿ÉÑ¡²å¼þ¡±ÖÐËÑË÷ÏÂÔØ¡£²»¹ýÎÒ»¹ÊÇÆ«ÏòÓë½Å±¾µÄ·½Ê½£¬ÒòΪ½Å±¾ËäÈ»Â鷳Щµ«ÊǸü¼ÓÁé»î¡£±ÈÈçÎÒÃÇ´ò°üµÄÃüÃû·½Ê½£¬´òÍê°üµÄ´æ·ÅÎļþ·¾¶µÈ¶¼¿ÉÒÔͨ¹ý½Å±¾×öÅäÖá£
×Ô¶¯´ò°üµÄjobÈÎÎñÅäÖÃÒ²ÐèÒªÌí¼ÓÔ¿³×´®ºÍÃèÊöÎļþ£¬ÕâʱÐèÒª°²×°Keychains and Provisioning
Profiles Management²å¼þ£¬°²×°ºóÔÚJenkinsÊ×Ò³µã»÷ϵͳ¹ÜÀí»áÕÒµ½Õâ¸ö²å¼þ£¬µã»÷½øÈ¥¡£


ÈçͼÕâÀï¿ÉÒÔÉÏ´«µÄÎļþʱԿ³×´®ºÍÃèÊöÎļþ¡£²»ÄÜÖ±½ÓÉÏ´«Ö¤ÊéÎļþ¡£Ô¿³×´®µÄĿ¼¿ÉÒÔ´ò¿ªÔ¿³×´®µã»÷µÇ¼Կ³×´®²é¿´¡£

°´Í¼Ë÷æ÷£¬°´ÏÔʾµÄ·¾¶Í¨¹ýFinderÖ±½Ó´ò¿ªÎļþ¼Ð¡£

È»ºó¿½±´Ò»·Ý°²×°ÓÐÎÒÃÇ´ò°üÖ¤ÊéµÄÔ¿³×´®Îļþ£¬¼´login.keychain-db¡£´ËʱÐèҪעÒ⣬ÉÏ´«µ½JenkinsµÄÖ»ÈÏ.keychainºó׺ºÍ.mobileprovisionºó׺µÄÎļþ£¬ÆäËûÎļþ¶¼»áÉÏ´«Ê§°Ü¡£ËùÒÔÎÒÃÇÒª°ÑÕâ¸öÉÏ´«µÄÔ¿³×´®ºó׺µÄ-dbÈ¥µô£¬ÎļþÃûÐ޸ijÉlogin.keychain£¬È»ºóÔÙÉÏ´«¡£
ÉÏ´«³É¹¦ºóKeychainsϱ߻áÏÔʾFilenameΪlogin.keychain£¬¿ÉÒÔÌí¼Ó´ò°üÓõÄÖ¤Êé¡£

Õâ¸öÃû×Ö¿ÉÒÔÔÚÔ¿³×´®Öеã»÷²é¿´¡£

½ÓÏÂÀ´Ìí¼ÓÃèÊöÎļþ£¬ÏÈÌí¼ÓÃèÊöÎļþµÄµ¼Ïò·¾¶£¬
/Users/[user name]/Library/MobileDevice/Provisioning
Profiles
¡£ÃèÊöÎļþºÍÔ¿³×´®Ò»ÑùµÄÌí¼ÓÉÏ´«·½Ê½¡£Ìí¼Óºó¾Í¿ÉÒÔ¿´µ½ÃèÊöÎļþÐÅÏ¢ÁË¡£

ÉÏ´«ºóµã»÷ save °´Å¥±£´æ¾Í¿ÉÒÔÁË¡£
ËÄ¡¢´´½¨ÅäÖõ¥Ò»¹¤³ÌÈÎÎñ
xcodebuild + xcrunÃüÁî
XcodeÌṩÁËÒ»Ì×¹¹½¨´ò°üµÄÃüÁ¾ÍÊÇxcodebuildºÍxcrunÃüÁî¡£xcodebuild°ÑÎÒÃÇÖ¸¶¨µÄÈÎÎñ´ò°ü³É.appÎļþ£¬xcrun½«Ö¸¶¨µÄ.appÎļþת»»Îª¶ÔÓ¦µÄ.ipaÎļþ¡£
xcodebuild¹Ù·½Îĵµ ºÍxcrun¹Ù·½Îĵµ
½ÓÏÂÀ´´´½¨ÈÎÎñ£¬JenkinsÊ×Ò³µã»÷н¨¡£

Èç¹ûÎÒÃÇÒѾ´´½¨ÁËÈÎÎñ£¬²¢ÇÒÆäËûÅäÖö¼Ò»Ñù¾Í¸Ä¸öÖ¤ÊéʲôµÄ£¬¿ÉÒÔÏ»¬¿´µ½¿ÉÒÔ¸´ÖÆÒ»·ÝÏÖÓеÄÈÎÎñ£¬ÊäÈëÃû×־ͿÉÒÔÑ¡Ôñ¡£

н¨ÈÎÎñ´ò¿ªºó£¬ÒòΪÎÒÃÇÊÇÓÃSVN¹ÜÀí´úÂ룬ËùÒÔÑ¡Subversion¡£



µã»÷addÌí¼ÓSVNµÄÕ˺źÍÃÜÂë¡£
Èç¹ûµØÖ·ºÍÕ˺ÅÃÜÂë¶¼¶Ô£¬ÊÇÕâÑùµÄ¡£

·¾¶²»¶Ô£¬»òÕ˺ÅÃÜÂë²»¶Ô¡£

ÓÐÁ½¸ö×Ô¶¯»¯µÄÅäÖñȽÏÖØÒª£º
Poll SCM (poll source code management) ÂÖѯԴÂë¹ÜÀí
ÐèÒªÉèÖÃÔ´ÂëµÄ·¾¶²ÅÄÜÆðµ½ÂÖѯµÄЧ¹û¡£Ò»°ãÉèÖÃΪÀàËÆ½á¹û£º 0/5 * * * * ÿ5·ÖÖÓÂÖѯһ´Î
Build periodically (¶¨Ê±build)
Ò»°ãÉèÖÃΪÀàËÆ£º 00 20 * * * ÿÌì 20µãÖ´Ðж¨Ê±build ¡£µ±È»Á½ÕßµÄÉèÖö¼ÊÇÒ»Ñù¿ÉÒÔͨÓõġ£
ÏêϸµÄ¿ÉÒԵ㿪½éÉܲ鿴¡£

È»ºóÑ¡Ôñ´ò°üÖ¤ÊéºÍÃèÊöÎļþ¡£

Ìí¼Ó½Å±¾

# ¹¤³ÌÃû
TARGET_NAME="VideoEditDemo"
# ÎļþÃûǰ׺
APP_NAME="ÊÓÆµ±à¼"
# Ö¤Êé
CODE_SIGN_DISTRIBUTION="iPhone Distribution:
Smao Tech Co.,LTD."
# info.plist·¾¶
project_infoplist_path="./${TARGET_NAME}/Info.plist"
#È¡°æ±¾ºÅ
bundleShortVersion=$(/usr/libexec/PlistBuddy -c
"print CFBundleShortVersionString" "${project_infoplist_path}")
#ȡbuildֵ
bundleVersion=$(/usr/libexec/PlistBuddy -c "print
CFBundleVersion" "${project_infoplist_path}")
DATE="$(date +%Y%m%d)"
IPANAME="${APP_NAME}_V${bundleShortVersion}_${DATE}.ipa"
#ÒªÉÏ´«µÄipaÎļþ·¾¶
IPA_PATH="$HOME/Desktop/MyWorkPlace/×Ô¶¯»¯´ò°üIPAs/${IPANAME}"
echo ${IPA_PATH}
echo "${IPA_PATH}">> text.txt
#ÏÂÃæ2ÐÐÊÇûÓÐCocopodsµÄÓ÷¨
echo "=================clean================="
xcodebuild -target "${TARGET_NAME}"
-configuration 'Release' clean
echo "+++++++++++++++++build+++++++++++++++++"
xcodebuild -target "${TARGET_NAME}"
-sdk iphoneos -configuration 'Release' CODE_SIGN_IDENTITY="${CODE_SIGN_DISTRIBUTION}"
SYMROOT='$(PWD)'xcrun -sdk iphoneos PackageApplication
"./Release-iphoneos/${TARGET_NAME}.app"
-o ~/"Desktop/MyWorkPlace/×Ô¶¯»¯´ò°üIPAs/${IPANAME}"
|
ÒªÉÏ´«µÄipaÎļþ·¾¶ÊÇÎÒ´´½¨ÁËÒ»¸öÎļþ¼ÐרÃÅÓÃÀ´·Å×Ô¶¯´ò°üµÄ¡£
¹¹½¨Ò»´Î£¬¸÷¸öÑÕÉ«´ú±íµÄÒâÒåÈçÏ£º

ÌìÆøµÄÇçÓê±í´ú±íÁËÈÎÎñµÄÖÊÁ¿£¬ÕâÒ²ÊÇJenkinsµÄÒ»¸öÌØÉ«¡£

Èç¹û¹¹½¨Ê§°ÜÁË£¬¿ÉÒÔÈ¥²é¿´Console Output¿ÉÒԲ鿴logÈÕÖ¾¡£

µ½´Ë£¬Ò»¸öµ¥Ò»¹¤³ÌµÄ×Ô¶¯»¯´ò°ü¾ÍÅäÖúÃÁË¡£Õâʱ¿ÉÒÔµãÓ¦Óà ±£´æ £¬È»ºóµã»÷¹¹½¨£¬¹¹½¨³É¹¦ºó¿ÉÒԵ㿪´æ·ÅipaÎļþµÄÎļþ¼ÐÕÒµ½¶ÔÓ¦µÄipa°²×°°ü¡£
Îå¡¢ÅäÖÃcocoapodÈÎÎñ
ÕâÀïΪÁ˲»Öظ´£¬Ö»ËµÓëµ¥Ò»¹¤³Ì²»Í¬µÄµØ·½¡£cocoapodÐèÒªinstall°²×°ÒÀÀµµÄÈý·½¿â£¬ËùÒÔÕâÀïÐèÒªÔÚÔÓеĹ¹½¨½Å±¾Ç°±ß¼ÓÒ»¸ö½Å±¾¡££¨cocoapod×Ô¶¯»¯´ò°üinstall°²×°Èý·½¿âËÙ¶ÈÌØ±ðÂý£¬»¹ÓпÉÄÜÖÐ;ÏÂÔØÊ±¼äÌ«³¤Ê§°Ü£¬ÖØÐµ㹹½¨ÔÙÊÔÒ»°ã¾ÍûÎÊÌâÁË£©

#bin/bsah - l
export LANG=en_US.UTF-8
export LANGUAGE=en_US.UTF-8
export LC_ALL=en_US.UTF-8
cd ¡¾ÄãµÄ¹¤³ÌĿ¼¡¿
/usr/local/bin/pod install --verbose --no-repo-update
|
µÚ¶þ¸ö½Å±¾Ò²ÐèÒªÓÐЩÐÞ¸Ä
# ¹¤³ÌÃû
TARGET_NAME="MeetingProject"
# ÎļþÃûǰ׺
APP_NAME="»áÎñ²úÆ·"
# Ö¤Êé
CODE_SIGN_DISTRIBUTION="iPhone Distribution:
Smartdot Technologies Co.,LTD."
# info.plist·¾¶
project_infoplist_path="./${TARGET_NAME}/Info.plist"
#È¡°æ±¾ºÅ
bundleShortVersion=$(/usr/libexec/PlistBuddy -c
"print CFBundleShortVersionString" "${project_infoplist_path}")
#ȡbuildֵ
bundleVersion=$(/usr/libexec/PlistBuddy -c "print
CFBundleVersion" "${project_infoplist_path}")
DATE="$(date +%Y%m%d)"
IPANAME="${APP_NAME}_V${bundleShortVersion}_${DATE}.ipa"
#ÒªÉÏ´«µÄipaÎļþ·¾¶
IPA_PATH="$HOME/Desktop/MyWorkPlace/×Ô¶¯»¯´ò°üIPAs/${IPANAME}"
echo ${IPA_PATH}
echo "${IPA_PATH}">> text.txt#ÏÂÃæ2ÐÐÊǼ¯³ÉÓÐCocopodsµÄÓ÷¨
echo "=================clean================="
xcodebuild -workspace "${TARGET_NAME}.xcworkspace"
-scheme "${TARGET_NAME}" -configuration
'Release' clean
echo "+++++++++++++++++build+++++++++++++++++"
xcodebuild -workspace "${TARGET_NAME}.xcworkspace"
-scheme "${TARGET_NAME}" -sdk iphoneos
-configuration 'Release' CODE_SIGN_IDENTITY="${CODE_SIGN_DISTRIBUTION}"
SYMROOT='$(PWD)'
xcrun -sdk iphoneos PackageApplication "./Release-iphoneos/${TARGET_NAME}.app"
-o ~/"Desktop/MyWorkPlace/×Ô¶¯»¯´ò°üIPAs/${IPANAME}"
|
´ËʱÄã¹¹½¨´ò°ü£¬Ó¦¸Ã»á±¨ÕâÑùµÄ´í

ÕâÊÇÒòΪJenkinsûÓа²×°cocoapod£¬´ò¿ªÓû§Æ«ºÃÉèÖà ->
Óû§ÓëȺ×é¡£

Õý³£ÕâÀï²»»áÓÐJenkinsÕâ¸öÃû×Ö£¬³ý·ÇÄãÉèÖùý¡£ÕâÀïÊÇÎÒÒѾ¸øJenkinsÉèÖùýÁË£¬ÓÒ¼üµã»÷¸ß¼¶Ñ¡Ï°ÑÃû×ÖдÉÏ¡£

ÎÒÃÇÐèÒª¸øJenkinsÒ»¸öÃÜÂ룬Èç¹û֮ǰûÉèÖùýÃÜÂ룬ÕâÀïÓ¦¸ÃÊǸü¸ÄÃÜÂ룬·ñÔòÊÇÖØÖÃÃÜÂë¡£

ΪÁË¿ÉÒÔ¿ìËÙÇл»µÇ¼Õ˺ţ¬ÎÒÃÇÐèÒªÕâÑùµÄ¹´Ñ¡¡£

È»ºó¿ÉÒÔÔÚÕâÀï¿ìËÙÇл»µÇ¼Óû§£¬½ÓÏÂÀ´¾Í¿ÉÒÔÇл»µÇ¼JenkinsÕ˺ţ¬°²×°cocoapod»·¾³ÁË£¬°²×°Íê³Éºó£¬cocoapod×Ô¶¯»¯´ò°ü¾ÍûʲôÎÊÌâÁË¡£

Áù¡¢ÅäÖòåÈëÎļþ´ò°üÈÎÎñ
Ìí¼ÓSVNµØÖ·£¬ÕâÀïÒòΪÎÒÃÇSVNÕâ¸öĿ¼ÏµÄÎļþ¾ÍΪWWW£¬ËùÒÔ¸´ÖƹýÀ´Ò²Òª½¨Á¢Ò»¸öwwwÎļþ¼Ð·ÅÕâЩÎļþ£¬·ñÔòÕâЩÎļþ¾ÍÖ±½Ó¸´ÖƵ½¹¤³ÌĿ¼һ¼¶Ä¿Â¼Ï·dz£É¢ÂÒ¡£

ÓвåÈëÎļþ£¬×ÔÈ»ÐèÒªÔÚ´ò°üµÄʱºò²åÈë½øÈ¥£¬ËùÒÔÎÒÃÇ»¹ÐèÒªÔÚ¹¹½¨µ¥Ò»¹¤³ÌµÄ½Å±¾Ç°¼ÓÒ»¶Î½Å±¾¡£

#!/bin/bash
# Copyright by Galen (2014-2014)
# All rights reserved
APP=`find -L . -name *.app -type d`
echo "will cp source file to:"$APP"..."
#exit 1
\cp -aR $WORKSPACE/www "$APP"
# ɾ³ýÒþ²ØÎļþ
for X in `find -L "$APP" -name *.svn*`
do
rm -rf "$X"
done
|
Æß¡¢ÉÏ´«ÆÑ¹«Ó¢Ó¦ÓùÜÀíÆ½Ì¨
ÎÒÃǼÈȻҪ×Ô¶¯»¯¾Í×Ô¶¯»¯µ½µ×£¬ËùÒÔÎÒÃÇ´ò³öÀ´µÄ°²×°°üÓ¦¸Ã×Ô¶¯ÉÏ´«µ½Ò»¸öÓ¦ÓùÜÀíÆ½Ì¨£¬ÕâÑù±ðÈ˾ͿÉÒÔÖ±½ÓÏÂÔØ²âÊÔ»òʹÓá£Ò»°ã³£ÓõÄÊÇÉÏ´«µ½ÆÑ¹«Ó¢Ó¦ÓùÜÀíÆ½Ì¨¡£
1.°²×°fir-clifirµÄÃüÁîÐй¤¾ß£¬ÐèÒªÏÈ×°ºÃrubyÔÙÖ´ÐÐ
gem install fir-cli
2.×Ô¶¯ÉÏ´«ÖÁÆÑ¹«Ó¢
#ÆÑ¹«Ó¢ÉϵÄUser Key
uKey="9dba14768e*****8e7a606ea31e04"
#ÆÑ¹«Ó¢ÉϵÄAPI Key
apiKey="88127f49b2******e9536babe6920c10"
#ÒªÉÏ´«µÄipaÎļþ·¾¶
#ÒªÉÏ´«µÄipaÎļþ·¾¶
IPA_PATH=$(cat text.txt)
rm -rf text.txt
#Ö´ÐÐÉÏ´«ÖÁÆÑ¹«Ó¢µÄÃüÁî
echo "++++++++++++++ÉÏ´«ÆÑ¹«Ó¢ ÉÏ´«ÖÐ +++++++++++++"
curl -F "file=@${IPA_PATH}" -F "uKey=${uKey}"
-F "_api_key=${apiKey}" http://www.pgyer.com/apiv1/app/upload
|
°Ë¡¢¹ý³ÌÖÐһЩ¿ÓºÍС¼¼ÇÉ
1.Jenkins¹¤×÷Ŀ¼²»ÔÚµ±Ç°µÇ¼Óû§ÏµÄȨÏÞÎÊÌâ
Õâ¸öÎÊÌâÔÚ×ʼ¾Í˵ÁË£¬ÕâÀïµÄ±¨´íÖ»ÊÇÆäÖеĸö±ð£¬»¹ÓÐÆäËûÌáʾµÄȨÏÞÎÊÌâ»ù±¾¶¼ÊÇJenkins¹¤×÷Ŀ¼ÒýÆðµÄȨÏÞÎÊÌâ¡£µ±È»£¬Äã¿ÉÒԵ㿪¶ÔÓ¦µÄ·¾¶ÏµÄÎļþ½øÐÐÊÚȨ£¬µ«ÊÇÕâÒâζ×Å·¾¶ÉϵÄÿһ¸öÎļþ¶¼ÐèÒªÕâÑùµÄÊÚȨ´¦Àí£¬²¢ÇÒ±¨Ò»´Î´í¾ÍµÃÀ´ÕâôһÂÖ£¬ÎÒÃDz»¿ÉÄÜÕâô²Ù×÷¡£
ËùÒÔ¹¤×÷Ŀ¼µÄÎÊÌâÆäʵºÜÖØÒª¡£
±¨´í£º
Command /usr/bin/codesign failed
with exit code 1 ** ARCHIVE FAILED **

2.xcrun: error: unable to find utility
"PackageApplication", not a developer tool
or in PATH
½â¾ö°ì·¨
3.unknown error -1=ffffffffffffffff Command /bin/sh
failed with exit code 1
Õâ¸ö´íµÄÎÊÌâ¿ÉÄÜÓкܶàÖÖ£¬ÕâÀïÓм¸ÖÖÔÒòºÍ´¦Àí·½Ê½£º
ÔÒò1
ÔÒò2
4.error: exportArchive: "AppName.app" requires
a provisioning profile with the Push Notifications
and App Groups features.
Error Domain=IDEProvisioningErrorDomain Code=9
"AppName.app" requires a provisioning profile
with the Push Notifications and App Groups features."
UserInfo={NSLocalizedDescription="AppName.app"
requires a provisioning profile with the Push Notifications
and App Groups features., NSLocalizedRecoverySuggestion=Add
a profile to the "provisioningProfiles"
dictionary in your Export Options property list.}
// »ò
"Error Domain=IDEProvisioningErrorDomain Code=9
""ios-simple-objc.app" requires a provisioning
profile."
UserInfo={NSLocalizedDescription="ios-simple-objc.app"
requires a provisioning profile., NSLocalizedRecoverySuggestion=Add
a profile to the "provisioningProfiles"
dictionary in your Export Options property list.}"
½â¾ö·½Ê½
²»¹ý±ÊÕßĿǰµÄXcode9.2ûÓÐÓöµ½Õâ¸öÌáʾ£¬ÊÇ֮ǰJenkins¹¤×÷Ŀ¼²»¶ÔµÄʱºòµ÷ÊÔ³öÏÖ¹ý£¬Óýű¾Ìí¼ÓExportOptions.plistÎļþÒ²²»ºÃʹ£¬Èç¹ûÓÐÀàËÆµÄÎÊÌâ´ó¼Ò»¹ÊǰٶȲ¢³¢ÊÔ°É¡£
4.Ð޸Ķ˿Ú
Èç¹ûÒªÐ޸Ķ˿ڣ¬±ÈÈç7070£¬¿ÉÔÚÖØÆôjenkinsǰִÐÐÒÔÏÂÃüÁîÐ޸Ķ˿ڲÎÊý:
sudo defaults write /Library/Preferences/org.jenkins-ci
httpPort 7070
È»ºóÖØÆôjenkins:
sudo launchctl unload -w /Library/LaunchDaemons/org.jenkins-ci.plist
sudo launchctl load -w /Library/LaunchDaemons/org.jenkins-ci.plist
µ½´Ë£¬¿ÉÒÔ·ÃÎÊhttp://localhost:7070ÁË¡£
5.MacÐ¶ÔØJenkins
//½øÈëÒÔÏÂĿ¼£¬Ë«»÷ÔËÐÐ
/Library/Application Support/Jenkins/Uninstall.command
//Ò²¿ÉÒÔÕâÑùÔËÐÐ
sh "/Library/Application Support/Jenkins/Uninstall.command"
//ɾ³ýÅäÖã¬Õâ¸ö¿ÉÑ¡
sudo rm -rf /var/root/.jenkins ~/.jenkins
sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist
sudo rm /Library/LaunchDaemons/org.jenkins-ci.plist
sudo rm -rf /Applications/Jenkins "/Library/Application
Support/Jenkins" /Library/Documentation/Jenkins
sudo rm -rf /Users/Shared/Jenkins
sudo dscl . -delete /Users/jenkins
sudo dscl . -delete /Groups/jenkins
sudo rm -f /etc/newsyslog.d/jenkins.conf
pkgutil --pkgs | grep 'org\.jenkins-ci\.' | xargs
-n 1 sudo pkgutil --forget
//Èç¹ûʹÓÃbrew°²×°µÄ£¬¿ÉÒÔÖ´ÐÐÒÔÏÂÃüÁî
brew uninstall jenkins
|
|