푸시 알림 권한이 없습니다.
제출이 거부되었을 때 제출할 앱이 있는데 메시지가 표시됩니다.
누락 된 푸시 알림 권한-앱이 Apple 푸시 알림 서비스에 등록 된 것으로 보이지만 앱 서명의 권한에는 "aps-environment"권한이 포함되어 있지 않습니다. 앱이 Apple 푸시 알림 서비스를 사용하는 경우 프로비저닝 포털에서 앱 ID가 푸시 알림에 대해 활성화되어 있는지 확인하고 "aps-environment"권한이 포함 된 배포 프로비저닝 프로파일로 앱에 서명 한 후 다시 제출하십시오.
Ad-hoc provisiong를 확인한 후 aps-environment 및 production을 찾았지만 배포 프로비저닝을 열면 찾지 못했습니다.
이것이이 오류 메시지 및 사과 거부의 원인입니까? 어떻게 해결할 수 있습니까?
그렇습니다. 이것이 App Store 거부의 원인입니다. 임시 프로비저닝 프로파일에 aps-environment 키가있는 경우 이는 Apple Provisioning Portal에서 앱이 올바르게 구성되었음을 의미합니다. 로컬 컴퓨터에서 App Store 배포 프로파일을 삭제 한 다음 프로비저닝 포털에서 배포 프로파일을 다시 다운로드하여 설치하기 만하면됩니다. 이 새로운 것은 aps-environment 키를 포함해야합니다.
첫 번째 앱 ID
프로덕션 측에서 ID 푸시 알림을 활성화해야합니다
그림과 같이
두 번째 인증서
프로덕션 섹션에서 ID로 두 개의 인증서를 만듭니다 (푸시 알림 사용)
App Store 및 Ad Hoc 인증서
Apple 푸시 알림 서비스 SSL (샌드 박스) 인증서
세 번째 프로비저닝 프로파일
배포 섹션에서 ID를 사용하여 App Store 프로필을 만듭니다.
드디어
저장소를 업로드하는 동안 어떤 프로비저닝 프로파일이 사용되었으며 많은 권한이 있는지 확인해야합니다.
이 모든 경우 에이 문제가 발생하면 이것이 도움이되기를 바랍니다.
XCode 8에서는 규정 및 인증서의 모든 항목을 활성화하는 것 외에 대상의 기능 탭에서 푸시를 활성화해야합니다. Xcode 8 "제출시 aps 환경 권한이 앱의 서명에서 누락되었습니다"
여기 에 대한 내 블로그 게시물 .
I got this message for a different reason -- I submitted an app via Xcode without first creating an App Store Distribution Profile specifically for the app. I believe Xcode automatically uses a wildcard App Store profile if you have one installed. But an app uses Push Notifications requires its own profile.
The fix is to create a new App Store Distribution profile for the app. Then you download it, drag it onto Xcode, and modify your project Build Settings > Code Signing > Release to use the new profile.
Following on from the answer given by @Vaiden, in Xcode 8 you can resolve this issue by selecting the target and clicking the "Fix issue". Of course, you'll still need to set up push notifications in the Apple Developer portal (you can simplify the process a little by using the new "Automatically manage signing" option, which saves you the hassle of downloading the provisioning profiles).
For those running into this issue who actually are using Push Notifications in their apps:
Our push certs were recently about to expire, so we created new dev / prod push certs in the standard way outlined by Apple (I won't go into detail around this here, there is plenty of info on it all over the web when updating your push certs for another year of use).
After doing so however, the issue in this question popped up. No matter what we did, we received this email from Apple after submitting our app. When we checked the settings of our Distribution Provisioning Profile in the Apple Member Center, everything looked fine (Push was enabled for our App ID for both prod / dev, and our distribution provisioning profile was still connected to this App ID, we literally just created new push certs for another year as is the standard practice).
Finally, this is what ended up solving it for me:
- Create a new Distribution Provisioning Profile pointing to your App ID (leave your current one in tact)
- In Xcode, refresh your provisioning profiles via Settings > Accounts > Select your account > Details > Click the refresh icon
- Manually create an entitlements plist file for your app:
- File menu > New File...
- Select iOS > Resource > Property List
- Name the new file "foo.entitlements" (typically, "foo" is the target name)
- Click the (+) next to "Entitlements File" to add a top-level item (the property list editor will use the correct schema due to the file extension)
- Ensure this entitlements file is being used in your target's Build Settings (Target > Build Settings > Search for "Entitlements", in the CODE_SIGN_ENTITLEMENTS set the path to your Entitlements file you just made)
- Make sure the provisioning profile / code signing identity in your Target is set correctly to your appropriate distribution provisioning profile / signing identity (this should be obvious)
- I'm not 100% sure if this affected it (it shouldn't since Target settings override project settings, but I did this anyways), make sure your Project's provisioning profile / signing identity match your Target's
- In the entitlements file you made, right click in the empty file and select "Show Raw Keys/Values"
- Add a new entry to the entitlements file called "aps-environment" and set it's value to "production"
- One key note, if you were previously using the keychain-access-groups entitlement, you'll want to add that key here as well because for some reason it got cleared for me when doing this manually. Make sure the value is the same as the value used in previous builds (you can find the value by finding a previous build in Organizer, attempting to submit to the app store, select your team, then before submitting the app tap the arrow beside the "(X) Entitlements" string to expand the entitlements and see the value of the keychain-access-group entitlement.
- Archive your app and attempt to submit it to the point of getting to the final "Submit" button. You should see this app was now built with the new provisioning profile you created in member center. Cancel out of this now.
- Go back to the Apple member center and delete the new provisioning profile you created in step 1.
- Back in Xcode, refresh your provisioning profiles list once again by repeating step 2.
- Now archive your app again, and you should see that the app was built with the old Distribution provisioning profile you wanted to use, and correctly has the aps-environment entitlement. Submit and you're done.
I know this isn't as detailed as it should be as it should have screenshots, I will try to update it with screenshots when I can but for the time being I'm in a time crunch right now and wanted to get the jist of what I did out there. There is also a very likely chance that some or most of the steps I've outlined aren't necessary, I'm putting them here because I did them and they may have led to the final solution.
check Your App Id is Push Enabled or not on developer.apple.com in iOS Provisioning Portal If Not then Enabled it,configure Your Push SSL Certificate for your App Id Download it, and Reinstall in Your Keychain Once again then Download Your Distrubution Profile install in your Xcode Liabrary
I was also facing this issue even I was not using push notifications at all in my app.Making new provisioning profile also did not work for me.What I did was:-
1.Create fresh new certificate for Ad hoc & App Store only.
2.Then make distribution profile with this certificate and integrate profile with Xcode.
Then newly submitted build with this profile approved without any warning.
In my case, even I created a myapp.profile and set it in xcode manually, and when I chose "show in finder" and located the embedded.mobileprovision and checked to make sure aps-environment is there in the file, the error was still there.
I then went to developer center and found that the status of XC: myapp.profile is invalid. I updated it and installed the XC: myapp.profile and it worked fine.
I think xcode is trying to manage the profile and you need to check the provisioning profile when you submit your binary to store, and ensure it is the correct one. And according to other answers it can be caused for various reasons so it can be really annoying.
UPDATE:
Once you've signed with the downloaded profile and confirmed that aps-environment
was there when you try to submit to App Store
, you should be able to change the profile and code signing entity to automatic and iOS Developer
. Hope it can be improved in Xcode 7.
This was what fixed it for me. (I had already tried toggling the capabilities on/off, recreating the provisioning profile, etc).
In the Build Settings tab, in Code Signing Entitlements, my .entitlements file wasn't link for all sections. Once I added it to the Any SDK section, the error was resolved.
To solve this for an expo 'ejected' app, I went to the capabilities tab, enabled push, then disabled it again. This removed the APNS 'entitlements' setting from the .entitlements file.
This happened to me suddenly because my app's distribution profile had expired. Xcode began using the wildcard profile instead, which did not have the push notification entitlement enabled. I didn't receive any warning. The fix was easy; I just had to generate another distribution profile for my app in the Apple Developer Member Center, download it, and double-click to install in Xcode.
There are some really good suggestions on here.
Referring to the last screenshot that Mina provided, after initially archiving my app, the provisioning profile mentioned during uploading contained a wildcard (XC.*). This is wrong.
It took some considerable effort in order to resolve this. I had to perform a combination of the suggestions that Simon Woodside & Mina Fawzy provided.
If you have any existing certificates and provisioning profiles related to your project, now would be a good time to remove them all locally, and revoke them all remotely. Give yourself a fresh start.
Mina Fawzy's detailed suggestion is excellent. Performing Mina's suggestion, if performed correctly, should take care of you online.
Enter Simon's suggestion. Two things I needed to check inside my project. Using XCode, go here:
PROJECT -> BUILD SETTINGS -> CODE SIGNING
Review the Code Signing Identity and Provisioning Profile properties. Make sure you set those two properties to that of your project name. Don't allow XCode to automatically select for you, and don't use some generic code signing identity (e.g. Iphone Developer).
보관하기로 결정하기 전에 실제로 기기에 앱을 설치할 수 있는지 확인하십시오.
가장 큰 문제는 내가 활성화 한 후 가지고 Push Notification
에서 Capabilities
모든 인증서를 리메이크이다 대상 이름 과 폴더 이름 이 프로젝트는 두 문자열에서 구성되었다 저장된 공백으로 구분. 공간을 제거한 후 모든 것이 잘 작동했습니다!
나는 같은 문제가 있었고 해결책은 Target-> Capabilities에서 푸시 알림 권한을 추가하는 것이 었습니다.
참고 URL : https://stackoverflow.com/questions/14807129/missing-push-notification-entitlement
'development' 카테고리의 다른 글
C #의 #ifdef (0) | 2020.07.22 |
---|---|
목록을 구분 기호로 연결하는 haskell 기능이 있습니까? (0) | 2020.07.22 |
svn : 특정 버전의 트렁크에서 분기를 만드는 방법 (0) | 2020.07.22 |
비트 맵을 위젯에 동적으로 넣을 때 실패한 바인더 트랜잭션 (0) | 2020.07.22 |
Cython : "치명적인 오류 : numpy / arrayobject.h : 해당 파일 또는 디렉토리가 없습니다" (0) | 2020.07.22 |