XcodeアップデートによるAdMobメディエーション不具合への対応

Macbook Air and Analog Tools

アプリの開発中はなるべくなら環境を変えたくはないものですが 長期に及べば然うも言ってはいられません。 開発環境がソフトウェアとしての不具合など修正されている場合も多ければ尚更です。 初めてのXcodeアップデート には此の如き不安も抱えての実施ではありました。

案の定問題の発生したのは AdMobメディエーション に於いてでした。 Xcode5から5.1へのアップデートに伴い開発中のゲームアプリが ビルド出来なくなってしまったのです。

スポンサーリンク
日付:2014年3月13日
開発機:MacBook Air(11-inch, Mid 2013)
MacOSバージョン:OS X 10.9.1
Xcodeバージョン:5.1
言語:Objective-C
主関連アプリ:uPanda Breaks Out Fruits

どうやらXcodeを5.1にアップデートした際に Xcodeに於いて促されるコードの書き換えを安易に受け入れたのに因はあると思われます。 開発中のアプリのプロパティの Build Setting >> Architecture 部分を書き換えた為にビルドの際エラーが発生するものとエラー出力より類推されました。 値を確認すると Standard architectures (armv7, armv7s, arm64) 、即ち64bitを示す値となっていました。

先ずはエラー出力よりリンカフラグについてネットを繰ってサイト Cocoaの日々 の以下の2010年11月24日の記事から引用する辺りを参考に -all_load を書き加えるも警告は消えてくれはしません。

[Mac][iOS] Static Library (7) カテゴリを使う場合の注意点 "-ObjC" と "-all_load"
"-ObjC" フラグを指定してもカテゴリを含む Static Library のロードが働かない。 これを回避する為に "-all_load" または "-force_load" フラグを使う。

どうやら矢張り Build Setting >> Architecture の値を32Bitに戻す必要がある、と判断して再びネットを繰って見付け出したのが 2014年3月11日と当時としては投稿されたてのサイト hachinoBlog の以下記事でした。

Xcode5.1でundefined symbols for architecture armv64 エラー

将に求めたるべき情報と勇んで $(ARCHS_STANDARD) を消して $(ARCHS_STANDARD_32_BIT) に書き換えたら見事に警告が消えビルドの成ったものです。

uPanda Breaks Out Fruits
無料:カテゴリ: ゲーム: 4+ 評価
バージョン: 4.12
リリース: 2014年9月15日
更新: 2022年4月20日
サイズ : 10.7 MB
互換性: iOS 14.4 以降のiPhone、iPod touch に対応。および、macOS 11.0以降とApple M1 チップを搭載したMac に対応。