|
1 |
| -Если у вас индивидуальный аккаунт разработчика (на физ. лицо), то сторонний разработчик не сможет выгрузить билд. Для этого владельцу аккаунта нужно сделать сертификаты вручную. |
| 1 | +Вы хотите добавить разработчика в аккаунт, чтобы он мог выгружать приложение. Если у вас аккаунт компании (юр. лица), то всё работает из коробки. |
2 | 2 |
|
3 |
| -> Может появиться идея передать логин-пароль, так делать небезопасно |
| 3 | +Но если вы владелец индивидуального аккаунт (на физ. лицо), то сторонний разработчик не сможет выгрузить билд. Для этого владельцу такого аккаунта нужно сделать сертификаты. |
4 | 4 |
|
5 |
| -Если у вас аккаунт компании (юр. лица), то сертификаты генерируются автоматически и делать ничего не нужно. |
| 5 | +> Передавать логин-пароль от вашего Apple ID — небезопасно, не делайте так |
6 | 6 |
|
7 |
| -Статья написана по шагам, делать сверху-вниз: |
8 |
| -- Сначала делаем подпись для сертификата |
| 7 | +Сертификаты можно сделать вручную или через API. В этой статье разберем ручной способ. |
| 8 | + |
| 9 | +Вот что будем делать по шагам: |
| 10 | +- Сначала запрос на подпись для сертификата |
9 | 11 | - Создадим сертификат
|
10 | 12 | - Объединим этот сертификат с ключом
|
11 |
| -- Регистриурем приложение (если ещё не зарегистрировали) |
12 |
| -- На основе сертификата сделаем профаил — именно он нужен, чтобы выгружать приложения |
| 13 | +- Регистриурем приложение (если ещё не нет) |
| 14 | +- На основе сертификата сделаем профайл — именно он нужен, чтобы выгружать приложения |
13 | 15 |
|
14 | 16 | # Запрос сертификата
|
15 | 17 |
|
16 |
| -Сначала сделаем специальный запрос — это файл с расширением `.certSigningRequest`. Этот файл нужен, чтобы сделать сертификат. |
| 18 | +Сначала сделаем специальный запрос на сертификат — это файл с расширением `.certSigningRequest`. |
17 | 19 |
|
18 |
| -Откроем *Keychain Access* и создадим файл `CertificateSigningRequest.certSigningRequest`: |
| 20 | +Открываем *Keychain Access* и создаём файл `CertificateSigningRequest.certSigningRequest`: |
19 | 21 |
|
20 | 22 | 
|
21 | 23 |
|
22 |
| -Вводим почту и имя, выбираем *Saved to disk*. В следующем окне просто сохраните файл: |
| 24 | +Вводите почту и имя и выбираем *Saved to disk*. В следующем окне просто сохраните файл: |
23 | 25 |
|
24 |
| - |
| 26 | + |
25 | 27 |
|
26 | 28 | У вас появится файл, он ещё пригодится:
|
27 | 29 |
|
28 | 30 | 
|
29 | 31 |
|
30 |
| -# Делаем сертификат |
| 32 | +> Если у владельца акаунта нет macOS, то запрос-файл делает разработчик и отправляет владельцу аккаунта |
31 | 33 |
|
32 |
| -Сертификат подтверждает что ваше приложение это именно оно. Расширение файла-сертификата `.cer`. |
| 34 | +# Делаем сертификат |
33 | 35 |
|
34 |
| -> Для каждого нового приложения инструкцию нужно повторить |
| 36 | +Сертификат подтверждает что ваше приложение это именно оно. Расширение у файла-сертификата — `.cer`. |
35 | 37 |
|
36 |
| -Откройте свой *Developer Account*, вкладка сертификаты: |
| 38 | +Откройте в *Developer Account* вкладку сертификаты: |
37 | 39 |
|
38 | 40 | 
|
39 | 41 |
|
|
45 | 47 |
|
46 | 48 | 
|
47 | 49 |
|
48 |
| -На этой странице попросит файл-запрос на сертфиикат `.certSigningRequest`, который мы сделали выше. Выбирайте файл и идем дальше: |
| 50 | +На этой странице попросит файл-запрос на сертфиикат `.certSigningRequest`, который мы сделали выше. Выбирайте файл: |
49 | 51 |
|
50 | 52 | 
|
51 | 53 |
|
52 |
| -Сертификат готов. Скачайте его, он ещё пригодится: |
| 54 | +Сертификат готов — скачайте его, он ещё пригодится: |
53 | 55 |
|
54 | 56 | 
|
55 | 57 |
|
56 | 58 | # Объединяем сертификат и ключ
|
57 | 59 |
|
58 |
| -Дальше нам нужен файл с расширением `.p12`. Он хранит связку сертификат + ключ. |
| 60 | +Дальше нужен файл с расширением `.p12`. Он хранит связку сертификат/ключ. |
59 | 61 |
|
60 |
| -Кликните два раза по файлу `distribution.cer`, он должен открыться в *Keychain Access*. |
| 62 | +Кликните два раза по файлу `distribution.cer`, он откроется *Keychain Access*. |
61 | 63 |
|
62 | 64 | > Если ничего не происходит, просто найдите последний загруженный сертификат *Apple Distribution* по дате. Дата истечения будет через год
|
63 | 65 |
|
64 | 66 | 
|
65 | 67 |
|
66 |
| -Разверните выпадайку слева от сертификата и выделите сертификат и приватный ключ. Дальше жмем правую кнопку и выбираем `Export 2 items...` |
| 68 | +Разверните выпадайку (слева от сертификата) и выделите сертификат и приватный ключ. Дальше нажмите правую кнопку и выберите `Export 2 items...` |
67 | 69 |
|
68 |
| - |
| 70 | + |
69 | 71 |
|
70 | 72 | Сохраняем файл:
|
71 | 73 |
|
72 | 74 | 
|
73 | 75 |
|
74 |
| -Дальше оставьте поля пустыми и нажмите ok: |
| 76 | +Ставим пароль сертификату, можно оставить пустым: |
75 | 77 |
|
76 | 78 | 
|
77 | 79 |
|
|
81 | 83 |
|
82 | 84 | Получим файл `Certificates.p12`:
|
83 | 85 |
|
84 |
| - |
| 86 | + |
85 | 87 |
|
86 | 88 | # Регистрируем приложение
|
87 | 89 |
|
88 |
| -> Если у вас уже есть приложение, этот шаг можно пропустить |
| 90 | +> Если у вас уже есть приложение, этот шаг пропускаем |
89 | 91 |
|
90 | 92 | `App ID` это уникальный идентификатор приложения. Он связывает приложения с сервисами Apple, такими как Push Notifications, iCloud, Game Center и др.
|
91 | 93 |
|
92 |
| -Идем снова в *Developer account*, выбираем *Identifiers* и жмем плюс: |
| 94 | +Идем в *Developer Account* во вкладку *Identifiers* и жмем плюс: |
93 | 95 |
|
94 | 96 | 
|
95 | 97 |
|
96 | 98 | Выбираем *App IDs*, далее *App*:
|
97 | 99 |
|
98 | 100 | 
|
99 | 101 |
|
100 |
| -Здесь в *Description* вводим название приложения. В *Bundle ID* указываем бандл приложения. `Explicit` - используется для подписи только одного приложения. `Wildcard` - используется для подписи нескольких приложений. |
| 102 | +Здесь в *Description* введите название приложения, а в *Bundle ID* бандл. `Explicit` - используется для подписи только одного приложения. `Wildcard` - используется для подписи нескольких приложений. |
101 | 103 |
|
102 |
| -> Подробнее про Explicit и Wildcard, [здесь](https://developer.apple.com/library/archive/qa/qa1713/_index.html): |
| 104 | +> Подробнее про Explicit и Wildcard [по ссылке](https://developer.apple.com/library/archive/qa/qa1713/_index.html): |
103 | 105 |
|
104 | 106 | 
|
105 | 107 |
|
106 |
| -Проверяем правильно ли все заполнили и жмем *Register*: |
| 108 | +Когда заполнили поля, жмём *Register*: |
107 | 109 |
|
108 |
| -> Если получили ошибку проверьте поле Bundle ID, чаще всего проблема именно в нем. |
| 110 | +> Если получили ошибку проверьте поле Bundle ID |
109 | 111 |
|
110 | 112 | 
|
111 | 113 |
|
112 |
| -На странице *Identifiers* появится идентификатор вашего приложения: |
| 114 | +На странице *Identifiers* появится идентификатор нового приложения: |
113 | 115 |
|
114 | 116 | 
|
115 | 117 |
|
116 | 118 | # Provisioning Profile
|
117 | 119 |
|
118 |
| -`Provisioning Profile` связывает всё вместе — Apple Developer Account, App ID, сертификаты и зарегистрированные устройства. Это файл с расширением `.mobileprovision`. |
| 120 | +`Provisioning Profile` связывает всё вместе — Apple Developer Account, App ID, сертификаты и устройства. |
119 | 121 |
|
120 |
| -Идем во вкладку *Profiles* жмем кнопку *Generate a profile* или плюс: |
| 122 | +Это файл с расширением `.mobileprovision`. |
| 123 | + |
| 124 | +Идем во вкладку *Profiles*, жмем кнопку *Generate a profile*: |
121 | 125 |
|
122 | 126 | 
|
123 | 127 |
|
124 | 128 | Выбираем *App Store Connect*:
|
125 | 129 |
|
126 | 130 | 
|
127 | 131 |
|
128 |
| -В `App ID` выбираем нужный *Bundle ID* из списка: |
| 132 | +В `App ID` выбираем нужный `Bundle ID` из списка: |
129 | 133 |
|
130 | 134 | 
|
131 | 135 |
|
132 | 136 | Выбираем недавно созданный сертификат (проверяй дату когда истекает):
|
133 | 137 |
|
134 | 138 | 
|
135 | 139 |
|
136 |
| -В поле Provisioning Profile Name введите имя приложения + *Distribution*. Жмем *Generate*: |
| 140 | +Заполните имя *Provisioning Profile Name* и жмем *Generate*: |
137 | 141 |
|
138 | 142 | 
|
139 | 143 |
|
140 | 144 | Осталось скачать файл:
|
141 | 145 |
|
142 | 146 | 
|
143 | 147 |
|
144 |
| -Получаем файл `Appname_Distribution.mobileprovision`: |
| 148 | +Получаем файл с вашим именем и расгирением `.mobileprovision`: |
145 | 149 |
|
146 | 150 | 
|
147 | 151 |
|
|
151 | 155 |
|
152 | 156 | 
|
153 | 157 |
|
154 |
| -Теперь разработчик идет в Xcode-проект. Нужно перейти в Project Settings и выбрать тарегт. На вкладке *Signing & Capabilities* отключаем `Automatically manage signing`, выбираем нужный Team ID и импортируем Provisioning Profile: |
| 158 | +Теперь разработчик идет в Xcode-проект в Project Settings и выбрать тарегт. На вкладке *Signing & Capabilities* отключаем `Automatically manage signing`, выбираем нужный Team ID и импортируем Provisioning Profile: |
155 | 159 |
|
156 | 160 | 
|
157 | 161 |
|
158 |
| -Теперь разработчик сможет выгружать приложения на ваш индивидуальный аккаунт. |
| 162 | +Готово! Теперь разработчик сможет выгружать приложения на индивидуальный аккаунт. |
| 163 | + |
| 164 | +> Инструкцию не нужно повторять для каждого приложения, а только если меняется Profile |
0 commit comments