በኮካዎ ማመልከቻዬ ውስጥ NSTask
ን ለመጠቀም እሞክራለሁ ፡፡ አንዳንድ መሰረታዊ የጊት ትዕዛዞችን ለማሄድ ፡፡ ሩቅ (ለምሳሌ git push
፣ git pull
) ጋር ለመድረስ ፍቃዶችን (ኤስኤስኤች ቁልፎች) የሚፈልግ ትእዛዝ በምሠራበት ጊዜ ሁሉ በሚከተለው ስህተት አይሳካም-
ፈቃዱ ተከልክሏል ( የህዝብ ቁልፍ) የርቀት ጫፉ ባልታሰበ ሁኔታ ተዘግቷል
ተመሳሳይ ትዕዛዞችን ከቴርሚናል ማስኬድ ጥሩ ነው ፣ ስለሆነም ይህ ምናልባት በ NSTask
ውስጥ በአከባቢው ውስጥ ጥቅም ላይ የሚውል የአካባቢ ተለዋዋጭ አለማዘጋጀት ጉዳይ ሊሆን ይችላል የሚል እምነት አለኝ ፡፡ የ ssh ቁልፎችን የማግኘት ሂደት። እንደዚህ ያሉትን ቤት
እና USER
የአካባቢ ተለዋዋጮችን በእጅ ለማዘጋጀት ሞከርኩ
[task setEnvironment:[NSDictionary dictionaryWithObjectsAndKeys:NSHomeDirectory(), @"HOME", NSUserName(), @"USER", nil]];
ግን ይህ ምንም ውጤት የለውም ፡፡ ይህ በትክክል እንዲሠራ በ NSTask
ውስጥ ማዘጋጀት ያለብኝ ለየት ያለ የአካባቢ ተለዋዋጭ አለ?
አርትዕ: ለደስተን ጠቃሚ ምክር አመሰግናለሁ ፣ ይህንን ለማወቅ ትንሽ ተጨማሪ ነገር አግኝቻለሁ ፡፡ ለአሁኑ ክፍለ ጊዜዬ የአካባቢ ተለዋዋጭዎችን ለመዘርዘር የ env
ትዕዛዙን ተጠቀምኩኝ እናም ይህንን አገኘሁኝ
SSH_AUTH_SOCK=/tmp/launch-DMQopt/Listeners
ለመሞከር ያንን መንገድ ቀድቼ እንደ NSTask
የአከባቢ ተለዋዋጭ አድርጌ አስቀምጫለሁ ፡፡ እና እንደገና ኮዱን አሂድ ፣ እና በዚህ ጊዜ ሰርቷል! ያ ማለት እኔ እያንዳንዱን ክፍለ ጊዜ SSH_AUTH_SOCK
እንደሚቀይር እርግጠኛ ነኝ ፣ ስለዚህ በቃ ኮድ ማድረግ አልችልም ፡፡ ይህንን ተለዋዋጭ እንዴት በቋሚነት ማመንጨት / ማግኘት እችላለሁ?