Отказаться от приложения iOS без указания личности

В настоящее время я разрабатываю приложение в Xamarin Studio, где я хотел бы изменить сборку info.plist с помощью скрипта. Однако в Xamarin Studio, к сожалению, отсутствует этап сборки скрипта, поэтому мой единственный вариант — запустить скрипт после сборки, что, конечно, нарушает подписание.

Поскольку для разных конфигураций используются разные удостоверения, я не могу сделать удостоверение статическим, и в любом случае мне бы очень хотелось как можно меньше вмешиваться в Xamarin (т.е. иметь возможность использовать настройки проекта и т. д.).

Есть ли способ отказаться от приложения, используя идентификатор, с которым оно в настоящее время подписано, через сценарий оболочки?


person Stefan Fisk    schedule 23.01.2014    source источник


Ответы (3)


Вы можете попробовать изменить Info.plist и после этого снова отказаться от пакета приложений. Я никогда не пытался сделать это, но я считаю, что это должно сработать.

person Vytautas    schedule 23.01.2014
comment
да, но как мне отказаться от пакета, используя то же удостоверение, которым он был ранее подписан? - person Stefan Fisk; 23.01.2014
comment
Разве вы не знаете, какой из них использовался ранее? На вашем компьютере должны быть все профили подготовки и подписи. - person Vytautas; 24.01.2014
comment
Я могу узнать, прочитав журнал сборки, но я не знаю, как это написать. - person Stefan Fisk; 24.01.2014

вы пробовали команду xcodebuild, идентификатор указан в конфигурации сборки, поэтому вам просто нужно упомянуть конфигурацию.. вы можете найти xcodeproj в /obj/xcode/где-то

xcodebuild -project Xamarin.xcodeproj  -scheme TestApp -configuration "Ad Hoc"
person yasirmturk    schedule 24.01.2014
comment
У меня все это работает правильно в нескольких проектах Xcode, но это только потому, что этап сборки скрипта делает его тривиальным для реализации. - person Stefan Fisk; 24.01.2014
comment
как это будет работать? нет xcodeproj, только решение Visual Studio и файлы проекта. - person Stefan Fisk; 24.01.2014
comment
там я могу найти только временные проекты Xcode, используемые при редактировании xibs. во время сборки в папке obj не создается ничего, связанного с xcode, и при просмотре вывода сборки я нигде не вижу вызова xcodebuild, только mtouch. - person Stefan Fisk; 24.01.2014

Итак, я нашел решение:

#!/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'])
person Stefan Fisk    schedule 25.01.2014