[iOS][64-bit対応][エラー]missing 64-bit support
validateの時点でワーニング「missing 64-bit support」が表示され、アップルがiOSアプリ開発者向けて、2015年2月以降の新規アプリおよび更新には64bit対応および iOS 8 対応を義務付けることを宣言したようです。
対応方法を教えてください。
対応方法を教えてください。
0
lujian - Javaが得意です。
1.Valid Architectureにarm64を追加
昔64bitが入っているとエラーが出たときに64bitを外すことで対応したので、今回64bitを追加しました。
Project > Build Settings > Architectures > Valid Architectures に arm64 を追加します。
2.Apple Mach-O Linker Errorを解消
とりあえずこれで実行してみるとApple Mach-O Linker Errorが出ました。エラー文は以下の通りです。
ライブラリを使っていると起こるエラーだと思いますが、公式ドキュメントにはライブラリに関する話はもちろん無いので、ここで結構詰まりました。
ld: warning: directory not found for option '-L/Users/.../Pods/build/Debug-iphoneos'
ld: library not found for -lPods-AFNetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation)
これを解消するために以下の操作をおこないました。
Build Active Architecture OnlyのDebugをNoにする
Pods > Build Settings > Architectures > Build Active Architecture Only のDebugをNoにすると動くようになりました。
Build Active Architecture OnlyのDebugデフォルトYESなのは理由がある
"Build Active Architecture Only"はビルドしようとしているアクティブなアーキテクチャのみバイナリを生成するかどうかなので、例えばiPhone5(armv7s)実機で開発作業の検証を行っている時はarm64のビルドなどしなくて良いのではないかと思う。よって、開発プロジェクト側もDebugの"Build Active Architecture Only"をpodsプロジェクトと併せてYESにするとビルドが出来るようになった。
おそらく全部NOに統一してしまっても開発はできるが特定の端末で動作を確認したい場合でも全部NOに統一するのはビルド時間が無駄なはず。
追記:Cocoa Touch 64ビット移行ガイド
https://developer.apple.com/jp ... e.pdf
昔64bitが入っているとエラーが出たときに64bitを外すことで対応したので、今回64bitを追加しました。
Project > Build Settings > Architectures > Valid Architectures に arm64 を追加します。
2.Apple Mach-O Linker Errorを解消
とりあえずこれで実行してみるとApple Mach-O Linker Errorが出ました。エラー文は以下の通りです。
ライブラリを使っていると起こるエラーだと思いますが、公式ドキュメントにはライブラリに関する話はもちろん無いので、ここで結構詰まりました。
ld: warning: directory not found for option '-L/Users/.../Pods/build/Debug-iphoneos'
ld: library not found for -lPods-AFNetworking
clang: error: linker command failed with exit code 1 (use -v to see invocation)
これを解消するために以下の操作をおこないました。
Build Active Architecture OnlyのDebugをNoにする
Pods > Build Settings > Architectures > Build Active Architecture Only のDebugをNoにすると動くようになりました。
Build Active Architecture OnlyのDebugデフォルトYESなのは理由がある
"Build Active Architecture Only"はビルドしようとしているアクティブなアーキテクチャのみバイナリを生成するかどうかなので、例えばiPhone5(armv7s)実機で開発作業の検証を行っている時はarm64のビルドなどしなくて良いのではないかと思う。よって、開発プロジェクト側もDebugの"Build Active Architecture Only"をpodsプロジェクトと併せてYESにするとビルドが出来るようになった。
おそらく全部NOに統一してしまっても開発はできるが特定の端末で動作を確認したい場合でも全部NOに統一するのはビルド時間が無駄なはず。
追記:Cocoa Touch 64ビット移行ガイド
https://developer.apple.com/jp ... e.pdf