Como implantar um aplicativo para iPhone do Xcode no dispositivo real do iPhone sem ter um certificado Apple de US $ 99?
Como implantar um aplicativo para iPhone do Xcode no dispositivo real do iPhone sem ter um certificado Apple de US $ 99?
Respostas:
Parece que o aplicativo não está assinado. Baixe o ldid do Cydia e use-o da seguinte forma:ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph
Verifique também se o binário está marcado como executável: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph
Eu usei uma mistura de dois howtos: Jason e Alex . Com o segundo, temos a vantagem de poder depurar. Vou copiar apenas os dois abaixo (e simplificar o alex):
Atualização em janeiro de 2012: isso ainda funciona no SDK 4.2.1 e no iOS 5.0.1 - Acabei de testar tudo em um novo computador e dispositivo!
Aplique patches no iPhone SDK para permitir o uso deste certificado:
Inicie o Keychain Access.app. Sem itens selecionados, no menu Chaveiro, selecione Assistente de certificado e, em seguida, Criar um certificado.
Clique em Continuar.
Clique em Continuar.
Esvazie o campo Endereço de email .
Clique em Continuar até concluir .
Você deverá ver "Este certificado raiz não é confiável" . Isso é esperado.
Defina o iPhone SDK para permitir que o certificado autoassinado seja usado:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
Se você tiver o Xcode aberto, reinicie-o para que essa alteração entre em vigor.
E se você estiver no iOS 5, é isso! Tente agora! Pode não permitir a depuração, mas o aplicativo estará lá!
Fiquei muito surpreso com isso, porque, como você deve saber , não tenho idéia do que são todos esses truques! Tudo o que fiz foi melhorar um pouco o que encontrei em outros lugares, como apontei.
Então, sim, todo o método não funciona mais da mesma maneira e eu não me incomodei em encontrar um novo ... Exceto por isso, que usa uma ferramenta chamada Theos, mas não pude passar por todo o processo.
Por fim, se você precisar desinstalá-lo por qualquer motivo, verifique o final desta postagem. No meu caso, eu tive que fazê-lo porque não conseguia descobrir por que todo esse método azul parou de funcionar e não aguentava mais, pois já temos a licença há muito esperada. (O número DUNS em pânico leva tanto tempo ...)
.
.
.
.
.
No seu iPhone com jailbreak, instale o aplicativo AppSync adicionando fonte ** http://repo.hackyouriphone.org **
Remova os requisitos do SDK para assinatura e direitos de código (estou adorando sed !):
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
Preste atenção naiPhoneOS5.0.sdk
peça. Se você estiver, por exemplo, usando o iOS 4.2 SDK, substitua-o de acordo:
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
Conclua a remoção do requisito através do patch do Xcode. Isso significa edição binária:
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf "\xc3\x26\x00\x00" >> working
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support
Se você tiver o Xcode aberto, reinicie-o para que essa alteração (e a última) entre em vigor.
Abra "Projeto> Editar configurações do projeto" (no menu). Clique na aba "Build" . Localize "Identidade de assinatura de código" e seu filho "Qualquer dispositivo iPhoneOS" na lista e defina ambos na entrada "Não assinar código" :
Depois disso, sinta-se à vontade para desfazer a etapa 3. Pelo menos no meu caso, tudo correu bem.
Configurando o Xcode para assinar o código com nosso certificado autoassinado personalizado (o primeiro tutorial). Esta etapa provavelmente pode ser ignorada se você não desejar depurar:
mkdir /Developer/iphoneentitlements401
cd /Developer/iphoneentitlements401
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py
Conecte seu iPhone e abra o Xcode. Abra Janela> Organizador. Selecione o dispositivo na lista do lado esquerdo e clique em "Usar para desenvolvimento". Você será solicitado a entrar no site de provisionamento, clique em cancelar. Ele existe para facilitar o provisionamento legítimo, mas não dificulta o provisionamento ilegítimo.
Agora você deve fazer esta última parte para cada novo projeto que criar . Vá para o menu Projeto> Nova Fase de Construção> Nova Fase de Construção do Script de Execução. Na janela, copie / cole isto:
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
.
.
.
.
Para a 1ª parte:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist
Para a 2ª parte:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support
caso você tenha executado a etapa 3 em vez de 2, simplesmente modifique-a adequadamente:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
para o resto, basta reverter o que você fez no XCode e excluir /Developer/iphoneentitlements401/gen_entitlements.py
se desejar:
sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
The identity used to sign the executable is no longer valid. ... (0xE8008018)
Mesmo quando eu expiro 3650 dias. Parece que o telefone está fazendo uma verificação.
Para testar seu aplicativo em um dispositivo real, em vez de pagar a taxa de desenvolvedor da Apple (ou fazer o jailbreak do seu dispositivo), você pode usar o novo provisionamento gratuito suportado pelo Xcode 7 e iOS 9.
Aqui estão as etapas realizadas mais ou menos a partir da documentação (o que é muito bom, então leia-o):
1. Adicione seu ID Apple no Xcode
Vá para XCode> Preferências> guia Contas> botão Adicionar (+)> Adicionar ID Apple. Consulte os documentos para obter mais ajuda.
2. Clique na guia Geral no Project Navigator
3. Escolha seu ID Apple no menu pop-up da equipe.
4. Conecte seu dispositivo e escolha-o no menu de esquema.
5. Clique no botão Corrigir problemas
Se você receber um erro sobre o nome do pacote inválido, altere-o para algo único.
6. Execute seu aplicativo
No Xcode, clique no botão Compilar e executar.
7. Confie no desenvolvedor do aplicativo nas configurações do dispositivo
Após a execução do aplicativo, você receberá um erro de segurança porque o aplicativo que você deseja executar não é da App Store.
No seu dispositivo , vá para Configurações> Geral> Perfil> seu-Apple-ID-name > Confie em seu-Apple-ID-name > Confiar.
8. Execute seu aplicativo no seu dispositivo novamente.
É isso aí. Agora você pode executar seu próprio (ou qualquer outro aplicativo para o qual tenha o código-fonte) sem precisar gastar os US $ 99. Obrigado, Apple, por finalmente permitir isso.
Você terá que fazer o jailbreak do seu dispositivo.
Existe uma maneira de implantar aplicativos para iPhone sem pagar à Apple. Você precisará fazer o jailbreak do seu dispositivo e seguir as instruções em http://www.alexwhittemore.com/?p=398
Nada do que vi em qualquer lugar indica que você pode implantar ad-hoc em um iPhone real sem um certificado (pago).
Eu estava passando pelo desenvolvedor da Apple ontem à noite e lá no certificado de provisionamento encontrei algo como - "Membros da equipe de assinatura". Eu acho que existe uma maneira de adicionar membros da equipe ao perfil pago. Você pode simplesmente pedir ao proprietário do ID do aplicativo (pago) para adicionar você como membro da equipe. Não tenho certeza. Ainda procurando por isso.
Não, é fácil fazer isso. No Xcode, defina a Configuração ativa como Release. Mude o dispositivo de Simulador para Dispositivo - qualquer SDK. Se você deseja exportar diretamente para o seu iPhone, conecte-o ao seu computador. Pressione Build and Go. Se o seu iPhone não estiver conectado ao seu computador, será exibida uma mensagem dizendo que o seu iPhone não está conectado.
Se isso se aplica a você: (o iPhone não estava conectado)
Vá para a pasta de projetos e depois para a pasta de compilação dentro. Vá para a pasta Release-iphoneos e leve o aplicativo para dentro, arraste e solte no ícone do iTunes. Quando você sincroniza seu dispositivo iTouch, ele é copiado para o seu dispositivo. Ele também aparecerá no iTunes como um aplicativo para o iPhone.
Espero que isto ajude!
PS: Se diz algo sobre a validade de um certificado, basta clicar no projeto no Xcode, o pequeno ícone do projeto na pilha de arquivos à esquerda, e pressionar Apple + I ou obter informações na barra de menus. Clique em Build na parte superior. Em Assinatura de código, altere a Identidade de assinatura de código - Qualquer dispositivo iPhone OS a ser não assina.
A solução publicada por Cawas também funciona perfeitamente com o XCode4. No entanto, existem algumas alterações na interface do usuário do IDE, portanto, você precisa fazer algumas pesquisas para encontrar o Run Script :)
Na visualização Navegador de Projeto, clique no item raiz do projeto e, na janela do meio, selecione Destino, clique na guia Fases de Construção e, na parte inferior, você verá o botão Adicionar Fase de Construção, clique em e selecione Adicionar Script de Execução, depois cole "codesign "script postado por Cawas.
Não há solução alternativa. Você só pode implantar aplicativos ad hoc se eles estiverem registrados no seu dispositivo. Isso impede que você construa sua própria loja de aplicativos.