首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用fastlane构建带有通知扩展的iOS应用程序

用fastlane构建带有通知扩展的iOS应用程序
EN

Stack Overflow用户
提问于 2018-06-01 17:28:35
回答 1查看 2.9K关注 0票数 5

最近,我给我的应用程序添加了一个通知扩展,它是用fastlane构建的。添加通知扩展后,由于某些代码签名问题,建筑物总是失败。

构建我的应用程序并将其上传到TestFlight的通道是:

代码语言:javascript
运行
复制
    lane :beta do
         increment_build_number(
            build_number: latest_testflight_build_number + 1,
            xcodeproj: "ios.xcodeproj"
         )
         match(app_identifier: ["my.app.bundleid", "my.app.bundleid.extension" type: "appstore") 
         gym(scheme: "prod")
         ENV["DELIVER_ITMSTRANSPORTER_ADDITIONAL_UPLOAD_PARAMETERS"] = "-t DAV"
         pilot(
           skip_submission: true,
           skip_waiting_for_build_processing: true
         ) 
    end

我为这两个包I创建了App和供应配置文件,并为它们启用了推送通知。

即使在运行fastlane beta后我得到了下面的错误

代码语言:javascript
运行
复制
[19:13:20]: $ /usr/bin/xcrun /Library/Ruby/Gems/2.3.0/gems/fastlane-2.96.1/gym/lib/assets/wrap_xcodebuild/xcbuild-safe.sh -exportArchive -exportOptionsPlist '/var/folders/vq/j6j2lh1s3cz7cbpw7shc9149fy4t4_/T/gym_config20180601-5305-a3y0ow.plist' -archivePath /Users/viktor.plezer/Library/Developer/Xcode/Archives/2018-06-01/prod\ 2018-06-01\ 19.07.57.xcarchive -exportPath '/var/folders/vq/j6j2lh1s3cz7cbpw7shc9149fy4t4_/T/gym_output20180601-5305-ghy31c' 
+ xcodebuild -exportArchive -exportOptionsPlist /var/folders/vq/j6j2lh1s3cz7cbpw7shc9149fy4t4_/T/gym_config20180601-5305-a3y0ow.plist -archivePath '/Users/viktor.plezer/Library/Developer/Xcode/Archives/2018-06-01/prod 2018-06-01 19.07.57.xcarchive' -exportPath /var/folders/vq/j6j2lh1s3cz7cbpw7shc9149fy4t4_/T/gym_output20180601-5305-ghy31c
2018-06-01 19:13:21.181 xcodebuild[7741:1606819] [MT] IDEDistribution: -[IDEDistributionLogging _createLoggingBundleAtPath:]: Created bundle at path '/var/folders/vq/j6j2lh1s3cz7cbpw7shc9149fy4t4_/T/prod_2018-06-01_19-13-21.180.xcdistributionlogs'.
2018-06-01 19:13:25.613 xcodebuild[7741:1606819] [MT] IDEDistribution: Step failed: <IDEDistributionSigningAssetsStep: 0x7ff969a6c950>: Error Domain=IDEDistributionSigningAssetStepErrorDomain Code=0 "Locating signing assets failed." UserInfo={NSLocalizedDescription=Locating signing assets failed., IDEDistributionSigningAssetStepUnderlyingErrors=(
"Error Domain=IDEProvisioningErrorDomain Code=9 \"\"prod.app\" requires a provisioning profile with the Push Notifications feature.\" UserInfo={NSLocalizedDescription=\"prod.app\" requires a provisioning profile with the Push Notifications feature., NSLocalizedRecoverySuggestion=Add a profile to the \"provisioningProfiles\" dictionary in your Export Options property list.}"
)}
error: exportArchive: "prod.app" requires a provisioning profile with the Push Notifications feature.

Error Domain=IDEProvisioningErrorDomain Code=9 ""prod.app" requires a provisioning profile with the Push Notifications feature." UserInfo={NSLocalizedDescription="prod.app" requires a provisioning profile with the Push Notifications feature., NSLocalizedRecoverySuggestion=Add a profile to the "provisioningProfiles" dictionary in your Export Options property list.}

** EXPORT FAILED **
[19:13:26]: Exit status: 70
[19:13:26]: No provisioning profile provided
[19:13:26]: Make sure to pass a valid provisioning for each required target
[19:13:26]: Check out the docs on how to fix this: https://docs.fastlane.tools/actions/gym/#export-options

我在Matchfile中添加了两个包ids,fastlane可以正确下载证书。

provisioningProfiles dict看起来像:

代码语言:javascript
运行
复制
INFO [2018-06-01 20:08:45.03]: ▸ <?xml version="1.0" encoding="UTF-8"?>
INFO [2018-06-01 20:08:45.03]: ▸ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
INFO [2018-06-01 20:08:45.03]: ▸ <plist version="1.0">
INFO [2018-06-01 20:08:45.03]: ▸ <dict>
INFO [2018-06-01 20:08:45.03]: ▸    <key>method</key>
INFO [2018-06-01 20:08:45.03]: ▸    <string>app-store</string>
INFO [2018-06-01 20:08:45.03]: ▸    <key>provisioningProfiles</key>
INFO [2018-06-01 20:08:45.03]: ▸    <dict>
INFO [2018-06-01 20:08:45.03]: ▸        <key>my.app.bundleid.extension</key>
INFO [2018-06-01 20:08:45.03]: ▸        <string>match AppStore my.app.bundleid.extension</string>
INFO [2018-06-01 20:08:45.03]: ▸        <key>my.app.bundleid</key>
INFO [2018-06-01 20:08:45.03]: ▸        <string>match AppStore my.app.bundleid</string>
INFO [2018-06-01 20:08:45.03]: ▸    </dict>
INFO [2018-06-01 20:08:45.03]: ▸    <key>signingStyle</key>
INFO [2018-06-01 20:08:45.03]: ▸    <string>manual</string>
INFO [2018-06-01 20:08:45.03]: ▸ </dict>
INFO [2018-06-01 20:08:45.03]: ▸ </plist>
INFO [2018-06-01 20:08:45.03]: ▸ -----------------------------------------

为什么fastlane开始搜索prod.app而不是my.app.bundleid的配置文件?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-09 23:19:14

这正是我所收到的错误,在我的例子中,问题是扩展名的plist文件中的CFBundleIdentifier值无效。一旦我将其更改为下面的内容,构建就成功了:

代码语言:javascript
运行
复制
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50648404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档