ionic iOSビルドエラー
2018年01月25日 · ionic
ionicでHTML5ハイブリッドモバイルアプリの制作ができると最近聞いたので色々と調べながらサンプルを動作させてみると
ビルド時に「no visible interface for ‘NSData’ declares the selector ‘appendData:’」エラーがでたので、同じエラーで悩まない様にメモを残しておきます
エミュレータを起動時にエラー
「no visible interface for ‘NSData’ declares the selector ‘appendData:’」
と出力されエミュレータが動作しなかった。
私の環境は
Node : v8.9.4
npm : 5.6.0
OS : OS X Yosemite
Xcode : Xcode 7.2.1 Build version 7C1002
同じエラーがないか検索すると英語でのやり取りがいくつかあった
https://github.com/ionic-team/cordova-plugin-ionic-webview/issues/42
https://github.com/ionic-team/ionic/issues/13445
バージョンの問題ではないかと書かれていた
Xcodeバージョンアップも試みてみたがバージョンが上がらす・・・・(別の問題かな)
もう少し調べてみるとこちらの内容が書かれていた
https://stackoverflow.com/questions/48115803/cordova-error-when-building-ionic1-app-to-ios-platform
.hファイルに書かれている
「@property(nonatomic, readonly) NSData* data;」を
「@property(nonatomic, readonly) NSMutableData* data;」に書き換えろ
という内容でした。
私の環境ですと
GCDWebServerDataRequest.h
GCDWebServerMultiPartFormRequest.h
に「@property(nonatomic, readonly) NSData* data;」が書かれておりました
指定の内容に書き換えてみたところ無事にエミュレータが動作しました。
まとめ
「no visible interface for ‘NSData’ declares the selector ‘appendData:’」のエラー
.hファイルに書かれている
「@property(nonatomic, readonly) NSData* data;」を
「@property(nonatomic, readonly) NSMutableData* data;」に書き換えるととりあえずエミュレータの動作する
一応動作するので解決したが、ちゃんとした解決方法があると思う