É possível compilar e executar um projeto Xcode em um dispositivo jailbroken sem um certificado de desenvolvedor pago?

9

Tanto por motivos de orçamento quanto por orçamento, eu gostaria de pegar um pacote que normalmente exigiria uma conta de desenvolvedor e criar um aplicativo para ser executado em um dispositivo iOS com jailbreak.

Eu tenho um iPod Touch de quinta geração, desbloqueado usando evasi0n, executando o iOS 6.1.

Estou usando o Xcode 4.6 com OS X (10.8.2) Lion.

Joncom
fonte

Respostas:

6

As seguintes etapas instrucionais para atingir esse objetivo são obtidas em: http://iphonedevwiki.net/index.php/Xcode

Minhas descobertas e ações são fornecidas em cada etapa.

1. Crie um certificado de assinatura de código autoassinado com o nome “iPhone Developer” no chaveiro “login” (padrão) usando o Acesso às Chaves.

  • Tirei screenshots e segui as instruções acima.
  • Deixei a maioria dos campos em branco ou com o valor padrão.

insira a descrição da imagem aqui

2. Abra /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist(4.2 ou abaixo /Developer/Platforms/iPhoneOS.platform/Info.plist:). Você pode precisar de permissão root.

  • Estou usando o Xcode 4.6, então abri o .plistarquivo anterior .

3. Substitua todas as ocorrências de XCiPhoneOSCodeSignContextpor XCCodeSignContext. Existem três deles (XCode versão 3.2.4+).

  • Fiz três modificações como as capturas de tela indicam.

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

4. Salve o arquivo e reinicie o Xcode.

  • Salve o arquivo.

5. Verifique se você possui o ID no seu Mac. Coloque uma cópia em algum lugar, por exemplo, dentro /usr/local/bin.

6. Crie o script Python ldid3.py ao lado do programa ldid. Torne executável. Preencha com:

#!/usr/bin/env python

from sys import argv
from subprocess import check_call
from os.path import basename, dirname, splitext, join
from tempfile import NamedTemporaryFile

app = argv[-1]
ldid_path = join(dirname(__file__), 'ldid')
obj_path = join(app, splitext(basename(app))[0])

if '-gta' not in argv:
    check_call([ldid_path, '-S', obj_path])
else:
    with NamedTemporaryFile('w+b', 0) as f:
        f.write("""
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
  <dict>
    <key>get-task-allow</key>
    <true/>
  </dict>
</plist>
        """)
        check_call([ldid_path, '-S' + f.name, obj_path])
  • Criei um novo arquivo de texto sem formatação e colei o código acima nele.
  • Salvei este arquivo ldid3.pye o armazenei no /usr/local/bindiretório
  • No terminal, correu chmod 777 /usr/local/bin/ldid3.py.

7. Abra iPhoneCodeSign.xcspec. Este arquivo pode ser encontrado em [For Xcode 4.6: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec]:

8. Altere a entrada no arquivo de chamada codesignpara ldid3.py.

  • Conforme a instrução oficial da instrução, converteu o arquivo de especificação em texto sem formatação, digitando no console: sudo plutil -convert xml1 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Specifications/iPhoneCodeSign.xcspec
  • Abri o arquivo com o TextEdit.
  • Substituído <key>CommandLine</key><string>/usr/bin/codesign</string>por <key>CommandLine</key><string>/usr/local/bin/ldid3.py</string>.

9. Salve o arquivo e reinicie o Xcode.

  • Salvei o arquivo e fechei o TextEdit.

10. Crie um arquivo /var/mobile/tdmtanfno dispositivo para habilitar o "TDMTANF bypass" da Apple no installd (aviso: isso também o colocará em um GameCenter na caixa de areia).

  • Crio um arquivo de texto vazio no Windows com o nome tdmtanfSSH em meu iPod, carreguei /var/mobile/e reinicializei meu iPod.

Agora que tudo acabou com ...

Abro meu projeto Xcode existente e clico em Executar. Funciona no simulador iOS sem problemas.

insira a descrição da imagem aqui

Certifico-me de que a Assinatura de código esteja configurada para usar o certificado configurado na etapa 1.

insira a descrição da imagem aqui

Eu construo o aplicativo (Projeto> Compilar). Uma mensagem de sucesso segue.

Eu pego minha pasta aplicativo TicTacToe.appde /Libary/Developer/Xcode/DerivedData/TicTacToe-cjgzmoxtflyegtfypsbxbuiuwxns/Build/Products/Debug-iphoneos/e transferi-lo para a minha máquina Windows para instalar no meu iPod.

Na tentativa de instalar o aplicativo no meu iPod, arrasto TicTacToe.apppara a seção de aplicativos do Utilitário de configuração do iPhone, mas recebi esta mensagem de erro informando que meu aplicativo "não é um aplicativo móvel válido".

Também tentei instalar manualmente o aplicativo usando o iFunbox e o aplicativo AppCake encontrado no Cydia. Ambos falham.

insira a descrição da imagem aqui insira a descrição da imagem aqui

Como ponto de interesse, porque, como eu pesquisei no Google, notei que muitas pessoas mencionam a importância disso: eu tenho o AppSync instalado. (Desculpe pela enorme captura de tela. Se devo removê-la, avise-me!)

insira a descrição da imagem aqui

Conclusão

Portanto, apesar de seguir as instruções atentamente várias vezes, meu aplicativo não é reconhecido pelo iPhone Configuration Utility como um aplicativo válido. Não consigo instalar o aplicativo manualmente usando programas como o iFunbox ou aplicativos Cydia como o AppCake.

Suspeito que o aplicativo seja realmente inválido, mas, seguindo as instruções com cuidado, não sei por que.

Alguém pode me dizer por que meu aplicativo não é válido e o que posso fazer para corrigir isso, além de gastar dinheiro?

Joncom
fonte
Foi uma leitura interessante, no entanto.
Thecafremo
Não - feliz por ter lido e provavelmente voltará a ele no futuro. Obrigado por compartilhar.
Robert
Isso foi muito útil para mim quando se trabalha em Xcode 4.2 e iOS 4, espero que alguém pode atualizar o procedimento para Xcode 4.6
rraallvv
Após o download do ldid, você precisa alterar suas permissões para 755 com o chmod 755 ldid. Isso estava me causando um erro de saída 1.
0

Você pode conectar seu dispositivo e selecionar seu dispositivo iOS como destino de execução. quando executado, o aplicativo é instalado automaticamente no seu dispositivo. Ou você pode selecionar o seu dispositivo iOS e não precisar executar apenas compilar e arquivar. Depois disso, distribua ... escolha Salvar para implantação corporativa ou Ad-Hoc. Você receberá seu arquivo .ipa. Espero que isso possa ajudar-lhe..

sl33py
fonte
0

continuando a resposta da @joncom .. você pode adicionar os arquivos .app diretamente ao seu iPhone, apenas com algumas etapas extras.

  • copie o .apparquivo para a área de trabalho e, em seguida, feche-o
  • renomeie o [yourappname].zippara[yourappname].ipa
  • então vá em frente e faça o download do AppSync do cydia
  • faça o download e instale o arquivo .ipa no seu dispositivo

NOTA:

você também pode fazer isso diretamente, sem passar por todas as modificações de código python mencionadas pelo @joncom. leia mais aqui

leo
fonte