Pergunta

Estou planejando um jogo que requer vários usuários e eu queria saber se existe uma maneira de fogo até várias instâncias do iPhone Simulator. Eu não vi nada em menus ou em resultados de pesquisa do Google, mas eu só queria ter certeza que eu não estava faltando nada.

Foi útil?

Solução

tão perto quanto eu posso dizer, não só você não pode ter várias instâncias do simulador de corrida, mas quando chega a hora de dispositivo real testando você não pode ter várias instâncias do depurador em execução qualquer um.

Este meios para fazer aplicativos multi-dispositivo, você precisa ter um único Mac atribuído a um dispositivo de toque (ou instância simulador) single iPhone / cada um executando seu aplicativo.

Eu comecei a olhar para se VMWare ou Parallels pode de alguma forma ser trazidos para isso, mas não há muito que pode ser feito sem cortar o OS.

Eu sugiro a apresentação de um pedido de recurso com http://bugreporter.apple.com .

Outras dicas

É possível, mas apenas com vários usuários.

Leia este: http://www.coderebel.com/2010/08/31 / iphone_simulator

Assumindo que você tem dois projetos (P1, P2) que você deseja depurar simultaneamente, faça o seguinte.

Passos para configurar:

  1. Criar um novo utilizador (U2) em seu Mac
  2. Dar-R / W Acesso P2, especialmente para a sua pasta de compilação.
  3. Baixe o aplicativo lançador do local acima e copiá-lo para Aplicativos.

Passos para depuração:

  1. Fechar Xcode eo simulador se executando
  2. Inicie o iPhone Launcher.app com U1.
  3. Inicie o Xcode com U1, P1 carga, iniciar a depuração.
  4. Inicie o iPhone Launcher.app com o U2.
  5. Inicie o Xcode com U2, P2 carga, iniciar a depuração.

Infelizmente é um P.I.T.A. ter que os usuários mudam de vez em quando, mas até agora eu não encontrei nenhuma solução melhor. Espero que isso ajude.

Existe uma maneira de fazer isso facilmente sem o uso de múltiplos usuários. Tenha em mente que você não será conectado ao depurador embora. Tenha em mente a explicação abaixo é para XCode 6 + . Você pode pular esta explicação e apenas rolar para a seção de embrulho-it-up abaixo.

De uma resposta aqui podemos ver que você pode lançar qualquer simulador de linha de comando:

-a aberto "iOS Simulator" --args -CurrentDeviceUDID

Você pode encontrar o deviceID (assim como todos os seus simuladores), executando o comando xcrun simctl list no console. Ele irá gerar uma lista como esta. O ID do dispositivo é o código no aparelho:

== Runtimes ==
iOS 8.3 (8.3 - 12F69) (com.apple.CoreSimulator.SimRuntime.iOS-8-3)
== Devices ==
-- iOS 8.3 --
    iPhone 4s (99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8) (Shutdown)
    iPhone 5 (K262AF11-ADD2-4FDA-ACBA-8C80DD9D4AA1) (Shutdown)
    iPhone 5s (337KDC51-0A4B-47DB-8966-83562FD92C93) (Shutdown)
    iPhone 6 Plus (9GK714E2-F713-4F98-A96E-C72ACD6571A8) (Shutdown)
-- iOS 8.2 --
    etc continued....

Portanto, para executar o simulador usando acima como exemplo, executar este comando no console:

open -n /Applications/Xcode.app/Contents/Developer/Applications/iOS\ Simulator.app/ --args -CurrentDeviceUDID '99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8'

Nós usamos a bandeira -n vez porque a bandeira -a especifica o aplicativo para usar para abrir o arquivo, enquanto a bandeira -n abre uma nova instância (s) do aplicativo, mesmo se um já está em execução. Use o comando man open saber tudo isso.

Também verifique se você tem o caminho correto para o seu simulador.

Mais uma coisa a nota, se você executar o simulador assim, as chances são que você tem simuladores limitados. E desde a sua limitada, você pode querer lançá-lo sem interromper um que já está na tela. Podemos resolver isso esta resposta aqui onde ele mostra como create a new simulator and delete one.

Assim, envolvendo tudo, aqui está o que você faz para lançá-los.

A) Primeira Criar um simulador antes de lançá-lo.

Uso: simctl criar "nome" "tipo de dispositivo id" "id runtime"

xcrun simctl create "mynewsimulator" "iPhone 6" "com.apple.CoreSimulator.SimRuntime.iOS-8-3"

Você vai encontrar o ID de execução do comando de comando xcrun simctl list Corri acima. Depois de executar o comando acima, o deviceID serão impressos na tela do console. Tomar conhecimento do mesmo como você vai precisar como o último argumento para lançar o simulador mostrado abaixo. Vamos supor que essa identificação foi 99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8

B) lançá-lo

open -n /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app/ --args -CurrentDeviceUDID '99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8'

C) excluí-lo uma vez que você terminar com o seu simulador

xcrun simctl delete 99Z06AC6-A2D6-46E7-B4F7-BA4F5F3F39C8

Tudo isso pode ser colocada em um arquivo .sh única para fácil execução. Por favor nota para colocar comandos wait ou sleep após cada comando, se você decidir colocar tudo isso em um arquivo sh.

[EDIT 2017] Vejo que XCode 9 agora vai suportar vários simuladores. Aguardando para ver como tudo vai funcionar.

Outra opção (embora provavelmente um exagero) se você tiver uma licença de servidor Mac OS X é virtualizar uma instância do Mac OS X Server, e executar uma segunda simulador na VM.

Hmm ... Eu não acho que você está faltando alguma coisa aqui. Tanto quanto eu sei que não há tecnologia no SDK que é capaz de emular vários dispositivos - embora isso seria um recurso útil para ter. Eu acho que suas únicas opções seria a de obter um segundo dispositivo iPhone OS, ou obter um amigo que também tem um dispositivo iPhone OS para permitir que você usá-lo para o teste.

No Xcode 4, você pode executar várias instâncias ao ter tanto estar no modo de depuração.

O que fiz foi criar uma cópia do meu alvo e correu tanto o original eo duplicado. Se você estiver usando a janela de saída você pode alternar qual a saída que você está olhando.

Siga estas etapas para testar a sua aplicação.

Você tem que fazer uma coisa para todo o processo em primeiro lugar: Ir para Projeto -> Editar Configurações do projeto -> marque na opção -. Alvos independentes construir em paralelo

  1. Debug código que irá criar seu aplicativo no simulador por exemplo, seu nome App é - Instância
  2. Fechar Simulator
  3. Vá para Projeto-> New Target -> Instance2 Adicionar "nome de exibição Bundle: Instance2" no arquivo Instance2.info.plist Definir nome do executável: Instance2 Select Instance2 Target -> Go to Project -> Set Ativo Target -> Instance2 Construir com Instance2

Nota: Faça tudo com cuidado caso contrário, você tem que repor o simulador Para Repor Simulator -> Executar Simulator -> iPhone Simulator -> Conteúdo Redefinir e configurações ...

Agora você tem dois aplicativos em simulador e você pode testar aplicativo em todas as instâncias.

Hope irá ajudá-lo:)

Eu consegui-lo para o trabalho combinando resposta por Ivsty com esta .

Basicamente, o que você faz é criar dois usuários (A e B), simuladores são executados em cada um deles, servidor VNC executado em usuário B, e, em seguida, ligar a partir de utilizador A para o ecrã de acesso B sem a necessidade de usuários de switch.

suportados a partir Xcode 9 por diante.

(Fonte: WWDC 2017)

Sim, agora é possível e também é bastante fácil. A única coisa que você precisa é xctool, as ferramentas de compilação do Facebook e uma jóia de rubi. A gema do rubi ajuda a criar / destruir o simulador necessário durante o teste.

Você pode ler a documentação completa neste link:

https://github.com/plu/parallel_ios_tests

Eu estou usando esta abordagem e eu executar o meu teste em 4 de simulador iOS no mesmo tempo.

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