2012-04-19 2 views
2

Вот мой сценарий. Я работаю над командой из 3 разработчиков. В настоящее время я единственный, кто занимается разработкой iphone, поэтому на данный момент у нас есть один проект, который я создал, протестировал, а затем создал сертификат развертывания, чтобы я мог его создать и развернуть на нескольких устройствах. 1 разработчик, 1 приложение, все довольно прямолинейно. Вот где моя проблема.Есть ли способ создать общий закрытый ключ для профиля развертывания для развертывания команды на предприятии?

Теперь позвольте сказать, что один из других разработчиков должен проверить исходный код, внести изменения и переотложить, а меня нет, и не тот компьютер, на котором я работал. Я прочитал все, что мог найти, и я понимаю, что другому разработчику потребуется загрузить сертификат распространения и профиль развертывания, и мне также нужно будет экспортировать закрытый ключ сертификата распространения в формат .p12, чтобы они могли надеть их машина. Все это работает.

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

Я искал всюду для ответа, но, похоже, я не могу найти точный ответ, который мне нужен, чтобы понять, чего я не вижу. Возможно, мне просто не хватает какой-то существенной концепции.

  • Есть ли способ создать профиль распространения с помощью закрытого ключа моей компании, а не меня? Или даже ключ, который я могу назвать для каждого проекта, если мне нужно создать сертификат распространения для каждого проекта.
  • Делится личным личным ключом, связанным с сертификатом распространения, неправильно/плохо?
  • Что они могут делать с моим личным ключом? Я чувствую, что у нас должен быть частный ключ компании или что-то в этом роде.

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

Enabling multiple team admins to build an app for distribution in XCode 4.3?

Любая помощь для того, как команда разработчиков может все строить и развертывать, не разделяя их частные ключи будут весьма благодарны. Я предполагаю, что это просто, потому что я не могу представить, что другие компании развертываются с одной машины.

Jon

+0

Эпическое чтение и +1 к деталям –

ответ

0

Ваш разработчик секретный ключ не используется с сертификатом распределения. Есть два личных ключа, связанных с вашим сценарием выше.

Открытый доступ к брелокам, выберите брелок для входа и выберите «Мои сертификаты» под категорией.

1) Ваш секретный ключ разработчика никогда не должен использоваться другим разработчиком. Он уникален и предназначен только для вашего использования. Только если вы переходите на новый компьютер, вам нужно экспортировать его.В приложении Keychain Access вы увидите, что этот сертификат указан как «Разработчик iPhone: ваше имя»

2) Сертификат распространения имеет отдельный закрытый ключ. Он расположен на компьютере, который создал запрос сертификата распространения, и находится в приложении Keychain Access, указанном в списке «iPhone Distribution: Your Company Name». Вам нужно будет экспортировать этот сертификат (включая как общедоступные, так и частные ключи), чтобы кто-то другой мог создать корпоративный дистрибутив, используя профиль EXISTING. Информацию о том, как экспортировать эти ключи, см. В: https://stackoverflow.com/a/9418712/600753

Я рекомендую вышеуказанный подход, но другой вариант заключается в том, чтобы другой разработчик создал другой сертификат распространения и другой профиль обеспечения. Этот подход имеет тенденцию путать автоматический выбор профилей подготовки в Xcode и, как правило, больше проблем, чем того стоит.

1

Ответ (как вопрос) несколько больше:

1) Как правило, профили распределения провизий (Ad-Hoc, Enterprise Inhouse и AppStore) используют различные/пары ключей сертификатов затем профили обеспечения разработки. На портале обеспечения безопасности четко обозначены как таковые (например, сертификат разработчика, сертификат распространения и сертификат push).

2) Компании имеют тенденцию ограничивать доступ к ключам распространения, поскольку их утечка знакомит с существенными последствиями для безопасности (например, кто-то может попытаться распространить ваше приложение на вредоносное ПО и т. Д.). Обычная практика заключается в том, чтобы иметь от одного до трех обозначенных «подписчиков»

3) Что касается одного повторного использования нескольких сертификатов распространения: существует ограничение на количество сертификатов распространения, которые вы можете иметь (я думаю, это два). Кроме того, в случае профилей обеспечения распределения вы можете выбрать только один. Поэтому, если вы хотите регулярно использовать два ключа/сертификаты, вам нужно будет иметь два профили обеспечения для одного и того же приложения. Доверьтесь мне! xcode заставит вас сожалеть об этой идее!

Бонусная записка: теоретически возможно создать CSR (запрос подписи сертификата) с помощью пары частного/открытого ключа по вашему выбору вместо поведения по умолчанию для создания нового. More here

Смежные вопросы