NativeScript / NativeScript/nativescript-cli

iOS App Extensions - Release build error

Aberta
#5,520 5 comentários 1 reação 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

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

Descrição

Environment

  • CLI: ├── nativescript@7.2.1
  • Cross-platform modules: @nativescript/core@7.3.0
  • Android Runtime: -
  • iOS Runtime: ├── @nativescript/ios@6.5.4 (JSC)
  • XCode Version: Xcode 12.4 (12D4e)
  • Plugin(s):
    ├── @nativescript/angular@11.2.0
    ├── @nativescript/webpack@4.1.0

Describe the bug
We set up a Share extension following the instructions here, it is working as intended and the development build is working fine as well.

{N}7 documentation: iOS App Extensions
(The GitHub version of the documentation page can be found here.)


But the release build fails with the error/warning message:

error: Provisioning profile "myApp" has app ID "com.myapp.mobile", which does not match the bundle ID "com.myapp.mobile.share". (in target 'share' from project 'myappcommobile')
warning: Provisioning profile "myApp" for "myappcommobile" contains entitlements that aren't in the entitlements file: com.apple.developer.associated-appclip-app-identifiers. To use these entitlements, add them to your entitlements file. Otherwise, remove unused entitlements from your provisioning profile. (in target 'myappcommobile' from project 'myappcommobile')

The relevant release build steps are:

(1) Prepare the provisioning profile of the main app (myApp):

mac-003:mobile user$ rm "/Users/user/Library/MobileDevice/Provisioning Profiles/"*
mac-003:mobile user$ uuid=`grep UUID -A1 -a myApp.mobileprovision | grep -io "[-A-F0-9]\{36\}"`
mac-003:mobile user$ cp myApp.mobileprovision "/Users/user/Library/MobileDevice/Provisioning Profiles/$uuid.mobileprovision"
mac-003:mobile user$ ns prepare ios --provision $uuid


Preparing project...

[...]

Project successfully prepared (ios)

(2) Prepare the provisioning profile of the share extension (myApp_Share):

mac-003:mobile user$ uuid2=`grep UUID -A1 -a myApp_Share.mobileprovision | grep -io "[-A-F0-9]\{36\}"`
mac-003:mobile user$ cp myApp_Share.mobileprovision "/Users/user/Library/MobileDevice/Provisioning Profiles/$uuid2.mobileprovision"
mac-003:mobile user$ ns prepare ios --provision $uuid2

Preparing project...

[...]

Project successfully prepared (ios)

(3) Run the release build

mac-003:mobile user$ ns build ios --clean --for-device --env.report --env.hiddenSourceMap --certificate keychain.p12 --certificatePassword myPassword --release --provision $uuid

Preparing project...

[...]

Building project...
Xcode build...
note: Using new build system
note: Building targets in parallel
note: Planning build
note: Constructing build description
error: Provisioning profile "myApp" has app ID "com.myapp.mobile", which does not match the bundle ID "com.myapp.mobile.share". (in target 'share' from project 'myappcommobile')

[... removed unrelated warnings for readability ...]

** ARCHIVE FAILED **

Command xcodebuild failed with exit code 65

To Reproduce

  • Set up a Share extension as explained here.
  • Run a release build

Expected behavior
The release build succeeds the same the development build does.

Additional context
It seems the CLI does not recognize all profiles as eligible:

mac-003:mobile user$ ns prepare ios --provision
Searching for devices...
┌──────────────────────────────────────────┬────────────┬──────────────┬─────────┐
│ Provision Name / Provision UUID / App Id │ Team       │ Type / Due   │ Devices │
│                                          │            │              │         │
│ 'myApp'                                  │ myTeam     │ Distribution │         │
│ <uuid>                                   │ (<teamid>) │ 5 Mar 2022   │         │
│ <teamid>.com.myapp.mobile                │            │              │         │
└──────────────────────────────────────────┴────────────┴──────────────┴─────────┘

There are also 1 non-eligable provisioning profiles.

Please let me know if there is anything else you need to assist us on this. Thanks!

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 pela documentação de iOS App Extensions e reproduza a falha usando ns prepare ios --provision, seguido de ns build ios --clean --for-device --release --provision. Rastreie como a CLI seleciona os perfis de provisionamento para o app principal e a extensão share; o trabalho estará concluído quando o build de release documentado da extensão Share for bem-sucedido com os perfis correspondentes.

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

Avaliação

Stack de tecnologia
ios, javascript, webpack
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
30/100

Receba novas issues na sua caixa de entrada

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