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では今のところ問題ない。
ここまでたどり着くのにトータルでまる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
Author And Source
この問題について(watchアプリで「A signed resource has been added, modified, or deleted.」となったときの対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/sagaraya/items/0b7705ba71d3023f6c7b著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .