在命令行中构建后缺少推送通知权利
Missing Push Notification Entitlement after building in command line
首先,我通过命令行构建我的应用程序 - 不幸的是,这是必要的,因为我正在使用 Azure DevOps 进行构建。
由于该应用程序有一个扩展,我创建了两个配置文件(该应用程序具有推送通知功能)并通过 plist 文件构建和签署 ipa(多配置-profiles.plist) 如下:
xcodebuild -sdk iphoneos -configuration Release -project myapp.xcodeproj -scheme MyApp archive -archivePath myapp.xcarchive CODE_SIGNING_ALLOWED=NO
xcodebuild -sdk iphoneos -configuration $(Configuration) -project myapp.xcodeproj build -exportArchive -archivePath myapp.xcarchive -exportOptionsPlist multi-provisioning-profiles.plist -exportPath /ipa
然后 ipa 成功上传,不久之后我收到 Apple 发来的有关推送通知权利的错误电子邮件。
知道我在这里可能遗漏了什么吗?
为了完整起见,这里还有 多配置-profiles.plist 文件:
<dict>
<key>provisioningProfiles</key>
<dict>
<key>[My app key]</key>
<string>[UUID of app's prov profile]</string>
<key>[My extension key]</key>
<string>[UUID of extension's prov profile]</string>
</dict>
<key>signingCertificate</key>
<string>iOS Distribution</string>
<key>signingStyle</key>
<string>manual</string>
<key>method</key>
<string>app-store</string>
<key>teamID</key>
<string><[My team ID]</string>
</dict>
</plist>
问题似乎源于未签署存档(CODESIGNINGALLOWED=NO 在这种情况下很糟糕)。使用配置文件对 xarchive 进行签名后,我在上传后就不再收到来自 Apple 的电子邮件。
我最初避免签署存档,因为我一直在努力让它与多个配置文件一起使用,但最终找到了以下解决方案:
作为参考,这是我最终的存档命令的样子:
xcodebuild -sdk iphoneos -configuration Release -project myapp.xcodeproj -scheme MyApp archive -archivePath myapp.xcarchive -allowProvisioningUpdates OTHER_CODE_SIGN_FLAGS=--keychain tempkeychain.keychain APP_PROFILE=[UUID of app's prov profile] EXTENSION_PROFILE=[UUID of extension's prov profile]
首先,我通过命令行构建我的应用程序 - 不幸的是,这是必要的,因为我正在使用 Azure DevOps 进行构建。
由于该应用程序有一个扩展,我创建了两个配置文件(该应用程序具有推送通知功能)并通过 plist 文件构建和签署 ipa(多配置-profiles.plist) 如下:
xcodebuild -sdk iphoneos -configuration Release -project myapp.xcodeproj -scheme MyApp archive -archivePath myapp.xcarchive CODE_SIGNING_ALLOWED=NO
xcodebuild -sdk iphoneos -configuration $(Configuration) -project myapp.xcodeproj build -exportArchive -archivePath myapp.xcarchive -exportOptionsPlist multi-provisioning-profiles.plist -exportPath /ipa
然后 ipa 成功上传,不久之后我收到 Apple 发来的有关推送通知权利的错误电子邮件。
知道我在这里可能遗漏了什么吗?
为了完整起见,这里还有 多配置-profiles.plist 文件:
<dict>
<key>provisioningProfiles</key>
<dict>
<key>[My app key]</key>
<string>[UUID of app's prov profile]</string>
<key>[My extension key]</key>
<string>[UUID of extension's prov profile]</string>
</dict>
<key>signingCertificate</key>
<string>iOS Distribution</string>
<key>signingStyle</key>
<string>manual</string>
<key>method</key>
<string>app-store</string>
<key>teamID</key>
<string><[My team ID]</string>
</dict>
</plist>
问题似乎源于未签署存档(CODESIGNINGALLOWED=NO 在这种情况下很糟糕)。使用配置文件对 xarchive 进行签名后,我在上传后就不再收到来自 Apple 的电子邮件。
我最初避免签署存档,因为我一直在努力让它与多个配置文件一起使用,但最终找到了以下解决方案:
作为参考,这是我最终的存档命令的样子:
xcodebuild -sdk iphoneos -configuration Release -project myapp.xcodeproj -scheme MyApp archive -archivePath myapp.xcarchive -allowProvisioningUpdates OTHER_CODE_SIGN_FLAGS=--keychain tempkeychain.keychain APP_PROFILE=[UUID of app's prov profile] EXTENSION_PROFILE=[UUID of extension's prov profile]