在不指定身份的情况下退出iOS应用

时间:2014-01-23 14:58:19

标签: ios xamarin xamarin-studio codesign

我目前正在Xamarin Studio中开发一个应用程序,我想通过脚本修改构建info.plist。不幸的是,Xamarin Studio缺少脚本构建阶段,因此我唯一的选择是在构建之后运行脚本,这当然会破坏签名。

由于不同的身份用于不同的配置,我无法使身份成为静态,无论哪种方式,我都希望尽可能少地干扰Xamarin(I.E.能够使用项目设置等)。

有没有办法通过shell脚本使用当前签名的身份来重新签名应用?

3 个答案:

答案 0 :(得分:0)

您可以尝试修改Info.plist,然后再次重新签名您的应用程序包。我从未试图这样做,但我相信,它应该有效。

答案 1 :(得分:0)

您是否尝试过xcodebuild命令,在构建配置中指定了Identity,因此您只需要提及配置..您可以在/ obj / xcode / somewhere中找到xcodeproj

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

答案 2 :(得分: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'])