Xcode 6 - Как выбрать подпись сертификата/профиля для распределения Ad-Hoc?

Чтобы распространить приложение на наши тестеры, мы используем Xcode, который мы используем, используя следующий процесс:

  • Архивное приложение
  • Распространение для Ad-Hoc
  • Выберите профиль подготовки
  • Сохраните .ipa в папку

Но с Xcode 6 этот рабочий процесс немного изменился. Я все еще могу выбрать вариант распространения Ad-Hoc, но я не могу выбрать профиль подготовки, который я хочу. Это не дает нам контроля над использованием сертификата подписи и конфигурацией профиля предоставления (мы используем push-уведомления).

По умолчанию используется идентификатор подписи iPhone distribution и создается какой-то профиль подготовки XC Ad Hoc, который можно увидеть на изображении ниже: Exporting IPA Если вы щелкните стрелку рядом с профилем подготовки, она откроет папку с профилями подготовки.

Итак, мой вопрос:

Есть ли способ в Xcode 6 выбрать профиль подготовки, используемый с распределением Ad Hoc?

Спасибо!

Ответ 1

Я столкнулся с той же проблемой, решенной с помощью инструмента командной строки "xcodebuild", который предварительно установлен с Xcode 6 (не нужно было переустанавливать Xcode 5).

http://www.thecave.com/2014/09/16/using-xcodebuild-to-export-a-ipa-from-an-archive/

Скрипт в терминале:

xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile 'Provisioning Profile Name'

Ответ 2

У меня была аналогичная проблема при отправке в App Store. Я создал архив, затем щелкнул "отправить", и Xcode хотел автоматически подписываться с профилем "подстановочного подстановления" по умолчанию "XC com. *" Вместо явного профиля, который уже был.

Чтобы исправить это, я просто повторно создал профиль на портале разработчиков Apple:

1) Перейдите на страницу developer.apple.com и найдите профиль предоставления распределения, который хотите использовать.
2) Выберите его, нажмите "Изменить", переименуйте профиль и нажмите "Создать".
3) Загрузите профиль обеспечения на Рабочий стол и перетащите его на значок Xcode 6.
4) Перезапустите Xcode 6.
5) Откройте окно организатора и нажмите "Отправить" в архиве, который вы создали. Xcode автоматически выберет ваш явный профиль вместо общего.

Ответ 3

Как только вы находитесь в Organizer

  • Выберите рекламную сборку и нажмите "Экспортировать...."
  • Выберите "Сохранить для специального развертывания" → Далее
  • Вместо выбора организации из раскрывающегося списка выберите "Использовать локальный ресурс подписи" → Выберите
  • Экспортировать и сохранять .ipa, как и раньше.

Конечно, вам нужно создать, загрузить и установить специальный профиль подготовки.

Ответ 4

Кажется, что последний сформированный профиль подготовки выигрывает прямо сейчас. Таким образом, вы можете просто повторно создать профиль, который хотите, и загрузить его, и Xcode будет использовать его.

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

Вот script, я использую:

#!/bin/sh

# Current as working as of 2014/09/22
# Xcode 6

OUTPUTDIR="$HOME/build"
APPNAME="your-app"
SCHEME="your-app"
APP_WORKSPACE="$HOME/Path/To/your-app.xcworkspace"

rm "$OUTPUTDIR/$APPNAME.ipa" #deletes previous ipa
xcodebuild -workspace "$APP_WORKSPACE" -scheme "$SCHEME" archive -archivePath "$OUTPUTDIR/$APPNAME.xcarchive"
xcodebuild -exportArchive -exportFormat ipa -archivePath "$OUTPUTDIR/$APPNAME.xcarchive" -exportPath "$OUTPUTDIR/$APPNAME.ipa" 

и мои настройки:

Xcode settings

Ответ 5

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

Я закончил строительство в Xcode 6, а затем вернулся в окно Xcode 5 Organizer для отправки. Таким образом, вам будет предложено выбрать профиль для подписки.

Ответ 6

В Xcode 6 (как минимум, 6.1 я использую сейчас), когда вы делаете экспорт для ad hoc, xcode 6 будет автоматически сканировать, если есть профиль обеспечения, содержащий все устройства, зарегистрированные в учетной записи разработчика, и в то же время соответствует идентификатор пакета. Если нет, он будет использовать профиль предоставления XC. Поэтому, если вы хотите использовать свой собственный профиль, например, для push-уведомления, вам нужно будет выбрать все устройства в своем профиле на портале разработчиков Apple. Я предполагаю, что причина, по которой некоторые люди воссоздают профиль, будет работать, а некоторые - нет.

btw, использование script может экспортировать и загрузить в testflight, но устройство просто не может его загрузить. вероятно, где-то я ошибся. если кто знает, почему это так, PLS дайте мне знать. ТКС

Ответ 7

Это сработало для меня:

  • нажмите "Просмотреть учетные записи.." в разделе ".. выберите команду разработчиков". диалоговое окно.
  • нажмите "Просмотреть детали.." и найдите профиль подготовки HC Ad Hoc.
  • щелкните правой кнопкой мыши на этом профиле и выберите "Показать в Finder".
  • удалить выбранный профиль.
  • вернитесь к диалоговому окну на шаге 1.
  • нажмите "Выбрать".
  • щелкните стрелку рядом с профилем подготовки, чтобы открыть настройку профилей.
  • снова удалите общий профиль, как на шаге 4.
  • нажмите кнопку "Предыдущая" в диалоговом окне "Отправить [имя приложения] в Apple:".
  • снова выберите "Сохранить для специального развертывания"
  • снова нажмите кнопку "Выбрать".

теперь вы должны увидеть правильное имя профиля настройки.

Ответ 8

У меня есть обходное решение для этого, которое работает для меня.

У меня установлены как Xcode 6, так и Xcode 5.1.1, Xcode 6 находится в приложениях, а Xcode 5.1.1 - в другом каталоге. Когда я хочу сделать сборку, я использую Xcode 6 для создания Архива. Но вы также можете увидеть созданный архив в Xcode 5.1.1, поэтому я использую Xcode 5.1.1 для распространения Ad Hoc.ipa, используя профиль подготовки, который я хочу использовать. Поэтому создайте с помощью Xcode 6, но распространяйте с помощью Xcode 5.1.1.

Ответ 9

Использование локальных активов подписи при экспорте решило проблему для меня: введите описание изображения здесь

Ответ 10

Ответ от @MrPatol не помог мне. Мой рабочий сценарий для Xcode 6.3.2

В Центре участников → Профилирование iOS

  • Удалить профиль подготовки, который был установлен по умолчанию при попытке создать приложение (например, "XC..." ). Создайте специальный профиль подготовки (не производственный) с коротким именем.

В утилите настройки iPhone → Профили Provisioning

  • Удалить тот же профиль подготовки (например, "XC..." )

В Xcode → Организатор

  • Выберите рекламную сборку и нажмите "Экспорт...". Выберите "Сохранить для специального развертывания" → Далее
  • Выберите организацию из раскрывающегося списка
  • Убедитесь, что ваш новый профиль предварительной подготовки выбран автоматически.
  • Экспортировать и сохранять .ipa, как и раньше.

Ответ 11

Вот два ключевых момента, которые решили проблему для меня.

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

Затем Xcode найдет правильный профиль подготовки, сопоставив идентификатор приложения с идентификатором пакета приложения.

Ответ 12

Фактически, вам необходимо создать новый профиль распространения, специфичный для Ad Hoc Deployment. Это можно найти в классическом центре участников, но это новый тип сертификата.

Затем вы можете выбрать, какие устройства могут быть использованы для тестирования приложения, поскольку ou будет работать с профилем разработчика.

И вновь созданный сертификат будет доступен, когда вы экспортируете свой пакет из Организатора обычным способом.

В качестве альтернативы вы можете использовать решение TestFlight, предоставленное Apple с iOS 8, чтобы позволить вашему пользователю иметь доступ к предварительной оплате.

enter image description here

Ответ 13

У меня была та же проблема, в конце концов я решил, что он регенерирует профиль, который я хотел использовать в Xcode 6, включая все устройства, которые я зарегистрировал в своей учетной записи Dev iOS, делая это таким образом, при выборе экспорта он показывает правильные и я могу сделать Ad Hoc экспорт с Xcode 6 без использования script. Надеюсь, что это поможет.

Ответ 14

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

надеюсь, что это поможет кому-то.

Ответ 15

Почти такая же проблема. После создания архива для распространения (Product > Archive) вы экспортируете архив (щелкните "Экспорт..." ) и выберите "Сохранить для развертывания предприятия"; затем "Далее". Затем вы выбираете "Development Team" по умолчанию (например, название организации) и нажмите "Выбрать". Наконец, вам будет представлен сводный обзор, в котором также будет указан профиль подготовки, который Xcode автоматически нашел (может быть создан "на лету" ) для вас. Это МОЖЕТ быть неправильным профилем подготовки (как правило, профилем подстановки подкачки, например "XC: *" ), и МОЖЕТ быть, потому что на портале разработчиков уже имеется профиль подстановки подстановки. Профиль предоставления подстановочных знаков МОЖЕТ быть использован другим старым проектом, и, возможно, нецелесообразно просто удалить профиль подготовки подстановочного знака с портала разработчика.

Я использовал билет поддержки для этого и только получил эту ссылку https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/ConfiguringPushNotifications/ConfiguringPushNotifications.html#//apple_ref/doc/uid/TP40012582-CH32-SW1. Не очень большая помощь.

Я обнаружил, что решение MrPatol также работает для Enterprise Deployment и решает проблему для нас. Сначала я вошел в портал разработчика и вручную создал профиль подготовки, который подходит для моего приложения. Затем загрузили и установили новый созданный вручную профиль обеспечения.

Ответ 16

В xcode 7 я не смог выбрать выделение adhoc через

Организатор → Загрузить в App Store и Организатор → Подтвердить

Но я мог бы выбрать Организатор → Экспорт

Отредактировано:

Загрузка приложения после экспорта для adhoc в хранилище приложений для testFlight вызвала еще одну проблему, обсуждаемую здесь здесь. Таким образом, решение обеих этих проблем - одно. Создайте AppStore, чтобы иметь возможность выбирать его через организатор и использовать testFlight, загружая его в AppStore.

Ответ 17

  • Я думаю, что это правильный способ указать параметр -exportOptionsPlist после Xcode 7. Он выберет правильные файлы правил, такие как экспорт GUI, независимо от того, что вы указываете в настройках проекта.

xcodebuild -exportArchive -archivePath $Archive_Path -exportPath $LOCAL_PACKAGE_DIR -exportOptionsPlist $Export_Plist_Path

optionPlist файл выглядит следующим образом:

<dict>
  <key>teamID</key>
        <string>MYTEAMID123</string>
        <key> teamID </key>
        <string>app-store</string>
        <key>uploadSymbols</key>
        <true/>
</dict>


<plist>

app-store, enterprise, ad-hoc, разработка являются альтернативными

  1. Но вы можете встретить еще одну ошибку после выше.

Ошибка домена = IDEDistributionErrorDomain Code = 14 "Не применимо обнаруженных устройств." UserInfo = {NSLocalizedDescription = Нет соответствующих устройств найдено.}

Это рубиновая проблема. Попробуйте эту оболочку script, xcbuild-safe.sh

xcbuild-safe.sh xxxxNormalOptionsInXcodebuild bla...
  1. Подождите, появится еще одна странная ошибка.

xcbuild-safe.sh: строка 62: shell_session_update: команда не найдена

Какого черта shell_session_update? Давайте работать вокруг. Просто определите функцию до реального xcodebuild cmd, а именно на линии 60 или 61.

function shell_session_update() { :; }

Ответ 18

В ответ на ваш конкретный вопрос нет никакого способа выбрать профиль подготовки, который будет использоваться. Что вы пытаетесь сделать? (то есть, какой профиль, который вы хотите выбрать, разрешить, чтобы автоматически сгенерированный не был?)