[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"page-ru-/errors/ios/ios-certificate-expired":3,"mdc--mmgiy6-key":500,"mdc-ecmj5k-key":511,"mdc--tx5fzw-key":519,"mdc-tzkmuu-key":527,"mdc--e8sn6m-key":548,"mdc-kbub4g-key":563,"mdc-6lozqo-key":592,"mdc--m32psh-key":616,"related-/errors/ios/ios-certificate-invalid,/errors/ios/ios-certificate-not-found,/guides/ios/ios-app-signing":635},{"id":4,"title":5,"appliesTo":6,"author":11,"body":12,"canonical":435,"code":34,"createdAt":436,"description":437,"difficulty":438,"draft":439,"estimatedTime":440,"extension":441,"faq":442,"howToSteps":452,"howToTotalTime":468,"image":435,"keywords":469,"locale":478,"meta":479,"navigation":480,"path":481,"platform":482,"related":483,"section":487,"seo":488,"severity":489,"stem":490,"summary":491,"tags":492,"twitterCreator":435,"twitterSite":435,"type":498,"updatedAt":436,"__hash__":499},"content_ru/errors/ios/ios-certificate-expired.md","Как исправить просроченный сертификат iOS в Xcode и на устройстве (2 варианта)",[7,8,9,10],"iOS 16","iOS 17","Xcode 14","Xcode 15","FixPedia Team",{"type":13,"value":14,"toc":425},"minimark",[15,20,36,40,68,72,77,166,172,176,254,258,263,348,351,355,418,421],[16,17,19],"h2",{"id":18},"что-означает-ошибка-cert_expired","Что означает ошибка CERT_EXPIRED",[21,22,23,24,28,29,35],"p",{},"Вы столкнулись с сообщением ",[25,26,27],"strong",{},"«Your credentials are expired»"," или Xcode отказывается подписывать бинарный файл, потому что привязанный сертификат ",[25,30,31],{},[32,33,34],"code",{},"CERT_EXPIRED"," закончился. Такое происходит, когда срок действия сертификата разработчика или производительности, привязанного к проекту, прошёл, и система блокирует сборку, чтобы защитить пользователей от подписанных устаревшими ключами приложений.",[16,37,39],{"id":38},"причины-возникновения","Причины возникновения",[41,42,43,50,56,62],"ul",{},[44,45,46,49],"li",{},[25,47,48],{},"Ежегодное обновление не выполнено"," – сертификаты Apple действуют 1 год; пропуск продления приводит к истечению срока.",[44,51,52,55],{},[25,53,54],{},"Смена устройств разработки"," – после обновления macOS или iOS старый сертификат может перестать соответствовать требованиям.",[44,57,58,61],{},[25,59,60],{},"Использование старого сертификата после обновления Xcode"," – новая версия Xcode может автоматически отозвать устаревшие сертификаты.",[44,63,64,67],{},[25,65,66],{},"Человеческий фактор"," – легко забыть о напоминании, особенно при интенсивной разработке.",[16,69,71],{"id":70},"способы-решения","Способы решения",[73,74,76],"h3",{"id":75},"способ-1-обновить-существующий-сертификат","Способ 1: Обновить существующий сертификат",[78,79,80,110,146],"ol",{},[44,81,82,85],{},[25,83,84],{},"Экспортируйте просроченный сертификат",[41,86,87,98,104],{},[44,88,89,90,93,94,97],{},"В Xcode откройте ",[25,91,92],{},"Установки профиля"," → ",[25,95,96],{},"Сертификаты",".",[44,99,100,101,97],{},"Щёлкните правой кнопкой мыши по истёкшему сертификату → ",[25,102,103],{},"Экспортировать...",[44,105,106,107,97],{},"Сохраните файл как ",[32,108,109],{},"expired.cer",[44,111,112,115],{},[25,113,114],{},"Продлите сертификат в Apple Developer",[41,116,117,129,135],{},[44,118,119,120,97],{},"Перейдите на страницу ",[25,121,122],{},[123,124,128],"a",{"href":125,"rel":126},"https://developer.apple.com",[127],"nofollow","Certificates",[44,130,131,132,97],{},"Найдите продленный сертификат, нажмите ",[25,133,134],{},"Download",[44,136,137,138,93,140,93,142,145],{},"В Xcode перейдите в ",[25,139,92],{},[25,141,96],{},[25,143,144],{},"Import"," и выберите новый файл.",[44,147,148,151],{},[25,149,150],{},"Обновите связанные профили и ключи",[41,152,153,159],{},[44,154,155,156,158],{},"Вернитесь в ",[25,157,92],{},", найдите профиль, привязанный к сертификату.",[44,160,161,162,165],{},"Нажмите ",[25,163,164],{},"Update",", чтобы связать новый сертификат.",[167,168,169],"blockquote",{},[21,170,171],{},"⚠️ Важно: После обновления убедитесь, что все связанные профили и ключи также актуальны; иначе сборка всё равно будет заблокирована.",[73,173,175],{"id":174},"способ-2-создать-новый-сертификат-и-заменить-старый","Способ 2: Создать новый сертификат и заменить старый",[78,177,178,211,229,244],{},[44,179,180,183],{},[25,181,182],{},"Сгенерируйте новый сертификат разработчика",[41,184,185,196],{},[44,186,187,188,93,190,93,193,97],{},"В Apple Developer нажмите ",[25,189,128],{},[25,191,192],{},"Add +",[25,194,195],{},"Apple Development",[44,197,198,199,202,203,206,207,210],{},"Следуйте инструкциям: выберите тип ключа (",[32,200,201],{},"RSA","), укажите срок действия (минимум 1 год) и сохраните файл (",[32,204,205],{},".cer",") и приватный ключ (",[32,208,209],{},".pem",").",[44,212,213,216],{},[25,214,215],{},"Удалите старый сертификат из Xcode",[41,217,218],{},[44,219,220,221,93,223,225,226,97],{},"В ",[25,222,92],{},[25,224,96],{}," выделите просроченный сертификат и нажмите ",[25,227,228],{},"‑",[44,230,231,234],{},[25,232,233],{},"Импортируйте новый сертификат",[41,235,236],{},[44,237,161,238,240,241,97],{},[25,239,144],{},", выберите новый файл ",[32,242,243],{},"certificate.cer",[44,245,246,249],{},[25,247,248],{},"Обновите профиль и ключ",[41,250,251],{},[44,252,253],{},"Найдите профиль, который использовал старый сертификат, и обновите его аналогично способу 1.",[73,255,257],{"id":256},"способ-3-временный-обходной-путь-только-для-отладки","Способ 3: Временный обходной путь (только для отладки)",[167,259,260],{},[21,261,262],{},"💡 Совет: Это решение снижает безопасность и подходит только для локального тестирования.",[78,264,265,283,342],{},[44,266,267,270],{},[25,268,269],{},"Отключите проверку сертификатов на устройстве",[41,271,272],{},[44,273,274,275,278,279,282],{},"В настройках устройства перейдите в ",[25,276,277],{},"Профили и устройство управления"," → найдите профиль с истёкшим сертификатом → ",[25,280,281],{},"Удалить",". Это временно отключает проверку.",[44,284,285,291,292],{},[25,286,287,288],{},"Используйте флаг ",[32,289,290],{},"--disable-certificate-checks"," (если вы запускаете тесты из командной строки)",[293,294,299],"pre",{"className":295,"code":296,"language":297,"meta":298,"style":298},"language-bash shiki shiki-themes github-light github-dark","xcodebuild -project MyApp.xcodeproj -scheme MyApp -destination 'id=12345ABC' \\\n  -disable-certificate-checks build\n","bash","",[32,300,301,333],{"__ignoreMap":298},[302,303,306,310,314,318,321,324,327,330],"span",{"class":304,"line":305},"line",1,[302,307,309],{"class":308},"sScJk","xcodebuild",[302,311,313],{"class":312},"sj4cs"," -project",[302,315,317],{"class":316},"sZZnC"," MyApp.xcodeproj",[302,319,320],{"class":312}," -scheme",[302,322,323],{"class":316}," MyApp",[302,325,326],{"class":312}," -destination",[302,328,329],{"class":316}," 'id=12345ABC'",[302,331,332],{"class":312}," \\\n",[302,334,336,339],{"class":304,"line":335},2,[302,337,338],{"class":312},"  -disable-certificate-checks",[302,340,341],{"class":316}," build\n",[44,343,344,347],{},[25,345,346],{},"Не забудьте восстановить"," правильный сертификат после завершения отладки.",[349,350],"in-article-ad",{},[16,352,354],{"id":353},"профилактика","Профилактика",[41,356,357,363,406,412],{},[44,358,359,362],{},[25,360,361],{},"Настройте напоминания"," о скором истечении срока действия сертификатов (Apple рассылает уведомления, но до этого можете использовать календарь).",[44,364,365,368,369],{},[25,366,367],{},"Автоматизируйте обновление"," с помощью скриптов, например:\n",[293,370,372],{"className":295,"code":371,"language":297,"meta":298,"style":298},"# Пример скрипта (псевдо-код)\nsecurity find-certificate -i -p -s /path/to/old.cer\n# Замените старый сертификат новым через API Apple\n",[32,373,374,380,400],{"__ignoreMap":298},[302,375,376],{"class":304,"line":305},[302,377,379],{"class":378},"sJ8bj","# Пример скрипта (псевдо-код)\n",[302,381,382,385,388,391,394,397],{"class":304,"line":335},[302,383,384],{"class":308},"security",[302,386,387],{"class":316}," find-certificate",[302,389,390],{"class":312}," -i",[302,392,393],{"class":312}," -p",[302,395,396],{"class":312}," -s",[302,398,399],{"class":316}," /path/to/old.cer\n",[302,401,403],{"class":304,"line":402},3,[302,404,405],{"class":378},"# Замените старый сертификат новым через API Apple\n",[44,407,408,411],{},[25,409,410],{},"Ведите журнал сроков действия"," всех сертификатов в таблице или сервисе-менеджере, чтобы видеть графики обновлений.",[44,413,414,417],{},[25,415,416],{},"Следите за обновлениями Xcode"," – новые версии иногда отзывают устаревшие сертификаты автоматически.",[21,419,420],{},"Своевременное обновление сертификатов сохранит плавный процесс сборки и предотвратит блокировку публикации приложений.",[422,423,424],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}",{"title":298,"searchDepth":335,"depth":335,"links":426},[427,428,429,434],{"id":18,"depth":335,"text":19},{"id":38,"depth":335,"text":39},{"id":70,"depth":335,"text":71,"children":430},[431,432,433],{"id":75,"depth":402,"text":76},{"id":174,"depth":402,"text":175},{"id":256,"depth":402,"text":257},{"id":353,"depth":335,"text":354},null,"2026-08-06 11:49:22","Обнаружили просроченный сертификат в Xcode или при разработке для iOS? Узнайте, как быстро восстановить сертификат, подписать приложение и вернуть сборку в работу за 5 минут.","medium",false,"5-10 мин","md",[443,446,449],{"question":444,"answer":445},"Почему сертификат iOS может оказаться просроченным?","Обычно истекает срок действия сертификата разработчика или производительности, который не был обновлён вовремя. Это может произойти из-за пропуска ежегодного продления или использования старого сертификата после обновления Xcode.",{"question":447,"answer":448},"Как предотвратить появление ошибки истёкшего сертификата?","Регулярно проверяйте сроки действия сертификатов в аккаунте Apple Developer и обновляйте их задолго до истечения. Включите напоминания о продлении и используйте автоматизированные скрипты обновления.",{"question":450,"answer":451},"Можно ли обойти проблему без нового сертификата?","Временным решением может быть отключение проверки сертификатов на устройстве, но это не безопасно. Лучше своевременно обновить или сгенерировать новый сертификат.",[453,456,459,462,465],{"name":454,"text":455},"Открыть ключевую цепочку сертификатов в Xcode","Запустите Xcode, перейдите в **Установки профиля** > **Сертификаты**, найдите просроченный сертификат и щёлкните по нему правой кнопкой мыши.",{"name":457,"text":458},"Экспортировать просроченный сертификат","Выберите **Экспортировать...**, сохраните файл в удобное место (формат .cer). Этот файл понадобится для проверки.",{"name":460,"text":461},"Создать новый сертификат в Apple Developer","На сайте [Apple Developer](https://developer.apple.com) перейдите в **Certificates**, нажмите **Add +**, выберите тип сертификата (разработчика или производительности) и следуйте инструкциям.",{"name":463,"text":464},"Загрузить новый сертификат в Xcode","В Xcode перейдите в **Установки профиля** > **Сертификаты**, нажмите **Import** и выберите сохранённый файл нового сертификата.",{"name":466,"text":467},"Обновить связанные с сертификатом профили и ключи","Вернитесь в **Установки профиля**, обновите привязанные к сертификату профили и ключи, используя кнопку **Update**.","PT8M",[470,471,472,473,474,475,476,477],"просроченный сертификат iOS","истек сертификат","ошибка сертификата Xcode","обновить сертификат iOS","заменить сертификат","код ошибки CERT_EXPIRED","сертификат разработчика просрочен","сертификат производительности просрочен","ru_RU",{},true,"/errors/ios/ios-certificate-expired","ios",[484,485,486],"/errors/ios/ios-certificate-invalid","/errors/ios/ios-certificate-not-found","/guides/ios/ios-app-signing","Ошибки iOS",{"title":5,"description":437},"high","errors/ios/ios-certificate-expired","Просроченный сертификат iOS приводит к сбоям сборки и отказу в публикации приложения. В статье описаны пошаговые способы обновления или замены сертификата в Xcode и на сервере Apple, а также профилактика проблемы.",[493,494,495,496,497],"iOS","Xcode","сертификат","разработка","Apple","error","uQa6_zuvwVjMKGns-bgVzIh9uRCtYVlVkWXg05PI_DA",{"data":501,"body":502},{},{"type":503,"children":504},"root",[505],{"type":506,"tag":21,"props":507,"children":508},"element",{},[509],{"type":510,"value":445},"text",{"data":512,"body":513},{},{"type":503,"children":514},[515],{"type":506,"tag":21,"props":516,"children":517},{},[518],{"type":510,"value":448},{"data":520,"body":521},{},{"type":503,"children":522},[523],{"type":506,"tag":21,"props":524,"children":525},{},[526],{"type":510,"value":451},{"data":528,"body":529},{},{"type":503,"children":530},[531],{"type":506,"tag":21,"props":532,"children":533},{},[534,536,540,542,546],{"type":510,"value":535},"Запустите Xcode, перейдите в ",{"type":506,"tag":25,"props":537,"children":538},{},[539],{"type":510,"value":92},{"type":510,"value":541}," > ",{"type":506,"tag":25,"props":543,"children":544},{},[545],{"type":510,"value":96},{"type":510,"value":547},", найдите просроченный сертификат и щёлкните по нему правой кнопкой мыши.",{"data":549,"body":550},{},{"type":503,"children":551},[552],{"type":506,"tag":21,"props":553,"children":554},{},[555,557,561],{"type":510,"value":556},"Выберите ",{"type":506,"tag":25,"props":558,"children":559},{},[560],{"type":510,"value":103},{"type":510,"value":562},", сохраните файл в удобное место (формат .cer). Этот файл понадобится для проверки.",{"data":564,"body":565},{},{"type":503,"children":566},[567],{"type":506,"tag":21,"props":568,"children":569},{},[570,572,578,580,584,586,590],{"type":510,"value":571},"На сайте ",{"type":506,"tag":123,"props":573,"children":575},{"href":125,"rel":574},[127],[576],{"type":510,"value":577},"Apple Developer",{"type":510,"value":579}," перейдите в ",{"type":506,"tag":25,"props":581,"children":582},{},[583],{"type":510,"value":128},{"type":510,"value":585},", нажмите ",{"type":506,"tag":25,"props":587,"children":588},{},[589],{"type":510,"value":192},{"type":510,"value":591},", выберите тип сертификата (разработчика или производительности) и следуйте инструкциям.",{"data":593,"body":594},{},{"type":503,"children":595},[596],{"type":506,"tag":21,"props":597,"children":598},{},[599,600,604,605,609,610,614],{"type":510,"value":137},{"type":506,"tag":25,"props":601,"children":602},{},[603],{"type":510,"value":92},{"type":510,"value":541},{"type":506,"tag":25,"props":606,"children":607},{},[608],{"type":510,"value":96},{"type":510,"value":585},{"type":506,"tag":25,"props":611,"children":612},{},[613],{"type":510,"value":144},{"type":510,"value":615}," и выберите сохранённый файл нового сертификата.",{"data":617,"body":618},{},{"type":503,"children":619},[620],{"type":506,"tag":21,"props":621,"children":622},{},[623,624,628,630,634],{"type":510,"value":155},{"type":506,"tag":25,"props":625,"children":626},{},[627],{"type":510,"value":92},{"type":510,"value":629},", обновите привязанные к сертификату профили и ключи, используя кнопку ",{"type":506,"tag":25,"props":631,"children":632},{},[633],{"type":510,"value":164},{"type":510,"value":97},[]]