Program Tip

--resource-rules는 mac os x> = 10.10에서 더 이상 사용되지 않습니다.

programtip 2020. 11. 6. 19:04
반응형

--resource-rules는 mac os x> = 10.10에서 더 이상 사용되지 않습니다.


iResign 앱이있는 Mac Os 10.10에서 새 프로비저닝 프로파일로 내 ipa 파일을 사임하려고했지만 "경고 : --resource-rules는 Mac OS X> = 10.10에서 더 이상 사용되지 않습니다"라는 경고가 표시됩니다.

이제 어떻게해야합니까?


해결 방법을 찾았습니다 . XCode에서 iResign 앱을 실행하면 문제없이 앱을 종료합니다 (팝업 대신 콘솔에 경고가 표시됨). 하지만 XCode를 닫고 앱만 실행하면 팝업이 다시 표시됩니다!

BTW : 버그 발견 :) 조건

if (systemVersionFloat < 10.9f)

Yosemite 10.10에 대해 중단되었습니다. 이상한.

감사,


프로젝트> 타겟> 타겟 선택> 빌드 설정>

Code Signing Resource Rules Path

다음을 추가하십시오.

$(SDKROOT)/ResourceRules.plist

여기에 이미지 설명 입력


이후 엑스 코드 (7)Code Signing Resource Rules Path 빌드 설정은 비어 있어야합니다 그렇지 않으면이 경고가 생성됩니다.

기술 노트 TN2206 은 다음과 같은 세부 정보를 제공합니다.

자원 규칙

OS X Mavericks v10.9 이전 시스템은 번들의 어떤 파일을 코드 서명으로 봉인해야하는지 제어하는 ​​서명 기능 (--resource-rules)을 문서화했습니다. 이 기능은 Mavericks에서 더 이상 사용되지 않습니다. Mavericks에서 만든 코드 서명은 항상 번들로 모든 파일을 봉인합니다. 더 이상 명시 적으로 지정할 필요가 없습니다. 이는 또한 Xcode의 코드 서명 리소스 규칙 경로 빌드 설정을 더 이상 사용하지 않아야하며 비워 두어야 함을 의미합니다.

따라서 더 이상 서명에서 번들의 일부를 제외 할 수 없습니다. 번들은 서명 된 후에는 읽기 전용으로 처리되어야합니다.


Xcode 7 이후 이전 솔루션이 작동을 멈췄습니다. Rishi Goel ( https://stackoverflow.com/a/32762413/2252465 ) 이 새로운 것을 지적했습니다.

  1. 풀다 CODE_SIGN_RESOURCE_RULES_PATH=$(SDKROOT)/ResourceRules.plist
  2. /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication스크립트를 찾아 업데이트하십시오.
    스크립트에서 다음 코드를 포함하는 줄을 찾습니다.

    my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements,resource-rules",
                      "--sign", $opt{sign},
                      "--resource-rules=$destApp/ResourceRules.plist");
    

    다음으로 변경하십시오.

    my @codesign_args = ("/usr/bin/codesign", "--force", "--preserve-metadata=identifier,entitlements",
                      "--sign", $opt{sign});
    

xcodebuild 명령에 아래 인수를 추가해보십시오.

-sdk iphoneos CODE_SIGN_RESOURCE_RULES_PATH='$(SDKROOT)/ResourceRules.plist' 

터미널을 사용하여 앱을 사임 resource-rules하는 경우 코드 서명을 수행하는 동안 생략 할 수도 있습니다. 서명 할 리소스와 서명하지 않을 리소스를 외부에서 지정할 필요가 없기 때문입니다. 이제 패키지 내부의 모든 리소스에 서명해야합니다.

터미널을 사용하여 앱을 종료하려면 다음 단계를 따르세요.

unzip MyApp.ipa

rm -rf Payload/MyApp.app/_CodeSignature/

cp ~/Desktop/MyAdHoc.mobileprovision Payload/MyApp.app/embedded.mobileprovision 

codesign -f -s "iPhone Distribution: Code signing Certificate for Enterprise or Ad-hoc app" Payload/MyApp.app

zip -qr MyApp_Resigned.ipa Payload/

방금 Xcode 7 GM (Xcode 6.4부터)에서 기존 iOS 앱을 열고이 지원 중단 경고를 확인했습니다.

'코드 서명 리소스 규칙 경로'를 업데이트하라는 답변과 댓글이 Mac 앱을 참조한다는 것은 흥미 롭습니다.

제 경우에는 프로젝트에이 키와 값이 이미 기본적으로 설정되어 있습니다 (설정하지 않았습니다). 경고는 리소스 규칙도 더 이상 사용되지 않는다는 것입니다.

나를 위해 '코드 서명 리소스 규칙 경로'의 값을 삭제하면 경고가 제거되었습니다. 이 방법으로 새 ​​빌드를 제출하지 않았으므로 다시 돌아와이 답변을 업데이트해야 할 수도 있습니다.

내 대답이 다른 사람들이 보는 것과 반대라는 것이 흥미 롭다고 생각했습니다.


iResign 앱이 codesign 작업을 호출하는 인수 목록에서 두 개의 --resource-rules 매개 변수를 주석 처리하면 앱의 프로젝트에 대한 프로젝트 빌드 설정을 변경할 필요가 없습니다.

작업하려는 모든 프로젝트의 빌드 설정을 수정해야한다는 생각이 마음에 들지 않습니다.

resign 도구를 다시 빌드하고 내 Applications 디렉토리에 복사하여 Xcode에서 열 필요가 없도록했습니다.

참고 URL : https://stackoverflow.com/questions/26459911/resource-rules-has-been-deprecated-in-mac-os-x-10-10

반응형