Jumpi’s Notepad

My annotations about the life, universe and everything!!! ;)

Testando a aplicacao em um iPhone/iTouch com Jailbreak sem o certificado da Apple

with 5 comments

Well, aqui estou eu de volta, postando sobre um problema que já tive no passado e devido a escassa documentação e inclusive, hoje me deparei com a mesma pergunta que fiz no passado em uma das listas na qual participo.

“Eu tenho um device (iPhone/iTouch) com jailbreak, porem eu quero testar as minhas aplicacoes que desenvolvi com tanto suor no XCode diretamente no device, afinal de contas, estou cansado de testes no simulador, no simulador tudo funciona, tudo e tao simples, eu quero mesmo e testar no Hardware!!! “comofas”??

Simples, porem nem tanto, por isso que criei uma lista passo-a-passo de como executar essa tarefa tao árdua!!!

1) Certificar-se de que você tem o SSH instalado e habilitado para poder jogar a partir do SCP a sua aplicação, como fazer isso??? Basta acessar o cydia que tem um guia passo-a-passo de como fazer

2) Usar o xcode para compilar a sua aplicação, lembrando-se de alguns fatores importantes

– Mudar para Device
– Observar a versão (2.2, 2.2.1 ou 3.0), lembrando que tem que ser a mesma versão que esta rodando no seu iPod/iPhone
– Decidir se quer em modo debug ou release, como você não vai poder debugar no device dessa maneira, recomendo compilar em release

3) O xcode vai acusar erro porque você não possui o certificado, porem não se preocupe, basta seguir os passos abaixo:

- Acessar o diretorio_da_sua_aplicacao/build/Debug-iphoneos ou diretorio_da_sua_aplicacao/build/Release-iphoneos
– Verificar a existência do arquivo com o nome_da_sua_aplicacao.app

4) Eu costumo dentro do device, ate por organização e recomendação da grande padroeira dos usuários/desenvolvedores de aplicações em modo de jailbreak Erica Sadun, realizar os seguintes passos:

- Acessar o device: ssh root@ip_do_device (ele vai pedir a senha, caso não tenha mudado, 99% das pessoas não mudam, ela sera alpine)
– Criar um diretório dentro de /var, por exemplo, crio um /var/Applications para jogar os meus testes la, portanto se quer seguir o meu conselho, antes acesse o device e crie um diretório dentro de var: mkdir /var/Applications

4) Mas Alan, eu não sei como eu verifico qual o IP do meu device para acessar??? O que eu faco??? Well, vou passar aqui 2 formas de como realizar essa tarefa

- Instale o programa bossprefs, ele esta disponível no seu repositório Cydia, ele e bem interessante pois permite controlar diversas coisas e ate mesmo dar um reboot no springboard, passo necessário para reconhecimento da nossa aplicação
– Tente acessar via settings ou preferencias – wi-fi – e clique na rede que você estiver conectado, vai ter o IP Address la, basta anotar

5) Então agora, já sabemos onde esta a aplicação, já criamos o diretório e temos o IP, hora de copiar o app para o device, você vai fazer agora um scp para o seu device (iPhone/iTouch) da seguinte maneira: scp sua_aplicacao.app root@ip_que_detectamos:/var/Applications e ele vai pedir a senha, como quase 99% dos usuários não modificam a senha, a senha default e alpine… acredito que eu já havia dito isso la em cima, não??? :D

6) Agora hora de acessar o device, voce vai dar um ssh no seu device, e executar as seguintes tarefas:

– Seguindo o primeiro item do passo 4, voce vai dar um ssh e acessar a pasta /var/Applications
– Agora você vai dar um ls para ter certeza de que a aplicação que você copiou esta la, ela esta la?
– Se sim, vamos agora criar uma “assinatura fake”, para isso você vai usar o programinha ldid que gera uma assinatura fake na sua app: ldid -S sua_aplicacao.app

7) Terminadas as verificações e assinaturas, hora de acessar a pasta /Applications, verificando o conteúdo dela, você vai perceber que existem varias aplicações nessa pasta, agora e hora de acrescentar a sua também, ai você pode me perguntar, mas Alan? A gente já não copiou para o /var/Applications, e eu te respondo, sim, porem agora e que vem o pulo-do-gato, lembra das aulinhas de linux/unix??? do tal do ln para criar link simbólico ??? Exatamente ele que você vai utilizar agora: ln -sf /var/Applications/sua_aplicacao.app .

Pronto, ele vai criar um link simbólico para a sua aplicação no diretório de leitura do springboard. Quem e o springboard??? E o cara que gerencia todas as suas aplicações ai no seu “mobile desktop”…

8 ) Mas Alan, o que acontece que a minha aplicação ainda não apareceu no springboard??? E que agora tem uma coisinha básica, o springboard não e plug-in-play, ou seja, você tem que dar um restart no menino, existem 2 formas de se fazer isso,

- Ou você instala uma app que faz isso, eu por exemplo utilizo o Respring que se encontra no cydia
– Ou então você reboota o seu iPhone/iPod.

9) Apos o restart, você vai perceber que a sua aplicação aparece na tela e agora e só executar!!!! :D

E com esses passos, enfim, agora da testar a aplicação que você acabou de desenvolver em um aparelho com jailbreak efetuado e sem pagar pelo certificado da apple… :D

Ta vendo só??? Se você não fosse tao pão-duro, compraria o certificado da Apple por apenas 99 doletas e não passaria por esse parto, pois o XCode faria tudo para você, só faltaria o cafezinho básico… :D

Espero ter ajudado na sua diversão, lembrando que qualquer falha de sua parte, não e de minha responsabilidade,

Abraços e ate a próxima !!!

Correção: Descobri um pequeno problema, e se voce estiver passando por isso tambem para gerar o binário sem assinar, adicione os seguintes passos:

- Editar o arquivo: /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/SDKSettings.plist

- E atente para as seguintes tags: CODE_SIGNING_REQURIED, ENTITLEMENTS_REQUIRED e AD_HOC_CODE_SIGNING_ALLOWED

- Coloque o valor NO para todas elas.

Faca um restart no XCode e va em Project – Edit Project Settings – Build, mude em Configurations para All Configurations e em Show para All Settings e em Code Signing Identity – Any iPhone OS Device, escolha a opção Don’t Code Sign e agora e só compilar e gerar o seu binário como expliquei acima!!! :D

About these ads

Written by jumpi

August 21, 2009 at 5:28 am

Posted in Apple, Gadgets, Programming

Tagged with , , ,

5 Responses

Subscribe to comments with RSS.

  1. Muito bom.
    Abraço Jumpi.

    Gustavo Bittencourt

    August 21, 2009 at 4:25 pm

  2. Boa, Alan :D
    Consegui compilar, obrigado!

    Ricardo Borelli (@rabc)

    August 26, 2009 at 1:10 am

  3. [...] quero agradecer as dicas do Alan Jumpi, estou usando o mesmo esquema de diretório que ele, realmente fica mais [...]

  4. Precisei clicar em Target->GetInfo e mudar lá a opção pra No Code Sign. Em Projects->Edit Project Settings não funcionou.

    Também não precisei usar SSH. Ele instala direto na versao 3.1.2.

    Usuario

    April 6, 2010 at 11:10 pm

  5. O meu app abre e fecha. Nem dá pra ver.

    Alexandre Marques

    June 1, 2012 at 11:05 pm


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

%d bloggers like this: