2013-07-21 52 views
0

我寫了適當的xcode構建腳本,當我從命令行運行它們時,它們每次都在工作。從php網站執行xcodebuild

我有我的apache系統作爲我的本地用戶/組(myuser/staff)運行,所以它應該有適當的權限(我認爲)。

我遇到的問題是,雖然構建正在生成,但沒有對它進行簽名。

最後,我得到一個「Program/usr/bin/codesign返回1:[/tmp/1u_gMG7iJU/Payload/myapp.app:代碼對象根本沒有簽名」錯誤。

就像我說的,如果我直接從命令行執行完全相同的腳本,它可以完美地工作。

我試圖依靠xcodebuild clean build命令來分配正確的配置文件,並且這不起作用,因爲我實際上生成了兩個版本。一個與企業(通配符),以便我們可以快速,輕鬆地在內部進行測試,另一個具有精確的配置文件。所以我需要能夠指定使用哪個配置文件。

我試過在簽名過程中指定CODE_SIGN_IDENTITY,並PROVISIONING_PROFILE價值觀和不工作

我已經試過指定--sign和--embed標誌以及無濟於事。

我目前的工作xcodebuild聯編命令:

在/ usr/bin中/ xcodebuild聯編 - 項目/path/to/my.xcodeproj CODE_SIGN_IDENTITY = 「iPhone分佈:我的公司」 PROVISIONING_PROFILE =「我的預留空間輪廓,UUID 「乾淨的構建;

/usr/bin/xcrun -sdk iphoneos PackageApplication -v /path/to/build/Release-iphoneos/myapp.app -o /path/to/my/output/myapp.ipa --sign「iPhone Distribution :我的公司「--embed」/ local/path/to/provisioning profiles/my-provisioning-profile-uuid.mobileprovisioningprofile「;

任何人都可以想到我還沒有嘗試過的任何東西?

我開始認爲,也許我應該建立一個自定義鑰匙串,該自定義鑰匙串將包含所有證書,並且這些用於自動化構建,但我不太確定這個兔子洞是否會得到回報。

如果我要走這條路線,我需要對配置文件有特殊權限嗎?我是否需要重新創建所有主動配置文件(我寧願不必這樣做)。我需要移動配置文件的位置嗎?

另一種可能性,我認爲可以工作(同樣可能不)是默認所有我的應用程序簽署企業證書,只有當我準備釋放他們,然後我指定的「生產」證書.. 。我能通過腳本來做到嗎?

我真的無所適從,到目前爲止我沒有找到任何東西給我帶來了更近的距離。

感謝您的幫助!

+0

我相信你在鑰匙串發展的道路上是正確的,你可以讓你的PHP腳本運行一個whoami來查看它正在執行的用戶嗎?然後,我會嘗試使用'sudo -u phpuser'調用構建。 –

+0

用戶正在以我的本地用戶身份運行,正如我剛纔提到的那樣....這讓我瘋狂! – MrNickel

回答

0

要回答我自己的問題,我最終做的是創建一個ANT構建腳本。第一個過程是通過SSH連接到我自己的用戶帳戶,並且該用戶具有所有適當的權限。這也讓我不必與apache的用戶設置打成一片。