Skip to content

Commit eabab8a

Browse files
committed
Updated article about certs.
1 parent 8766071 commit eabab8a

File tree

2 files changed

+54
-55
lines changed

2 files changed

+54
-55
lines changed
Lines changed: 50 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,75 +1,81 @@
1-
Разработчик может разрабатывать, но не может просто так в вашем индивидуальном аккаунте выгружать приложения. Для этого нужно сделать сертификат вручную и передать разработчику.
1+
Если у вас индивидуальный аккаунт разработчика (на физ. лицо), то сторонний разработчик не сможет выгрузить билд. Для этого владельцу аккаунта нужно сделать сертификаты вручную.
22

3-
> Если у вас аккаунт компании, то так делать не нужно. Все будет работать автоматически.
3+
> Может появиться идея передать логин-пароль, так делать небезопасно
44
5-
Как это будет выглядеть по шагам:
6-
- Делаем запрос на подпись
5+
Если у вас аккаунт компании (юр. лица), то сертификаты генерируются автоматически и делать ничего не нужно.
6+
7+
Статья написана по шагам, делать сверху-вниз:
8+
- Сначала делаем подпись для сертификата
79
- Создадим сертификат
810
- Объединим этот сертификат с ключом
9-
- Опциональный шаг, если у вас нет App ID приложения зарегистрируем его
10-
- Сделаем на основе сертификата профаил, он отвечает за то чтобы мы могли выгружать приложения
11+
- Регистриурем приложение (если ещё не зарегистрировали)
12+
- На основе сертификата сделаем профаил — именно он нужен, чтобы выгружать приложения
13+
14+
# Запрос сертификата
1115

12-
# Подготовка
16+
Сначала сделаем специальный запрос — это файл с расширением `.certSigningRequest`. Этот файл нужен, чтобы сделать сертификат.
1317

14-
Нужно создать специальный запрос, это файл с расширением `.certSigningRequest`. Он нужен для создания сертификатов, подписания приложений и их публикации в App Store.
18+
Откроем *Keychain Access* и создадим файл `CertificateSigningRequest.certSigningRequest`:
1519

16-
Создаем файл `CertificateSigningRequest.certSigningRequest` на вашем маке. Это делается с помощью приложения **Keychain Access**.
20+
![Запрос в центре сертификации](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/keychain-request.png)
1721

18-
![Запрос сертификата в центре сертификации](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/keychain-request.png)
22+
Вводим почту и имя, выбираем *Saved to disk*. В следующем окне просто сохраните файл:
1923

20-
Вводим свою почту и имя, выбираем *Saved to disk*. В следующем окне просто сохраните файл.
24+
![Сохраняем подпись сертификата](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/keychain-sert-info.png?v=2)
2125

22-
![Сохранение сертификата](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/keychain-sert-info.png?v=2)
26+
У вас появится файл, он ещё пригодится:
2327

24-
У вас появится файл `CertificateSigningRequest.certSigningRequest`:
28+
![Готовый файл `.certSigningRequest`](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/keychain-sert-created.png?v=2)
2529

26-
![Создание CertificateSigningRequest.certSigningRequest](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/keychain-sert-created.png?v=2)
30+
# Делаем сертификат
2731

28-
# Создаем сертификат
32+
Сертификат подтверждает что ваше приложение это именно оно. Расширение файла-сертификата `.cer`.
2933

30-
Он подтверждает что ваше приложение это именно оно. Файл будет с расширением `.cer`
34+
> Для каждого нового приложения инструкцию нужно повторить
3135
32-
Идем в свой **Developer account**, в сертификаты:
36+
Откройте свой *Developer Account*, вкладка сертификаты:
3337

34-
![Developer account Certificates](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/main-sert.png)
38+
![Вкладка с сертификатами](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/main-sert.png)
3539

36-
Чтобы добавить новый сертификат, жмем плюс:
40+
Чтобы сделать новый сертификат, жмите плюс:
3741

3842
![Добавляем сертификат](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/add-sert.png)
3943

4044
Выбираем *Apple Distribution* и жмем *Continue*:
4145

4246
![Apple Distribution](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/new-sert.png)
4347

44-
На странице создания нового сертификата в поле *Choose File*, вставляем ранее сгенерированный файл и жмем *Continue*:
48+
На этой странице попросит файл-запрос на сертфиикат `.certSigningRequest`, который мы сделали выше. Выбирайте файл и идем дальше:
4549

46-
![Добавляем CertificateSigningRequest](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/select-new-sert.png)
50+
![Добавляем `.certSigningRequest`](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/select-new-sert.png)
4751

48-
Сертификат создан, скачиваем его:
52+
Сертификат готов. Скачайте его, он ещё пригодится:
4953

5054
![Скачиваем сертификат](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/download-sert.png)
5155

5256
# Объединяем сертификат и ключ
5357

54-
Файлы `Certificates.p12` используются для передачи и хранения сертификатов и связанных с ними закрытых ключей.
58+
Дальше нам нужен файл с расширением `.p12`. Он хранит связку сертификат + ключ.
59+
60+
Кликните два раза по файлу `distribution.cer`, он должен открыться в *Keychain Access*.
5561

56-
После двойного клика по файлу `distribution.cer`, он откроется в **Keychain Access**. Если этого не произошло, просто найдите последний загруженный сертификат *Apple Distribution* по дате. Дата истечения будет через год.
62+
> Если ничего не происходит, просто найдите последний загруженный сертификат *Apple Distribution* по дате. Дата истечения будет через год
5763
5864
![Apple Distribution сертификат](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/distribution-sert.png)
5965

60-
Раскрываем сертификат и выделяем сертификат вместе с приватным ключом. Жмем правую кнопку и выбираем `Export 2 items...`
66+
Разверните выпадайку слева от сертификата и выделите сертификат и приватный ключ. Дальше жмем правую кнопку и выбираем `Export 2 items...`
6167

6268
![Экспорт сертификата с ключом](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/export-distribution-sert.png)
6369

64-
Назвать файл можно как угодно, я сохраню как есть:
70+
Сохраняем файл:
6571

6672
![Имя для сертификата](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/create-sert-p12.png)
6773

68-
Далее оставляем все поля пустыми и жмем *ok*:
74+
Дальше оставьте поля пустыми и нажмите ok:
6975

7076
![Пароль для сертификата](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/sert-p12-non-pass.png)
7177

72-
В связке ключей вводим пароль от своего мака и жмем *Always Allow*:
78+
Тут попросит пароль от вашего мака — вводите и нажмите *Always Allow*:
7379

7480
![Вводим пароль от вашего мака](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/sert-p12-system-pass.png)
7581

@@ -79,11 +85,11 @@
7985

8086
# Регистрируем приложение
8187

82-
> Если у вас есть приложение, можно простить этот пункт.
88+
> Если у вас уже есть приложение, этот шаг можно пропустить
8389
84-
`App ID` это уникальный идентификатор, используемый для регистрации и управления приложениями. `App ID` связывает приложения с различными сервисами Apple, такими как Push Notifications, iCloud, Game Center и другими.
90+
`App ID` это уникальный идентификатор приложения. Он связывает приложения с сервисами Apple, такими как Push Notifications, iCloud, Game Center и др.
8591

86-
Идем снова в **Developer account**, выбираем *Identifiers* и жмем плюс:
92+
Идем снова в *Developer account*, выбираем *Identifiers* и жмем плюс:
8793

8894
![Вкладка Identifiers](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/identifiers.png)
8995

@@ -97,63 +103,56 @@
97103
98104
![Регистрация App ID](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/register-app-id.png)
99105

100-
Если нужно Включите *Sign in with Apple*. Поставьте галочку, нажмите *Edit* и введите свой *Notification Endpoint*.
101-
102-
![Sign in with Apple](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/sign-in-with-apple.png)
103-
104106
Проверяем правильно ли все заполнили и жмем *Register*:
105107

106108
> Если получили ошибку проверьте поле Bundle ID, чаще всего проблема именно в нем.
107109
108110
![Регистрируем App ID](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/end-register-app-id.png)
109111

110-
После успешной регистрации, на странице *Identifiers* появится идентификатор вашего приложения:
112+
На странице *Identifiers* появится идентификатор вашего приложения:
111113

112114
![Идентификатор приложения](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/identifiers-list.png)
113115

114-
# Специальный профиль для приложения
116+
# Provisioning Profile
115117

116-
`Provisioning Profile` связывает Apple Developer Account, App ID, сертификаты и зарегистрированные устройства. Это файл с расширением `.mobileprovision`.
118+
`Provisioning Profile` связывает всё вместе — Apple Developer Account, App ID, сертификаты и зарегистрированные устройства. Это файл с расширением `.mobileprovision`.
117119

118-
После создания ID, идем в меню *Profiles* жмем кнопку *Generate a profile* или плюс:
120+
Идем во вкладку *Profiles* жмем кнопку *Generate a profile* или плюс:
119121

120122
![Вкладка Profiles](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/profiles.png)
121123

122124
Выбираем *App Store Connect*:
123125

124126
![App Store Connect](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/new-profile.png)
125127

126-
В `App ID` выбираем нужный *bundle id* из списка:
128+
В `App ID` выбираем нужный *Bundle ID* из списка:
127129

128130
![Выбираем App ID](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/generate-profile-app-id.png)
129131

130-
Выбираем недавно созданный сертификат, смотрим на дату истечения:
132+
Выбираем недавно созданный сертификат (проверяй дату когда истекает):
131133

132134
![Добавляем сертификат](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/generate-profile-select-sert.png)
133135

134-
В поле `Provisioning Profile` *Name* вводим название приложения + **Distribution** и жмем *Generate*:
136+
В поле Provisioning Profile Name введите имя приложения + *Distribution*. Жмем *Generate*:
135137

136138
![Название для Provisioning Profile](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/generate-profile-name.png)
137139

138-
Осталось только скачать файл:
140+
Осталось скачать файл:
139141

140142
![Скачиваем Provisioning Profile](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/download-profile.png)
141143

142144
Получаем файл `Appname_Distribution.mobileprovision`:
143145

144146
![Provision Profile](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/created-profile.png)
145147

146-
# Передаем сертификат и профиль разработчику
148+
# Передаем файлы разработчику
147149

148-
Передаем разработчику файл `.p12` и `Provision Profile`.
149-
Далее нужно дважды щелкнуть на полученный файл `.p12` или использовать импорт в **Keychain Access**.
150+
Передаем разработчику файл `.p12` и `Provision Profile`. Дальше разработчику нужно дважды щелкнуть на файл `.p12` или импортировать в *Keychain Access*:
150151

151-
![Импортируем Certificates.p12](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/add-p12.png)
152+
![Импортируем `.p12`](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/add-p12.png)
152153

153-
Чтобы добавить `Provision Profile` открываем Xcode с проектом. Переходим в Project Settings и выбираем target. На вкладке *Signing & Capabilities* отключаем **Automatically manage signing**, выбираем нужный `Team ID` и импортируем полученный `Provisioning Profile`.
154+
Теперь разработчик идет в Xcode-проект. Нужно перейти в Project Settings и выбрать тарегт. На вкладке *Signing & Capabilities* отключаем `Automatically manage signing`, выбираем нужный Team ID и импортируем Provisioning Profile:
154155

155156
![Импортируем Provision Profile](https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/add-profile-xcode.png)
156157

157-
Теперь разработчик с вашего индивидуального аккаунта сможет выгружать приложение.
158-
159-
> Если у вас юридический акканут, так делать не нужно.
158+
Теперь разработчик сможет выгружать приложения на ваш индивидуальный аккаунт.

ru/tutorials/meta/tutorials.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -285,15 +285,15 @@
285285
"added_date": "28.05.2024"
286286
},
287287
"cert-and-profile-for-personal-developer-account": {
288-
"title": "Создание сертификата и профайла",
289-
"description": "Сделаем сертификаты в ручную и добавим разработчика на индивидуальном аккаунте",
288+
"title": "Как выгрузить приложение на индивидуальный аккаунт разработчика",
289+
"description": "В статье пошагово сделаем сертификат и профайл вручную — так разработчик, которого добавили в иднивидуальный аккаунт, сможет выгружать билд",
290290
"categories": ["development", "app-store-connect"],
291291
"author": "sparrowcode",
292292
"editors": [],
293293
"keywords": ["certificate", "profile", "p12", "provision profile", "apple distribution"],
294294
"graph_image": "https://cdn.sparrowcode.io/tutorials/cert-and-profile-for-personal-developer-account/main_page_certificates.png",
295295
"google_structured_images": [],
296-
"updated_date": "16.06.2024",
297-
"added_date": "16.06.2024"
296+
"updated_date": "29.07.2024",
297+
"added_date": "29.07.2024"
298298
}
299299
}

0 commit comments

Comments
 (0)