NativeScript / NativeScript/nativescript-cli
iOS App Extensions - Release build error
还没有人认领这个 Issue。
- 主要语言
- JavaScript
- 星标
- 1.1k
- 派生
- 204
- 平均合并
- 1 天 9 小时
- 30 天内合并 PR
- 8
描述
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!
贡献指南
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
调研方向
从 iOS App Extensions 文档开始,使用 ns prepare ios --provision,然后使用 ns build ios --clean --for-device --release --provision 重现失败。跟踪 CLI 如何为主应用和 share 扩展选择 provisioning profile;当文档所述的 Share 扩展 release 构建能够使用匹配的 profile 成功完成时,即表示完成。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- ios, javascript, webpack
- 领域
- build-system, cli, mobile
- Issue 类型
- 缺陷
- 难度
- 4/5
- 预计耗时
- 3-5 天
- 活跃度
- 停滞
- 描述清晰度
- 基本清楚
- 新手友好度
- 30/100