watch 앱에서 "A signed resource has been added, modified, or deleted."가 되었을 때의 대처법
현상
watch 앱을 실제 기기에 설치하려고 하면 "App Installation failed. A signed resource has been added, modified, or deleted."라는 오류가 발생합니다.
simulator에서의 실행이나 iOS어플 단독으로의 실행은 문제 없게 할 수 있다.
clean하거나, DerivedData 지우거나, provisioning profile를 한번 지워 다시 넣거나 하면, 한 번 고쳤지만, 그 후 다시 재현해 이번은 고치지 않게 되었다.
※Xcode8.2.1, watchOS3.1에서 확인
대처법
watchOS에서 이용하는 프레임워크는 Carthage의 이용을 중지하고 Cocoapods를 사용한다.
Using copy-frameworks for watch extension causes "A signed resource has been added, modified, or deleted" Xcode error · Issue #1272 · Carthage/Carthage 에 있는 것과 같이, Carthage의 copy-framework가 원인같다.
↑의 issue에 써 있는 방법이라면, 다른 에러로 하거나, 실행시에 Framework를 찾을 수 없거나 했기 때문에, Cocoapods를 사용하면, 일단 무사히 실기 인스톨 할 수 있었다.
구그하거나 Twitter 검색하면 Cocoapods에서도 과거에 비슷한 현상은 있었던 것 같지만, 적어도 자신이 시도한 v1.1.1에서는 지금은 문제 없다.
여기까지 도착하는데 총으로 하루 종일 지출했다. . .
Cocoapods와 bitcode주의
iOS에서는 bitcode를 무효로 하고 있어도, watchOS에서는 bitcode 필수가 된다. 따라서 watchOS 측에서 이용하는 프레임워크는
ENABLE_BITCODE
를 YES
로 할 필요가 있다.post_install do |installer|
installer.pods_project.targets.each do |target|
# watchosではbitcode必須
watchos_targets = ['Pods-HogeWatch Extension', 'Alamofire', 'SwiftyBeaver', 'SwiftDate']
target.build_configurations.each do |config|
config.build_settings['ENABLE_BITCODE'] = watchos_targets.include?(target.name) ? 'YES' : 'NO'
end
end
end
Reference
이 문제에 관하여(watch 앱에서 "A signed resource has been added, modified, or deleted."가 되었을 때의 대처법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/sagaraya/items/0b7705ba71d3023f6c7b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)