NativeScript / NativeScript/nativescript-cli
iOS App Extensions - Release build error
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- JavaScript
- Star
- 1.1k
- Fork
- 204
- Merge trung bình
- 1 ngày 9 giờ
- Pull request đã merge (30 ngày)
- 8
Mô tả
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!
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu với tài liệu iOS App Extensions và tái hiện lỗi bằng ns prepare ios --provision, sau đó là ns build ios --clean --for-device --release --provision. Theo dõi cách CLI chọn các provisioning profile cho ứng dụng chính và extension share; hoàn thành khi bản build release của Share extension được mô tả trong tài liệu chạy thành công với các profile tương ứng.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- ios, javascript, webpack
- Lĩnh vực
- build-system, cli, mobile
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Đình trệ
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 30/100