我目前正在Xamarin Studio中開發一個應用程序,在那裏我想通過腳本修改構建info.plist。不幸的是,Xamarin Studio缺少腳本構建階段,所以我唯一的選擇是在構建之後運行腳本,這當然會破壞簽名。在沒有指定身份的情況下辭職iOS應用程序
由於不同的身份被用於不同的配置,我不能使身份是靜態的,並且無論哪種方式我都希望儘可能少地干擾Xamarin(I.E.能夠使用項目設置等)。
有沒有辦法通過shell腳本使用當前簽名的身份來退出應用程序?
我目前正在Xamarin Studio中開發一個應用程序,在那裏我想通過腳本修改構建info.plist。不幸的是,Xamarin Studio缺少腳本構建階段,所以我唯一的選擇是在構建之後運行腳本,這當然會破壞簽名。在沒有指定身份的情況下辭職iOS應用程序
由於不同的身份被用於不同的配置,我不能使身份是靜態的,並且無論哪種方式我都希望儘可能少地干擾Xamarin(I.E.能夠使用項目設置等)。
有沒有辦法通過shell腳本使用當前簽名的身份來退出應用程序?
於是我找到了解決辦法:
#!/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'])
您可以嘗試修改Info.plist
,然後再次退出應用程序包。我從來沒有試過這樣做,但我相信它應該起作用。
你試過xcodebuild
命令,身份是在構建配置中指定,所以你只需要提及的配置..你可以在/ OBJ/Xcode中找到xcodeproj /地方
xcodebuild -project Xamarin.xcodeproj -scheme TestApp -configuration "Ad Hoc"
或嘗試這個http://stackoverflow.com/a/4198166/140220 – yasirmturk
我使用Xamarin,所以xcodebuild將無法正常工作:( –
我有這一切正常工作在幾個Xcode項目,但那只是因爲腳本 –
是的,但我該如何使用與之前簽署的相同標識來退訂軟件包? –
你不知道以前使用過哪一個?您應該在機器上擁有所有配置文件和簽名身份。 – Vytautas
我可以通過閱讀構建日誌找到,但我不知道如何編寫腳本。 –