LoginSignup
0
0

More than 5 years have passed since last update.

watchアプリで「A signed resource has been added, modified, or deleted.」となったときの対処法

Posted at

現象

watchアプリを実機にインストールしようとすると、「App Installation failed. A signed resource has been added, modified, or deleted.」というエラーがでる。

image

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日ぐらい費やしてしまった。。。:cry:

Cocoapodsだとbitcode注意

iOSではbitcodeを無効にしていても、watchOSではbitcode必須となる。そのため、watchOS側で利用するフレームワークは ENABLE_BITCODEYES にする必要がある。

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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0