警告
Alamofire 4.1.0でDeployment Targetが iOS8.0 に戻りましたAlamofire
AlamofireのSwift3版はAlamofire4です。 (2016/11/11現在)
Alamofire4はDeploymentTargetがiOS9.0になっています。
よって、通常ではAlamofire4を使用する場合はiOS8のサポートを切る必要があります。
しかし、いろいろな悲しい事情があり、iOS8のサポートが切れないけれど、Swift3が使いたいという状況があると思います。
URLSessionStreamTask
Alamofire4がiOS8のサポートを切った理由は、URLSessionStreamTask
というiOS9.0+のクラスを使用するためです。
Alamofireの中を覗くと、このクラスは新しく追加されたメソッドで使用されているようです。
つまりこれまで、Alamofireを使っていたiOS8サポートのプロジェクトではこれらのメソッドは使っていないはずです。
そこで、URLSessionStreamTask
に関係する実装をすべて取り外してしまうことでAlamofire4をiOS8で動作するように変えました。
修正作業
AlamofireをcloneしてiOSのDeployment TargetをiOS8.0に下げて、ビルドします。
そこでエラーになった箇所を全部#if HOGE
で囲ってビルド対象から除外します。
完成物
Carthageで既存のiOS8サポートのプロジェクトに入れてみました。
github "tattn/Alamofire" "swift3-ios8"
動作に問題ありませんでした。
本来はこれを機会にiOS8のサポートを切って使用するべきですが、そうはいかない事情があると思いますので、このような対応も しばらくの間 は仕方がないのではないでしょうか?
お困りの方は検討してみてはいかがでしょうか。