NativeScript / NativeScript/nativescript-cli

LiveSync related commands build applications for not needed architectures

Aberta
#4,339 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

bug livesync os: ios os: mac severity: medium ux
Linguagem predominante
JavaScript
Estrelas
1.1k
Forks
204
Merge médio
1d 9h
PRs com merge (30d)
8

Descrição

Environment
Provide version numbers for the following components (information can be retrieved by running tns info in your project folder or by inspecting the package.json of the project):

  • CLI: 5.1.1
  • Cross-platform modules: Not applicable
  • Android Runtime: Not applicable
  • iOS Runtime: Not applicable
  • Plugin(s): Not applicable

Describe the bug
During liveSync related commands, like tns run, tns debug, tns test, CLI may build the application as it have to install it on devices. However, CLI does not use the architectures of the devices/emulators that will be used and builds for the default ones. This means that in most cases the build result (.ipa, .app) is larger than required and the build is much slower as it is done for multiple architectures.

To Reproduce

  1. $ tns create myApp --js
  2. $ cd myApp
  3. Start iOS 9.x or 10.x Simulator
  4. Run tns run ios --log trace
  5. Check the logs - you'll see both i386 and x86_64 architectures. Similarly when you build for iOS Device, in the log you'll see armv7 and arm64.

Expected behavior
To build the app only for the required architectures that will be used during this command.

Additional context
For iOS builds, in case you set IPHONEOS_DEPLOYMENT_TARGET = 11.0 in <path to App_Resources>/iOS/build.xcconfig, Xcode will build only for 64 bits (i.e. arm64 or x86_64).
Similar thing will happen in case we pass ONLY_ACTIVE_ARCH=YES, so Xcode will automatically detect running simulators/attached devices.
NOTE: By default our project template for Xcode has deployment target set to 9, so in case it is not set in build.xcconfig and ONLY_ACTIVE_ARCH is set to NO, Xcode will build the application for all supported architectures.

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece pelos caminhos dos comandos tns run, tns debug e tns test relacionados ao liveSync e inspecione como os builds de iOS consomem App_Resources/iOS/build.xcconfig. Reproduza o problema com um Simulator do iOS 9.x ou 10.x usando tns run ios --log trace e, em seguida, compare as arquiteturas selecionadas com o Simulator ou dispositivo em uso. Considera-se concluído quando apenas as arquiteturas necessárias são compiladas sem quebrar o comportamento documentado do deployment target.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
ios, javascript
Domínio
build-system, cli, mobile
Tipo de issue
Bug
Dificuldade
4/5
Tempo estimado
3-5 dias
Status de atividade
Estagnada
Clareza
Razoavelmente clara
Facilidade para iniciantes
35/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.