2014-01-13 59 views
1

上下文:

我有一個Mac應用程序。我想在此應用程序中包含Git,因爲我的應用程序的某些功能使用Git,並且我不希望用戶必須將其安裝在他的機器上。Git捆綁到可可應用程序找不到幫手捆綁

我已經從源代碼下載Git。我編輯了Makefile以聲明這兩行:

NO_GETTEXT="yesPlease" 
CURLDIR=/usr/local 

第一行告訴構建過程跳過本地化並且只使用英語。 第二行聲明安裝路徑libcurl。我下載了libcurl_devel並從源碼構建。這需要啓用Git從httphttps回購。

Git構建成功。然後我將所有生成的文件複製到我的應用程序包中。我正在使用NSTask來運行Git,並試圖拉一個基於https://的回購。

問題:

我得到的錯誤是:

fatal: Unable to find remote helper for 'https' 

我GOOGLE了這一點,大家都說只要我已經安裝了libcurl當我建立的Git,Git的將與HTTP工作, HTTPS地址。事實上,如果我從命令行運行已安裝的Git,它的確如此!

我需要什麼:

所以,我必須缺少的路徑設置或告訴Git的在哪裏可以找到這些遠程助手的環境變量什麼的。他們在我的應用程序包中;下面的截圖顯示了他們:

enter image description here

所以:什麼是地獄,我需要爲了解決這一問題設定,當我從我的應用程序包中運行git?

+0

我只是在黑暗中刺穿,但不應該將捆綁的Git指向捆綁而不是本地安裝的libcurl? –

+0

從我讀的內容來看,只有在構建Git時才需要libcurl。我不認爲它需要與應用程序捆綁在一起。這個錯誤似乎意味着Git無法在屏幕截圖中找到「git-remote-https」助手。 – Bryan

回答

1

令人難以置信。我一直試圖解決這個問題8小時五分鐘後,我終於分手併發布這個問題,我知道了:

Git有一個選項叫--exec-path。我已經通過這個參數傳遞給NSTask這樣的(其中APP摞由路徑替換爲應用程序包的用戶的機器上):

--exec-path=[APP BUNDLE]/git/bin

由於bin是在Git的二進制文件所在的文件夾,我認爲這是適當的路徑。但是,如果我這樣做:

--exec-path=[APP BUNDLE]/git/libexec/git-core

它的工作原理。

+0

你應該接受你自己的答案 - 讓它綠色! –

+0

謝謝!已經忘記了這一點。 – Bryan