Skip to content

Commit 6972e03

Browse files
authored
Merge pull request #296 from Red-ax/main
add tutorial creating-certificate-and-profile
2 parents 2936d97 + 593ceff commit 6972e03

File tree

2 files changed

+174
-0
lines changed

2 files changed

+174
-0
lines changed
Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,162 @@
1+
Если у вас индивидуальный аккаунт и вы хотите добавить разработчика, нужно сделать сертификат вручную.
2+
Добавленный разработчик может разрабатывать, но не может просто так в вашем аккаунте выгружать приложения.
3+
4+
> Если у вас аккаунт компании, то так делать не нужно. Все будет работать автоматически.
5+
6+
Смотрите нам нужен сертификат.
7+
Для этого нужно создать запрос на подписание, сделаем это в первом шаге.
8+
Сертификат нам нужно подписать, это мы будем делать во втором шаге.
9+
Во третьем шаге сгенерируем этот сертификат с подписью.
10+
Четвертый шаг опциональный, если у вас нет App ID приложения зарегистрируем его.
11+
В пятом шаге делаем на основе сертификата профаил, он отвечает за то чтобы мы могли выгружать приложения.
12+
13+
# Запрос на подписание сертификата
14+
15+
`CertificateSigningRequest`, далее CSR используется для запроса цифрового сертификата. CSR нужен для создания сертификатов разработчика, для подписывания приложений и их публикации в App Store.
16+
17+
Чтобы вручную сгенерировать сертификат, нужно создать файл CSR на вашем маке. Это делается с помощью приложения **Keychain Access**.
18+
19+
**Keychain Access** > **Certificate Assistant** > **Request a Certificate From a Certificate Authority...**
20+
21+
![Запрос сертификата в центре сертификации](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/keychain-request.png)
22+
23+
Вводим свою почту и имя, выбираем Saved to disk и жмем Continue. В следующем окне просто сохраняем фаил.
24+
25+
![Сохранение сертификата](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/keychain-sert-info.png)
26+
27+
Получаем файл CertificateSigningRequest.certSigningRequest:
28+
29+
![Создание CertificateSigningRequest.certSigningRequest](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/keychain-sert-created.png)
30+
31+
# Сертификат для подписи приложений
32+
33+
`distribution.cer` — это цифровой сертификат, который выдается разработчику и используется для подписывания приложений перед их публикацией в App Store или для распространения через другие официальные каналы. Сертификат подтверждает подлинность и целостность приложения.
34+
35+
Идем в свой **Developer account**, в сертификаты:
36+
37+
![Developer account Certificates](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/main-sert.png)
38+
39+
Чтобы добавить новый сертификат, жмем плюс:
40+
41+
![Добавляем сертификат](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/add-sert.png)
42+
43+
Выбираем **Apple Distribution** и жмем Continue:
44+
45+
![Apple Distribution](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/new-sert.png)
46+
47+
На странице создания нового сертифика в поле **Choose File**, вставляем ранее сгенерированный файл и жмем Continue:
48+
49+
![Добавляем CertificateSigningRequest](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/select-new-sert.png)
50+
51+
Сертификат создан, скачиваем его:
52+
53+
![Скачиваем сертификат](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/download-sert.png)
54+
55+
# Сертификат с ключами
56+
57+
Файлы `Certificates.p12` используются для передачи и хранения сертификатов разработчика и связанных с ними закрытых ключей.
58+
59+
Скачанный сертификат файл из предыдущей главы это `distribution.cer`.
60+
61+
После двойного клика по файлу, он откроется в **Keychain Access**. Если этого не произошло, просто найдите последний загруженный сертификат **Apple Distribution** по дате. Дата истечения будет через год.
62+
63+
![Apple Distribution сертификат](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/distribution-sert.png)
64+
65+
Раскрываем сертификат и выделяем сертификат вместе с приватным ключем. Жмем правую кнопку и выбираем `Export 2 items...`
66+
67+
![Экспорт сертификата с ключем](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/export-distribution-sert.png)
68+
69+
Назвать файл можно как угодно, я сохраню как есть:
70+
71+
![Имя для сертификата](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/create-sert-p12.png)
72+
73+
Далее оставляем все поля пустыми и жмем ok:
74+
75+
![Пароль для сертификата](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/sert-p12-non-pass.png)
76+
77+
В связке ключей вводим пароль от своего мака и жмем **Always Allow**:
78+
79+
![Вводим пароль от вашего мака](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/sert-p12-system-pass.png)
80+
81+
Получим файл `Certificates.p12`:
82+
83+
![Сертификат .p12](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/save-sert-p12.png)
84+
85+
# App ID приложения
86+
87+
Если у вас есть приложение, можно простить этот пункт.
88+
89+
`App ID` это уникальный идентификатор, используемый для регистрации и управления приложениями в экосистеме Apple. `App ID` связывает приложения с различными сервисами Apple, такими как Push Notifications, iCloud, Game Center и другими.
90+
91+
Идем снова в **Developer account**, выбираем **Identifiers** и жмем плюс:
92+
93+
![Вкладка Identifiers](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/identifiers.png)
94+
95+
Выбираем **App IDs**, далее **App**:
96+
97+
![App IDs и App](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/register-identifier-app-id.png)
98+
99+
Здесь в Description вводим название приложения. В Bundle ID указываем бандл приложения.
100+
Explicit - используется для подписи только одного приложения.
101+
Wildcard - используется для подписи нескольких приложений.
102+
103+
Подробнее про Explicit и Wildcard, [здесь](https://developer.apple.com/library/archive/qa/qa1713/_index.html):
104+
105+
![Регистрация App ID](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/register-app-id.png)
106+
107+
Если нужно Включите **Sign in with Apple**. Поставьте галочку, нажмите Edit и введите свой Notification Endpoint.
108+
109+
![Sign in with Apple](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/sign-in-with-apple.png)
110+
111+
Проверяем правильно ли все заполнили и жмем Register:
112+
113+
> Если получили ошибку проверьте поле Bundle ID, чаще всего проблема именно в нем.
114+
115+
![Регистрируем App ID](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/end-register-app-id.png)
116+
117+
После успешной регистрации, на странице **Identifiers** появится идентификатор вашего приложения:
118+
119+
![Идентификатор приложения](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/identifiers-list.png)
120+
121+
# Profile для выгрузки приложений
122+
123+
`Provisioning Profile` позволяет запускать и тестировать приложения на реальных устройствах Apple и загружать их в App Store. Он связывает ваш Apple Developer Account, App ID, сертификаты и зарегистрированные устройства.
124+
125+
После создания ID, идем в меню **Profiles** жмем кнопку Generate a profile или плюс:
126+
127+
![Вкладка Profiles](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/profiles.png)
128+
129+
Выбираем App Store Connect:
130+
131+
![App Store Connect](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/new-profile.png)
132+
133+
В `App ID` выбираем нужный bundle id из списка:
134+
135+
![Выбираем App ID](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/generate-profile-app-id.png)
136+
137+
Выбираем недавно созданный сертификат, смотрим на дату истечения:
138+
139+
![Добавляем сертификат](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/generate-profile-select-sert.png)
140+
141+
В поле `Provisioning Profile` Name вводим название приложения + **Distribution** и жмем Generate:
142+
143+
![Название для Provisioning Profile](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/generate-profile-name.png)
144+
145+
Осталось только скачать файл:
146+
147+
![Скачиваем Provisioning Profile](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/download-profile.png)
148+
149+
Получаем файл Appname_Distribution.mobileprovision:
150+
151+
![Provision Profile](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/created-profile.png)
152+
153+
# Передаем сертификат и профаил другому разработчику
154+
155+
Передаем разработчику файл `.p12` и `Provision Profile`.
156+
Далее нужно дважды щелкнуть на полученный файл `.p12` или использовать импорт в **Keychain Access**.
157+
158+
![Импортируем Certificates.p12](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/add-p12.png)
159+
160+
Чтобы добавить `Provision Profile` открываем Xcode с проектом. Переходим в Project Settings и выбираем target. На вкладке Signing & Capabilities отключаем **Automatically manage signing**, выбираем нужный `Team ID` и импортируем полученный `Provisioning Profile`.
161+
162+
![Импортируем Provision Profile](https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/add-profile-xcode.png)

ru/tutorials/meta/tutorials.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,5 +283,17 @@
283283
"google_structured_images": [],
284284
"updated_date": "28.05.2024",
285285
"added_date": "28.05.2024"
286+
},
287+
"creating-certificate-and-profile": {
288+
"title": "Создание сертификата и профайла",
289+
"description": "Сделаем сертификаты в ручную и добавим разработчика на индивидуальном аккаунте",
290+
"categories": ["development", "app-store-connect"],
291+
"author": "sparrowcode",
292+
"editors": [],
293+
"keywords": ["certificate", "profile", "p12", "provision profile", "apple distribution"],
294+
"graph_image": "https://cdn.sparrowcode.io/tutorials/creating-certificate-and-profile/main_page_certificates.png",
295+
"google_structured_images": [],
296+
"updated_date": "16.06.2024",
297+
"added_date": "16.06.2024"
286298
}
287299
}

0 commit comments

Comments
 (0)