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



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




  • архив приложения

  • распределить для Ad-Hoc

  • выбираете профиль подготовки

  • сохранить .ipa в папку


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



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



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



есть ли способ в Xcode 6 выбрать инициализацию профиль используется со специальным распределением?



спасибо!

775   18  

18 ответов:

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

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'

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

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

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

Как только вы находитесь в органайзере

  • выберите специальную сборку и нажмите кнопку "Экспорт...."
  • выберите "Сохранить для специального развертывания" - > далее
  • вместо выбора организации из выпадающего списка выберите "использовать локальный подписывающий актив" - > выберите
  • экспорт и сохраните .как и раньше.

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

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

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

вот скрипт, который я использую:

#!/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

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

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

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

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

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

  1. нажмите кнопку " Просмотр учетных записей.."внутри себя"..выберите команду разработчиков.." диалог.
  2. нажмите кнопку " Просмотр сведений.."и найдите профиль XC Ad Hoc provisioning.
  3. правой кнопкой мыши на профиль и выберите "Показать в Finder".
  4. удалить выбранный профиль.
  5. вернитесь к диалоговому окну на шаге 1.
  6. нажмите кнопку "выбрал".
  7. нажмите на стрелку рядом с профилем подготовки, чтобы открыть поставка каталог профиля.
  8. удалить повторно общий профиль, как в шаге 4.
  9. нажмите кнопку "предыдущий" в диалоговом окне " отправить [имя приложения] в Apple:".
  10. выберите "Сохранить для специального развертывания"
  11. снова нажмите кнопку" Выбрать".

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

У меня есть обходной путь для этого, который работает для меня.

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

использование локальных подписывающих активов при экспорте решило проблему для меня:enter image description here

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

В центре участников - > профили подготовки iOS

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

в утилите настройки iPhone - > подготовка Профили

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

В Xcode - > Organizer

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

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

  • при создании профиля подготовки, он должен быть связан с явное приложение ID, который использует тот же идентификатор пакета, как ваше приложение. Идентификатор приложения с подстановочными знаками не будет работать.
  • при экспорте приложения для специального развертывания выберите использовать локальный подписывающий актив в выпадающем списке и нажмите кнопку Выбрать.

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

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

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

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

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

enter image description here

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

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

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

почти та же проблема. После создания архива для распространения (продукт > архив) вы экспортируете архив (нажмите кнопку Экспорт...) и выберите "Сохранить для развертывания предприятия"; затем"далее". Затем вы выбираете" команда разработчиков "по умолчанию (например, название организации) и нажимаете"выбрать". Наконец, вам будет представлено сводное представление, в котором также указан профиль подготовки, который Xcode автоматически нашел (возможно, создал на лету) для вас. Это может быть неправильный профиль подготовки (как правило, профиль подготовки с подстановочными знаками, например "XC: *") и может происходить, потому что на портале разработчика уже есть профиль подготовки с подстановочными знаками. Профиль подготовки подстановочных знаков может использоваться другим старым проектом, и, возможно, не стоит просто удалять профиль подготовки подстановочных знаков с портала разработчика.

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

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

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

организатор - > загрузить в магазин приложений и организатор - > проверить

но я мог бы выбрать через Организатор -> Экспорт

редактировать:

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

  1. Я думаю, что это правильный способ указать опцию-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, предпринимательство, ad-hoc, развитие альтернативно

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

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

это проблема Рубина. Попробуйте этот скрипт 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() { :; }

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

Comments

    Ничего не найдено.