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.
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
.plist
arquivo anterior .
3. Substitua todas as ocorrências de XCiPhoneOSCodeSignContext
por XCCodeSignContext
. Existem três deles (XCode versão 3.2.4+).
- Fiz três modificações como as capturas de tela indicam.
4. Salve o arquivo e reinicie o Xcode.
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.py
e o armazenei no /usr/local/bin
diretó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 codesign
para 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/tdmtanf
no 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
tdmtanf
SSH 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.
Certifico-me de que a Assinatura de código esteja configurada para usar o certificado configurado na etapa 1.
Eu construo o aplicativo (Projeto> Compilar). Uma mensagem de sucesso segue.
Eu pego minha pasta aplicativo TicTacToe.app
de /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.app
para 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.
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!)
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?