2014-01-23 34 views
0

我目前正在Xamarin Studio中開發一個應用程序,在那裏我想通過腳本修改構建info.plist。不幸的是,Xamarin Studio缺少腳本構建階段,所以我唯一的選擇是在構建之後運行腳本,這當然會破壞簽名。在沒有指定身份的情況下辭職iOS應用程序

由於不同的身份被用於不同的配置,我不能使身份是靜態的,並且無論哪種方式我都希望儘可能少地干擾Xamarin(I.E.能夠使用項目設置等)。

有沒有辦法通過shell腳本使用當前簽名的身份來退出應用程序?

回答

0

於是我找到了解決辦法:

#!/usr/bin/env python 

import sys 
import subprocess 
import re 
import os 

app_path = os.path.abspath(sys.argv[1]) 

signing_info = subprocess.Popen(['codesign', '--display', '--verbose=4', app_path], stdin=subprocess.PIPE, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, close_fds=True).communicate()[0] 

identity = re.search('Authority=(.*)', signing_info).group(1) 

subprocess.call(['codesign', '--sign', identity, '--force', '--preserve-metadata=entitlements,resource-rules,requirements', '/Users/stefanfisk/Projekt/Tunaspot/Xamarin/App/Touch/bin/iPhone/Ad-Hoc/Touch.app']) 
0

您可以嘗試修改Info.plist,然後再次退出應用程序包。我從來沒有試過這樣做,但我相信它應該起作用。

+0

是的,但我該如何使用與之前簽署的相同標識來退訂軟件包? –

+0

你不知道以前使用過哪一個?您應該在機器上擁有所有配置文件和簽名身份。 – Vytautas

+0

我可以通過閱讀構建日誌找到,但我不知道如何編寫腳本。 –

0

你試過xcodebuild命令,身份是在構建配置中指定,所以你只需要提及的配置..你可以在/ OBJ/Xcode中找到xcodeproj /地方

xcodebuild -project Xamarin.xcodeproj -scheme TestApp -configuration "Ad Hoc" 
+0

或嘗試這個http://stackoverflow.com/a/4198166/140220 – yasirmturk

+0

我使用Xamarin,所以xcodebuild將無法正常工作:( –

+0

我有這一切正常工作在幾個Xcode項目,但那只是因爲腳本 –

相關問題