programing

실행 파일이 잘못된 사용 권한으로 서명되었습니다.

stoneblock 2023. 8. 22. 21:48

실행 파일이 잘못된 사용 권한으로 서명되었습니다.

아이폰의 애드혹 배포에 문제가 있습니다.저는 SDK 3.0으로 애플리케이션을 개발했습니다.저는 개발자 자격증을 가지고 있습니다.프로젝트에 인증서 및 프로비저닝 프로필을 추가했습니다.문제 없습니다.

됩니다."The executable was signed with invalid entitlements"전자수첩 창에 표시됩니다.내가 뭘 빼놓았나요?나는 아이폰을 2.2.1에서 업그레이드했고 애플에서 최신 SDK를 다운로드했습니다.

이 문제를 해결하는 것을 도와주세요.

포털 프로그램에는 꽤 좋은 지침이 있습니다.에 로그인하는 경우

http://developer.apple.com/iphone

그런 다음 왼쪽의 배포를 클릭하고 다음을 클릭합니다.

임시 배포를 위한 배포 프로비저닝 프로파일 생성 및 다운로드

하단의 링크

핵심 비트는 다음과 같습니다.

애드혹 배포의 경우 다음을 완료합니다.

  • 파일 메뉴에서 새 파일 -> iPhone OS -> Code Signing -> Entitlements를 선택합니다.파일 이름을 "Entitlements"로 지정합니다.plist"를 클릭하고 'Finish'를 클릭합니다.그러면 프로젝트 내에 기본 사용 권한 파일의 복사본이 생성됩니다.
  • 새 사용 권한을 선택합니다.파일을 나열하고 "get-task-allow" 속성의 선택을 취소합니다.사용 권한을 저장합니다.플리스트 파일(Xcode 4에서 get-task-allow는 "디버깅 가능"이라고 함)
  • 대상을 선택하고 빌드 설정 검사기를 엽니다.코드 서명 자격' 빌드 설정에서 새 자격의 파일 이름을 입력합니다.확장자를 포함한 plist 파일입니다.사용 권한을 지정하지 않으면 경로를 지정할 필요가 없습니다.프로젝트의 최상위 수준이 아닌 다른 곳에 파일을 나열합니다.
  • 'Build(구축)'를 클릭합니다. 참고: 이진 파일에는 57x57 픽셀의 평평한 사각형 이미지 아이콘이 포함되어 있어야 합니다.이 아이콘은 iPhone 또는 iPod touch 홈 화면에 표시됩니다.)

이 오류는 장치가 프로비저닝 프로파일에 포함되지 않은 앱을 프로파일링하려는 경우에도 발생할 수 있습니다.

사용할 개발 프로비저닝 프로파일에 장치가 포함되어 있는지 확인합니다.왠지 오류 메시지가 오해의 소지가 있습니다.제 자격은 사실 괜찮았습니다.

개발 빌드의 경우 "get-task-allow"를 선택해야 하지만 배포 빌드의 경우 선택 취소해야 합니다.이 작업을 수행하는 가장 쉬운 방법(AFAIK)은 프로젝트에 두 개의 사용 권한 파일을 두는 입니다.자격.plist 및 EntitlementsDebug.목록 - 프로젝트의 다양한 구성에 대해 빌드 프로젝트 설정에서 올바른 구성을 참조합니다.

Xcode 4의 애드혹 빌드에는 코드 서명 자격이 더 이상 필요하지 않습니다. 자세한 내용은 Apple 기술 노트 TN2250을 참조하십시오.

전화기에 디버그(!) 빌드를 배포하려면 "get-task-allow" 확인이 필요한 것 같습니다.

빌드 설정을 확인합니다.디버그 b) 사용 권한 제거에 대한 "코드 서명 사용 권한" 항목이 없어야 합니다.일시적으로 목록을 작성하고 디버그 버전을 작성합니다.누락된 사용 권한에 대해 불만을 제기하는 경우.plist, 그렇다면 당신도 아마 같은 상황일 것입니다, 저는 오늘 싸워야 했습니다. c) Entitlements로 다시 빌드합니다.plist를 선택하고 "get-task-allow"를 활성화합니다.지금 작동하면 다음과 같은 문제가 발생할 수 있습니다.

새 프로필을 가지고 장난친 후 전화기에 디버그 빌드를 배포할 수 없었습니다.애드혹은 괜찮았습니다.a)를 확인했습니다. - 비어 있습니다.음, 확인해봤는데 b) - 불만사항. c) - 효과가..

결국 나는 편집기에서 project.pbjproj를 조사했고 GUI가 주장했지만 "코드 서명 권한"에 대한 항목은 실제로 디버그 섹션에 없었습니다.저는 그것을 비우고 끝났습니다.

이는 응용 프로그램을 실행 중인 장치가 프로비저닝 프로필에서 선택되지 않았기 때문입니다.

인증서, 식별자 프로필을 선택하십시오.iOS Provisioning Profiles한 후 합니다.

enter image description here

저는 이것과 싸우는 재미있는 3시간을 막 보냈습니다.방금 프로젝트를 4.2로 업그레이드했는데 어떤 이유에서인지 작동하지 않습니다.

결국 사용 권한을 제거했습니다.파일을 나열한 다음 새 파일을 만들었습니다.

File > New File > Code Signing > Entitlement

파일 이름을 Entitlements로 지정합니다.플리스터

xCode의 Resources 그룹에 있는지 확인합니다.

Entitlements에서 get-task-allow BOOL 유형을 입력하지 않았습니다.플리스트 파일추가하고, 확인하고, 저장하고, 선택을 취소하고, 저장했습니다.이것은 제 기분을 나아지게 했습니다.

그런 다음 내가 만든 애드혹 및 릴리스 프로필을 제거했습니다.Provisioning Portal에서 다시 다운로드한 후 xCode Organizer에 다시 다운로드했습니다.

그런 다음 빌드 설정으로 이동하여 디버그 및 릴리스 프로파일에 올바른 프로파일이 할당되었는지 확인했습니다.

그런 다음 을 릴리스/장치로 변경했습니다.빌드 버튼을 누르면 작동합니다.

나는 이유를 모르겠다.

존의 대답은 99% 맞습니다.(적어도 내 구성에서는) 프로젝트에 대한 빌드 설정 검사기를 열어야 합니다.대상에 대한 빌드 설정에 "코드 서명 자격"이 없습니다.프로젝트에 하나의 대상만 있는 경우에는 이 방법이 문제가 되지 않을 수 있습니다.그러나 대상이 여러 개인 경우 프로젝트 빌드 설정으로 이동해야 합니다.어쨌든, 존이 말한 것을 실행한 후, 저의 애드혹 배포 빌드는 완벽하게 작동했습니다.

Xcode 5.1에서는 기본 설정 -> 계정 -> 세부 정보 보기...

서명 ID 상태가 유효한지 확인합니다.취소됨이 표시되면 더하기 버튼을 누르고 iOS 개발 또는 iOS 배포 중 적절한 서명 ID를 추가합니다.Xcode는 유효한 새 것으로 교체합니다.

그것을 해결한 나를 위해: https://coderwall.com/p/-ckobg .

  1. 프로젝트를 엽니다.xcodeproj > project.pbxproj
  2. 다음과 같은 모든 선을 제거합니다.
    1. PROVISIONING_PROFILE = ...
    2. "PROVISIONING_PROFILE[sdk=iphoneos*]" = ...
    3. CODE_SIGN_IDENTITY = ...
    4. "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ...
  3. 대상에 대한 프로비저닝 프로파일 및 코드 서명을 다시 설정합니다.

pJosh, 이것은 이해하는 데 도움이 될 수 있습니다.제 경우 팀 프로비저닝 프로필이 만료되었습니다(Provisioning Portal에 XCode에서 관리하는 것으로 표시됨). 그리고 애플리케이션에 대한 장치 테스트 프로필이 만료되었습니다. (이유는 모르겠지만 포털에서 팀 프로필 옆에 "갱신" 버튼이 있었지만 클릭해도 아무런 작업이 수행되지 않았습니다.)

그래서 곧 만료될 프로파일을 삭제한 다음 XCode에서 Organizer(Command-Shift-2)로 이동하여 라이브러리/프로비저닝 프로파일에서 만료된 프로파일을 삭제했습니다.그런 다음 하단의 "새로 고침"을 클릭하고, 내 애플 아이디를 입력하면 만료된 애플 아이디가 갱신됩니다.

마지막으로 타겟에서 빌드 설정, 코드 서명으로 이동하여 프로비저닝 프로필을 선택했습니다.Voila, 이제 내 장치에 연결됩니다.

방금 이 오류 코드를 받았습니다.이것을 유발하는 다른 것들이 있고 따라서 그것을 고치는 다른 방법들이 있는 것 같습니다.

저의 경우, 같은 이름을 가진 두 개의 다른 장치(아이폰 4와 아이폰 4S)가 있었습니다.그들 중 한 명의 이름을 바꾼 것이 이 오류를 완전히 해결했습니다.

기존 앱에 iCloud 지원을 추가하려고 했지만 사용 권한을 추가하고 iCloud를 구성한 후 앱이 더 이상 디버그되지 않습니다.

저는 제 일반 iOS 개발 인증서가 제가 작업하던 앱과 다른 앱 ID를 가지고 있다는 것을 깨달았습니다.그래서 이를 수정하기 위해 일반 인증서를 사용하는 대신 해당 APPID에 대한 특정 개발 인증서를 만들었습니다.

XCode에서 프로비저닝 프로필을 새로 고치고, 앱을 정리하고, 장치의 연결을 끊고, XCode와 연결된 장치를 다시 시작하고 실행했습니다. 이제 아주 효과적입니다!

저 또한 이것과 싸우는 데 몇 시간을 보냈습니다.해결책은 정말 간단합니다.의 루트에 사용권다편니.입니다.프로젝트 디렉터리의 루트에 있는 plist 파일.음과같 줄기찾은다라고 적힌 .<key>get-task-allow</key>그 밑에 있어야 합니다.<false/>을 로변으로 .<true/>.

너무 늦어서 죄송합니다만, 저는 이 질문을 보다가 저에게 맞는 것을 발견했습니다.PROJECT->빌드 설정(Build Settings)은 코드 서명(Code Signing)입니다.디버그 외에, 내 배포 프로파일은 다음과 같이 말했습니다.Iphone Distribution: MY NAME선택되었습니다.에 대신선습니다했택다니습을 선택했습니다.Iphone Developer: MY NAME 목에록운다롭의 에서.IpodProfile (for bundle identifiers com.myName.myApp내 장치에 대한 프로비저닝 프로파일이었습니다.이것이 도움이 되길 바랍니다!

제가 관리하는 팀의 개발자에게 이런 일이 생겼습니다.

그의 개발자 인증서가 만료된 것으로 밝혀졌고, 갱신 후 그의 앱이 사용하는 프로비저닝 프로필에 인증서를 추가하는 것을 소홀히 했습니다.enter image description here

저는 애플로부터 새롭게 업데이트된 라이선스 계약에 동의하지 않았습니다.

간략하게 : 개발자 계정에 로그인하여 -> 프로필의 -> 리뷰 -> 계약서를 읽거나 변호사에게 읽어주도록 한 후 -> 동의 (본인의 의사에 따라) -> 프로필을 다시 클릭하여 프로필의 상태를 확인하시기 바랍니다.

내 시나리오에서는 유효한 코드 서명 엔티티가 나타나지 않았습니다.위의 절차를 따르자 눈에 띄었고 기기에서 앱을 실행하거나 iPA 파일을 만드는 데 큰 어려움이 없었습니다.

모든 것이 올바르게 설정된 것 같았을 때 이 문제가 발생한 경우, 빌드 설정이 올바른 프로비저닝 프로필을 가리키고 있었고, 코드 서명이 올바르게 설정된 경우 등이 발생했습니다.

문제가 발생한 이유는 방금 구성을 생성했지만 새 구성을 위해 코코아 포드를 재생성하지 않았기 때문입니다.이미지에서 볼 수 있듯이, 새로운 애드혹 구성은 다음을 가리키고 있습니다.Pods.production구성, 대신Pods.ad-hoc구성(및 테스트 각각)

Demonstrating a mis-match of ad-hoc configuration and scheme configuration

수정 방법:

  • 문제가 되는 구성을 다음으로 설정합니다.None내가 이렇게 하지 않으면 코코팟은 구성을 생성하지 않을 것입니다.
  • XCode 닫기
  • 달려.pod install
  • XCode를 다시 열고 새 구성표의 구성을 새로 생성된 구성으로 설정합니다.

바로 그거야!

사용 중인 장치가 프로비저닝 프로파일에 포함되어 있는지 확인합니다.

언급URL : https://stackoverflow.com/questions/1074546/the-executable-was-signed-with-invalid-entitlements