Pergunta

Eu estou fazendo o desenvolvimento iPhone em um Mac PowerPC. Como faço para obter a assinatura de código para funcionar corretamente para que eu possa construir a minha iPhone?

O iPhone SDK não suporta oficialmente PowerPC, mas com alguma inquietação, ele pode ser instalado. Consulte aqui . Eu tenho o SDK instalado e funcionando bem no Xcode eo simulador iPhone funciona bem.

No entanto, não posso construir a minha iPhone no Xcode - a assinatura de código é fubar. Algumas pessoas inteligentes criaram soluções aqui . Ou seja, eu usei o script codesign que Tiku postada juntamente com algumas das correções. Isso me ajudou a fazer algum progresso. O código compila agora, mas eu ainda obter um erro 0xE800003A quando ele tenta implantar.

Eu acho que tenho todas as minhas chaves e perfis de aprovisionamento configurado corretamente. Meu iPhone é registrado para o desenvolvimento, eu tenho o perfil de aprovisionamento criado. O AppID listados no portal dev diz MagicNumber.com.website * e no meu projeto, eu tenho a ID de pacote definido como com.website $.. {PRODUCT_NAME: identificador}. Em configurações do projeto, nome do produto é HelloWord, ea identidade de assinatura de código é o meu certificado de desenvolvedor.

O registo da consola do iPhone diz: Qua 18 fevereiro 14:57:55 desconhecido afcd [180]: o usuário móvel tem uid 501

Wed 18 de fevereiro 14:57:55 desconhecido afcd [180]: O modo é 0x41e8 Qua 18 de fevereiro 14:57:55 desconhecido mobile_installation_proxy [182]: install_embedded_profile: Ignorando a instalação do perfil incorporado Wed 18 de fevereiro 14:57:55 desconhecido mobile_installation_proxy [182]: verify_executable: Não foi possível validar a assinatura: e800800e Wed 18 de fevereiro 14:57:55 desconhecido mobile_installation_proxy [182]: preflight_application_install: Não foi possível verificar /var/tmp/install_staging.QNk2sD/HelloWorld.app/HelloWorld Wed 18 de fevereiro 14:57:55 desconhecido mobile_installation_proxy [182]: install_application: foi possível instalar o aplicativo não comprovação Qua 18 fev 14:57:55 desconhecido mobile_installation_proxy [182]: handle_install: A instalação falhou

Qualquer ajuda é apreciada!

Foi útil?

Solução

Eu tive os mesmos problemas que você. - Eu poderia atravessar compilar e instalar o aplicativo no iPhone, mas seria sempre falhar com uma violação de segurança

Para contornar o problema, eu tive que fazer o jailbreak meu telefone e instalar um MobileInstaller remendado (creio que o aplicativo Cydia agora tem pacote chamado Installous que corrige seu MobileInstaller. Infelizmente, acho que Installous também é usado para aplicativos piratas). Então, em Info.plist do seu projeto, você precisa adicionar o seguinte:

<key>SignerIdentity</key>
<string>Apple iPhone OS Application Signing</string>

Isso permitirá que o seu telefone para executar binários não assinados, que é a única maneira que eu era capaz de desenvolver de meu ppc mac.

Eu ainda sou capaz de comprar aplicativos na AppStore e tê-los executado sem problemas.

Outras dicas

O que faz seu olhar roteiro codesign como? Eu costumava usar um presente quando eu estava trabalhando em um G4: (O original "/ usr / bin / codesign" deve ser renomeado "/usr/bin/codesign.orig" e, em seguida, salvar esse script como "/ usr / bin / codesign". Você teria que fazê-lo com 'sudo'. Além disso, este roteiro não funciona se os seus nomes de caminho têm espaços entre eles.)

#!/usr/bin/perl 
#
$appDir=$ARGV[$#ARGV];
@tmpAry=split(/\//,$appDir);
$baseAppName=$tmpAry[$#tmpAry];
$baseAppName=~s/\.app$//;
$realAppName="$appDir"."/$baseAppName";

$sign=0;
for($b=0;$b<$#ARGV;$b++) {
if($ARGV[$b] eq "-s") {
$sign=1;
}
}

$mums=`file $realAppName`;
if($sign==1 && $mums=~/executable arm/) {
#print "Signing armv6..\n"; 
$dev="/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/";
$tmp="$appDir"."/tmpbin";
`$dev/lipo -create $realAppName -output $tmp`;
`mv $tmp $realAppName`;
system("/usr/bin/codesign.orig",@ARGV);
`$dev/lipo -thin armv6 $realAppName -output $tmp`;
`mv $tmp $realAppName`;
system("rm $appDir"."/CodeResources");
system("cp $appDir"."/_CodeSignature/CodeResources $appDir"."/CodeResources");
exit 0;
} else {
exec '/usr/bin/codesign.orig',@ARGV;
}

A partir de 12 de abril de 2009, o iPhone OS 2.2.1 a correção script funciona perfeitamente no meu iBook G4.

De qualquer forma, depois de ter passado a maior parte do dia procurando por correções no Google I ver que há muito poucas pessoas que ainda têm problemas.

Certifique-se de copiar / colar corretamente, porque se você receber um erro no script e falhar o Xcode codesign não vai notar e vai tentar instalar o aplicativo em seu estado não assinado, dando-lhe um erro ao implementar (NOT quando a construção). No meu caso eu tinha colado o texto em uma pequena janela de terminal, quebrando algumas linhas de código e ele me levou um dia para encontrar o erro. Pelo menos agora eu tenho um conhecimento impressionante de certificados, assinatura de código e Xcode ...

Se você ainda tiver problemas, é provavelmente devido a um pacote identificador / appId incompatibilidade em que há toneladas de mensagens.

Ele também pode valer a pena tendo em mente que o Xcode pode ser um pouco esquisito quando se trata de certificados, assinar e instalar em dispositivos (talvez apenas em PPC, não tentei em um Mac Intel).

I encontrar os seguintes passos normalmente resolver as coisas quando uma configuração anteriormente funcionar de repente pára de funcionar:

  1. Limpe todos os alvos no Xcode
  2. Exclua qualquer versão instalada do aplicativo do seu dispositivo (procedimento de aplicação de desinstalação normal, clique no pequeno 'x')
  3. Sair XCode completamente, e iniciá-lo novamente

Se você nunca assinou com sucesso seu aplicativo, pode haver um problema de configuração real, mas uma vez que é make trabalhando certeza que você tente o acima antes preocupante de algo quebrado:)

Espero que ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top