NativeScript / NativeScript/nativescript-cli
iOS App Extensions - Release build error
Ninguém assumiu esta issue ainda.
- 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
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- 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