Help us understand the problem. What is going on with this article?

iOSアプリ 64bit 対応メモ

More than 3 years have passed since last update.

アップルがiOSアプリ開発者向けて、2015年2月以降の新規アプリおよび更新には64bit対応および iOS 8 対応を義務付けることを宣言しました。
先日申請しようとした際に64bitに対応してないよと怒られたので、現段階でも申請するアプリには64bit対応が義務付けられているようです。いつかはくることがわかっていましたが、今回やっと64bit対応しました。
※(11/18更新)現在でも64bit対応が義務付けられていると書いてありますがおそらく間違いです。混乱させてしまい申し訳ありません。
私の場合、validateの時点でワーニングが表示され、64bit対応してから申請したため、64bit対応前に申請していないのですが、おそらく申請はできると思います。validateもあくまでワーニングであり、validateはpassしたと記憶しています。曖昧な記憶で申し訳ありません。

今回は、そのときにおこなった対応をまとめておきます。いろいろ調べていても情報が少なく、結構時間を取られたので同じ症状の方は参考にしてください。
正しい解決策かわからないので、間違っていることがあれば言っていただけると幸いです。

公式の移行ガイド
Cocoa Touch 64ビット移行ガイド

公式ガイドを読む

バイト長が変わったり、関数呼び出しが変わったようです。
また、実機でないと発生しないときもあるようなので、実機テストが必要とのことでした。

ここはガイドの通りに対応しました。

その他におこなったこと

Valid Architectureにarm64を追加

昔64bitが入っているとエラーが出たときに64bitを外すことで対応したので、今回64bitを追加しました。

Project > Build Settings > Architectures > Valid Architectures に arm64 を追加します。

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にすると動くようになりました。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした