iOS Simulator não inicia com Calabash
-
21-12-2019 - |
Pergunta
Tenho o Calabash instalado como um pod no meu projeto.A gema em si é instalada usando o bundler.Quando tento executar o pepino para meu alvo Calabash, os primeiros recursos são iniciados, mas simplesmente travam e o simulador nunca é iniciado:
$ bundle exec cucumber
Feature: Ensure Login and Oauth Screen Functionality
Scenario: Verify Welcome Page # features/Sign_in.feature:3
Mais detalhes da minha instalação:
# xcode installation location
$ xcode-select --print-path
/Applications/Xcode.app/Contents/Developer
# xcode version
$ xcodebuild -version
Xcode 5.1.1
Build version 5B1008
# calabash version
$ bundle exec calabash-ios version
0.9.168
# calabash < 0.9.169 or Xamarin IDE users
# start your app manually in the simulator or from Xcode and then launch a console
$ bundle exec calabash-ios console
> server_version
{
"outcome" => "SUCCESS",
"app_id" => "[REDACTED]",
"simulator_device" => "iPhone",
"version" => "0.9.168",
"app_name" => "[REDACTED]",
"iphone_app_emulated_on_ipad" => false,
"4inch" => true,
"git" => {
"remote_origin" => "git@github.com:jmoody/calabash-ios-server.git",
"branch" => "master",
"revision" => "adde106"
},
"app_version" => "2.0.1",
"iOS_version" => "7.1",
"system" => "x86_64",
"simulator" => "iPhone Simulator 463.9.41, iPhone OS 7.1 (iPhone Retina (4-inch)/11D167)"
}
Solução
Ok, isso significa que o cabaça não consegue localizar seu aplicativo.
Tente isso primeiro,
- Comente a definição App_bundle_path em seu propoject/recursos/suporte/01_launch.rb como
#APP_BUNDLE_PATH = "~/..../../myApp-cal.app"
Portanto, a gema Calabash pode localizar o aplicativo automaticamente. - Abra um console e vá para a pasta do projeto.Então entre
gem install calabash-cucumber
isso instalará a gema cabaça e poderá ser executada novamente, mesmo que você a tenha instalado anteriormente, não há nenhum dano.Então entrecalabash-ios setup
nesse terminal, isso criará um destino cabaça e adicionará a estrutura cabaça ao seu projeto iOS.mais detalhes sobre o processo de configuração são mencionados em aqui. - Agora abra o arquivo do projeto no editor xcode (você pode ver o calabash.framework adicionado ao grupo de estrutura do seu projeto com sucesso). Selecione o destino yourApp-cal e o simulador que deseja limpar, construa e execute o destino yourApp-cal em seu simulador.
- Então pare e volte para aquele console, digite
calabash-ios console
console iniciará um console Ruby com o qual você pode trabalhar com o aplicativo.agora (enquanto o simulador está na tela, mas seu aplicativo está em segundo plano nesse simulador) digitestart_test_server_in_background
seu aplicativo deve estar em primeiro plano.Se isso funcionar, o cabaça pode encontrar e executar seu aplicativo no simulador. - Lembre-se apenas se você criar um aplicativo construído em uma pasta separada usando um comando ou script xcodebuild ou algo assim, é hora de definir a variável APP_BUNDLE_PATH.
Outras dicas
A resposta de Chathura trabalhou para um dos meus colegas, mas um par de nós teve que encontrar outra solução.
O problema para nós ocorreram após a introdução de cacapos.No Xcode, eu abri organizador e notei que tivemos uma pasta de dados derivada para o projeto BP (Antes Pods) e outro para o espaço de trabalho com vagens.Eu apaguei a pasta derivada de dados para o projeto BP e tudo funcionou.
Eu tinha recompensado calabash antes de fazer isso, então a solução no meu caso pode ter sido uma combinação de resposta de Chatha e mina.