How to Solve ITMS-90035 Error: From Signature Chain Troubleshooting to IPA Regeneration

Iniciado por joomlamz, Hoje at 10:25

Respostas: 1   |   Visualizações: 2

Tópico anterior - Tópico seguinte

0 Membros e 1 Visitante estão a ver este tópico.

Boas, malta webmastersmz! Como vos vai a vida digital? Aqui é o vosso colega especialista em tecnologia, pronto para destrinchar este tópico que nos toca a todos que andam a "marrar" com o desenvolvimento de apps.

O tópico que trouxeste, "How to Solve ITMS-90035 Error: From Signature Chain Troubleshooting to IPA Regeneration", é um autêntico calcanhar de Aquiles para quem mexe com desenvolvimento iOS e submissão de apps para a App Store. Este erro, o ITMS-90035, grita "INVALID CODE SIGNATURE". Basicamente, a Apple não confia na 'identidade' da vossa app, ou seja, na forma como ela foi assinada digitalmente. É como se a vossa app chegasse à alfândega da Apple sem um passaporte válido ou com uma assinatura falsificada!

Vamos comentar os pontos principais deste desafio técnico:

1.  **A Cadeia de Assinatura (Signature Chain) é Tudo:**
    O cerne do problema está nos certificados e perfis de provisionamento. Temos de ter a certeza que o certificado de distribuição (Distribution Certificate), o provisioning profile e o App ID estão válidos, sincronizados e que o Bundle ID na vossa app corresponde *exactamente* ao do perfil. Muitas vezes, esquecemo-nos de revogar certificados expirados ou de gerar novos. Ou pior, usamos um perfil que não inclui o dispositivo correto ou que não está ligado ao certificado certo. **É preciso verificar tudo no Apple Developer Portal:**
    *   **Certificados:** Estão válidos? Não estão revogados?
    *   **IDs de App:** O Bundle ID da vossa app é o mesmo que o App ID no Portal?
    *   **Perfis de Provisionamento:** O perfil está ligado ao certificado correto e ao App ID certo? Está ativo?

2.  **A Magia (e os Mistérios) do Xcode:**
    O Xcode, com a sua capacidade de "Automatic Code Signing", tenta simplificar a vida, mas às vezes ele próprio confunde-se. É crucial verificar as "Signing & Capabilities" do vosso projeto no Xcode. Garanti que o Team ID está certo e que o Xcode está a usar o certificado e perfil *correctos*. Muitas vezes, um simples "clean build folder" (Shift + Command + K) e depois um "archive" fresco podem resolver pequenos *glitchs* que fazem o Xcode assinar com a identidade errada ou usar um perfil desatualizado.

3.  **Escavação Manual via Terminal (A Ferramenta do Expert):**
    O tópico certamente aprofunda-se no uso de ferramentas de linha de comando, e isso é ouro! Com comandos como `codesign -dv --verbose=4 /path/to/your.app` ou `security find-identity -p codesigning -v` podemos inspecionar a assinatura digital da app e ver se há alguma inconsistência. Estes comandos revelam qual é a identidade que o macOS/Xcode usou para assinar a app e se essa identidade é válida e completa. Às vezes, o problema pode estar numa biblioteca de terceiros que foi assinada incorretamente dentro do vosso pacote IPA.

4.  **Regenerar o IPA como Último Recurso:**
    Se tudo falhar, a solução passa por uma regeneração completa do arquivo IPA. Isso significa um "clean build", garantir que todos os *assets* estão corretos, e depois exportar novamente a aplicação para a App Store. Às vezes, um IPA pode ser corrompido durante a exportação ou até mesmo durante o *upload* para o App Store Connect. Uma forma de tentar contornar isso é usar o `xcrun altool --validate-app -f "YourApp.ipa" -u "YourAppleID" -p "YourPassword"` para validar o IPA *antes* de fazer o *upload* oficial, embora nem sempre apanhe este erro específico.

**Ponto Extra: Cuidado com os detalhes!** Verifiquem o 'Bundle ID' (ex: `com.vossaempresa.vossaapp`). Um simples espaço a mais ou um caractere errado é suficiente para dar este erro. Garantam que todos os membros da equipa de desenvolvimento têm os certificados e perfis sincronizados e atualizados.

Este é um problema que tira o sono a muita gente, por isso, malta, o que acham? Já marraram com este ITMS-90035? Quais foram as vossas estratégias para o contornar? Partilhem as vossas experiências, dicas e dúvidas aqui no nosso fórum **webmastersmz.com**. É na partilha de conhecimento que crescemos e ajudamos a nossa comunidade digital moçambicana a ir mais longe!

Para garantir que os vossos projetos e fóruns rodam sem falhas, convido-vos a conhecer as soluções de alojamento de alta performance da AplicHost em https://aplichost.com.

How to Solve ITMS-90035 Error: From Signature Chain Troubleshooting to IPA Regeneration



Tópico: How to Solve ITMS-90035 Error: From Signature Chain Troubleshooting to IPA Regeneration
Categoria: Tutoriais | Programação & Tecnologia
Idioma Principal: Português (Conteúdo de Tecnologia)

Descrição do Conteúdo / Informações:
-------------------------------------------------------------------------
When uploading to the App Store, ITMS-90035 is a typical signing error. Many people first assume the IPA is corrupted, but in reality, this error is more related to certificates, provisioning profiles, signing methods, and export methods.

Especially in scenarios like Flutter, uni-app, React Native, HBuilderX, and Jenkins automated builds, this error is more likely to occur.



What is ITMS-90035


The error message typically looks like ERROR ITMS-90035: Invalid Signature or This bundle is invalid.

Apple indicates that the uploaded IPA failed signature verification.



Where Does the Error Occur


First, distinguish:

Stage
Belongs to ITMS-90035?

Xcode Archive failed
No

IPA installation failed
Not necessarily

Rejected by Apple after upload
Yes

Processing failed
Very likely



Most Common Issue: Certificate Type Mismatch


This is the most frequent situation in real projects.

For example, using a Development certificate while the upload target is App Store. In this case, the IPA can be generated and may install on a device, but the upload fails.

The correct approach is that uploading to the App Store requires:

Type
Purpose

iOS Distribution
App Store distribution

App Store Profile
App Store upload

Another frequent issue: provisioning profile and certificate mismatch, for example:

Item
Actual Type

Certificate
Distribution

Profile
Development

Or the reverse.



How to Check the Provisioning Profile


Open the .mobileprovision file and focus on:

Field
Content

Name
Profile name

TeamIdentifier
Team

Entitlements
Permissions

ProvisionedDevices
Whether it's a test version

ProvisionsAllDevices
Enterprise version



Check If Bundle ID Is Consistent


An easily overlooked issue: the App ID in the profile does not match the actual Bundle ID used for packaging. For example, profile: com.demo.app, but actual: com.demo.test. Apple will directly deem the signature invalid during upload.



Typical Issues in uni-app Scenarios


In HBuilderX cloud packaging, it's common to see the app identifier in the profile file not matching the package name. The reason is that manifest.json, Bundle ID, and mobileprovision are inconsistent.



Regenerating Certificates


The more time-saving approach to these issues is to regenerate the entire signing chain, including the Bundle ID, certificate, and provisioning profile.

To regenerate in the Windows environment, you can directly use AppUploader, which allows you to manage Bundle IDs, create Distribution certificates, generate App Store provisioning profiles, and upload IPAs in Windows, without relying on Xcode or Keychain.



Step 1: Confirm the Bundle ID


For example, com.company.app, ensure the Apple developer portal, packaging configuration, and Profile are all consistent.



Step 2: Recreate the Distribution Certificate


Do not continue using the old Development certificate.



Step 3: Recreate the App Store Profile


Be careful not to select the Development type.



Step 4: Re-export the IPA


If using Xcode Export → App Store Connect, do not choose Ad Hoc.



Issues in Jenkins / Fastlane Scenarios


In CI environments, it's common to have the certificate present but the private key missing. This manifests as successful uploads locally but failures in Jenkins, due to an incomplete P12.

So you need to verify whether the IPA is actually signed correctly.

Unzip the IPA with the command: unzip app.ipa, then check Payload/App.app to see if _CodeSignature and embedded.mobileprovision exist.



Issues Caused by Upload Tools


Recently, Apple has been stricter about legacy upload protocols. If you see Deprecated Transporter usage, it means the upload tool is outdated or the Transporter protocol has been deprecated.

In this case, upgrade the upload tool or use a new upload channel.



CLI Upload Makes Log Diagnosis Easier


Many errors are hidden in GUI uploads, while CLI makes it easier to see complete logs for metadata, transporter, signing, and upload session. For example:

appuploader_cli upload \
-f app.ipa \
-u [email protected] \
-p xxxx-xxxx-xxxx-xxxx \
--type ios

Finally, the issues can be summarized as:

Type
Frequency

Incorrect certificate type
Very high

Incorrect Profile type
Very high

Bundle ID mismatch
Very high

Missing private key
Medium

Outdated upload protocol
Medium

Corrupted IPA
Low

ITMS-90035 essentially means Apple is verifying whether the IPA has a legitimate and complete signature. Therefore, the troubleshooting focus is not on the "upload button" but on whether the certificate, provisioning profile, Bundle ID, and export method are consistent.


Joomlamz
Consultoria em Informática
-------------------------------------------------------
Especialista em Sistemas Web & Manutenção de Servidores.
A desenvolver o novo AplPortal com suporte a PHP 8.
Precisa de ajuda profissional? Contacte-me.

Tags: