2012-03-20 22 views
7

मैं आईओएस एप्लिकेशन के लिए सीआई पर्यावरण स्थापित करने का प्रयास कर रहा हूं। अब तक मैं कमांड लाइन से सही ढंग से परीक्षण का निर्माण का निर्माण करने के xcodebuild मिल गया है, लेकिन यह निष्पादित करने के लिए जब जेनकींस की कोशिश करता है मैं कंसोल में पढ़ा निम्नलिखित हो:जेनकींस प्रोजेक्ट फ़ोल्डर से xcodebuild नहीं चला सकते

Started by user anonymous 
Building in workspace /Users/Shared/Jenkins/Home/jobs/Unit Tests/workspace 
Working directory is /Users/iosappdev/Documents/Xcode Projects/rules. 
[rules] $ /usr/bin/xcodebuild -version 
FATAL: Cannot run program "/usr/bin/xcodebuild" (in directory "/Users/iosappdev/Documents/Xcode Projects/rules"): error=13, Permission denied 
java.io.IOException: Cannot run program "/usr/bin/xcodebuild" (in directory "/Users/iosappdev/Documents/Xcode Projects/rules"): error=13, Permission denied 
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:460) 
    at hudson.Proc$LocalProc.<init>(Proc.java:244) 
    at hudson.Proc$LocalProc.<init>(Proc.java:216) 
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:707) 
    at hudson.Launcher$ProcStarter.start(Launcher.java:338) 
    at hudson.Launcher$ProcStarter.join(Launcher.java:345) 
    at au.com.rayh.XCodeBuilder.perform(XCodeBuilder.java:224) 

किसी भी विचार? मैं जेनकींस के लिए बिल्कुल नया हूं लेकिन मैंने Google फू के साथ इस सवाल का जवाब देने के लिए अपना सर्वश्रेष्ठ प्रयास नहीं किया है। मैंने मूल रूप से जेनकिंस (मैन्युअल रूप से होमब्री) की मैन्युअल स्थापना के साथ इस समस्या में भाग लिया था, लेकिन हाल ही में ओएसएक्स इंस्टॉलर का उपयोग किया और इसके परिणामस्वरूप एक ही त्रुटि हुई।

मुझे लगता है कि जेनकिन्स/एक्सकोड की तुलना में यूनिक्स/लिनक्स/ओएसएक्स अनुमतियों के साथ इसका अधिक संबंध है, लेकिन निश्चित रूप से यह निर्धारित करने के लिए पर्याप्त विशेषज्ञता नहीं है।

संपादित

परियोजना निर्देशिका अनुमतियाँ 775.

मैं भी उपयोगकर्ता को स्वामित्व जेनकींस पर चलता है बदल रहा है की कोशिश की है करने के लिए निर्धारित किया है।

dev-imac:rules iosappdev$ sudo -u daemon xcodebuild 
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied 
shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied 
2012-03-21 11:05:46.161 xcodebuild[1411:70b] [MT] DVTAssertions: ASSERTION FAILURE in /SourceCache/IDEXcode3ProjectSupport/IDEXcode3ProjectSupport-1196/Xcode3Sources/XcodeIDE/Frameworks/DevToolsBase/pbxcore/Xcode3Model/Xcode3Project.m:266 
Details: Assertion failed: [directoryPath isAbsolutePath] 
Object: <Xcode3Project> 
Method: +projectFilesInDirectory: 
Thread: <NSThread: 0x40010a260>{name = (null), num = 1} 
Hints: None 
Backtrace: 
    0 0x000000010025b85f -[DVTAssertionHandler handleFailureInMethod:object:fileName:lineNumber:messageFormat:arguments:] (in DVTFoundation) 
    1 0x000000010025b6b5 _DVTAssertionFailureHandler (in DVTFoundation) 
    2 0x00000001011559bc +[Xcode3Project projectFilesInDirectory:] (in DevToolsCore) 
    3 0x00000001008a424b -[Xcode3CommandLineBuildTool _resolveInputOptions] (in Xcode3Core) 
    4 0x00000001008aa097 -[Xcode3CommandLineBuildTool run] (in Xcode3Core) 
    5 0x00000001001d7db6 (in xcodebuild) 
    6 0x00000001001d7c2c (in xcodebuild) 

उत्तर

5

यकीन है कि उपयोगकर्ता है जिसके तहत जेनकींस चलाता सही अनुमतियां हैं बनाओ:

यहाँ जब मैं xcodebuild डेमॉन उपयोगकर्ता ($ sudo -u डेमॉन xcodebuild) के रूप में चलाने की कोशिश की के लिए उत्पादन है। http://[jenkins_server]/systemInfo पर जाएं और user.name पर खोजें।

+0

क्या आप वर्णन कर सकते हैं कि "सही" अनुमतियां क्या हैं/दिखती हैं? xcodebuild में 755 है जो मुझे लगता है कि किसी भी उपयोगकर्ता को किसी भी निर्देशिका से प्रोग्राम निष्पादित करने देगा। परियोजना निर्देशिका में 755 अनुमतियां भी हैं। जेनकिन्स उपयोगकर्ता डेमॉन उपयोगकर्ता है। – cesarislaw

+0

मेरा वास्तव में क्या मतलब था कि आपको जेनकिन्स को उस उपयोगकर्ता के साथ चलाना चाहिए जो निर्देशिका का मालिक है। वैकल्पिक रूप से, इसे लिखने योग्य बनाओ। –

+0

मैंने विभिन्न बिंदुओं पर दोनों की कोशिश की है। फिर से जांच की गई (775 पर निर्देशिका अनुमतियां सेट करें और डेमॉन उपयोगकर्ता के स्वामित्व) और अभी भी अनुमति प्राप्त करने से त्रुटि अस्वीकार हो गई है। – cesarislaw

0

यह ऊपर लिखा है:

Building in workspace /Users/Shared/Jenkins/Home/jobs/Unit Tests/workspace Working directory is /Users/iosappdev/Documents/Xcode Projects/rules. [rules] $ /usr/bin/xcodebuild -version

किसी तरह काम निष्पादन एक "गलत" निर्देशिका में कूद गया है। शायद आपने कस्टम वर्कस्पेस के साथ नौकरी सेट की है? जेनकींस शायद उपयोगकर्ता डिमन के रूप में चल रहा है और इस प्रकार उपयोगकर्ता iosappdev के तहत फ़ाइलों तक पहुंच नहीं है।

जेनकींस का उपयोग करने का सामान्य तरीका आपके लिए एक स्रोत नियंत्रण भंडार में अपना स्रोत कोड प्रतिबद्ध करना है। जेनकींस नौकरियों को तब संग्रह से कोड को जेनकींस वर्कस्पेस में देखने और वहां बनाने के लिए कॉन्फ़िगर किया गया है और फिर परिणामों को रिपोर्ट करने के लिए कॉन्फ़िगर किया गया है।

मुझे यकीन नहीं है कि जेनकिंस सीधे अपनी कार्यशील निर्देशिका में कूदने और वहां निर्माण करने की कोशिश करके हासिल किया जा सकता है। यदि वह वास्तव में आप जो करने की कोशिश कर रहे हैं, तो आपको हमें यह बताना होगा कि आपको क्यों लगता है कि यह एक अच्छा विचार है।

+0

टिप्पणी के लिए थोड़ा देर हो चुकी है लेकिन ... मुझे एक ही चीज़ का सामना करना पड़ रहा है। मुझे लगता है कि कारण यह है कि xcode प्लगइन आपको "एक्सकोड प्रोजेक्ट निर्देशिका" निर्दिष्ट करने की अनुमति देता है और यह उस पर कार्यशील निर्देशिका को बदल रहा है। मैं ओएसएक्स पर 1.512 चला रहा हूं और जेनकींस उपयोगकर्ता "जेनकींस" के रूप में चल रहा है, इसलिए मुझे नहीं लगता कि इसे ओपी की तरह ही मेरी उपयोगकर्ता निर्देशिका के तहत फ़ाइलों तक पहुंचने की अनुमति है। क्या इन बाधाओं के तहत जेनकिंस काम करने का कोई तरीका है? मुझे सिर्फ जेनकींस बिल्ड चलाने के लिए वीसी सेट अप नहीं करना पड़ेगा। एक वीसी प्रणाली के बिना निर्माण के लिए जेनकींस का उपयोग करना संभव होना चाहिए। – Tony