【Swift】ちょっと珍しいエラー?【libclosured.dylib】

先日、アプリをアップデートして課金機能を実装しました。
ユーザーから課金しても良いので広告を外してほしいと熱望されていたのです。
しかし、ただでさえプログラミングに慣れていないのに、課金はかなり理解し難く、たいへん手を焼きました。
おかげで途中数ヶ月放置なんてこともあり、実装できるまでに1年近くかかりました。

で、Xcodeのシミュレータでも、実機でもsandBoxを使って問題なく課金が出来ることを確認して、Appleの審査に提出しました。
アプリの説明にも堂々と「課金で広告が外せるようになりました」と書いて。
最近は審査の時間がどんどん短くなってるようで、今回はびっくりの24時間切り、18時間位で無事リリースされました。

が、そこで問題が起こりました。
設定の画面から課金の画面に行くと、フリーズしてクラッシュするのです。
何度試しても同じ、実験機でも、嫁のiPhoneでも同様でした。
もう一度、Xcodeからビルドして動作確認をしてもこちらは問題なし。
appSotreからダウンロードし直してみるとやっぱりクラッシュ。
こんなんどうやって、デバグしたらいいのと、血の引く思いでした。
毎度、Appleに審査出して通ってから実地確認ってわけにも行かないしね。^^;
あんなに堂々と課金できますよって書いちゃったのに。/(^o^)\

で、まあ、とりあえずいろいろ検索して
下記サイト見つけエラーログが調べられることがわかりました。
swift – 原因のわからないバグの特定方法について – スタック・オーバーフロー

エラーログを取ってみるとズラズラとログが表示されて、

Incident Identifier: 93F4A809-916A-43F3-9035-FC07F83A1D27
CrashReporter Key:   b5ff785017c05598ffb764559b85137d5acda044
Hardware Model:      iPhone10,3

〜〜中略〜〜

0x1a93b1000 - 0x1a93b4fff InternationalSupport arm64  <fd334ec64cdc3287a1c03a90d37338aa> /System/Library/PrivateFrameworks/InternationalSupport.framework/InternationalSupport
0x1acdcc000 - 0x1acdcdfff DCIMServices arm64  <267ae9cb3c873eaa89fd7d48c1e644ae> /System/Library/AccessibilityBundles/DCIMServices.axbundle/DCIMServices
0x1acdce000 - 0x1ace8dfff AGXMetalA11 arm64  <d49bd1c17d5e33d6983ca1307d81e911> /System/Library/Extensions/AGXMetalA11.bundle/AGXMetalA11
0x1ad172000 - 0x1ad18dfff OnBoardingKit arm64  <b37b2003c4db3fe89c6117f83823f0c3> /System/Library/PrivateFrameworks/OnBoardingKit.framework/OnBoardingKit
0x1ad1b3000 - 0x1ad1b5fff ShortcutUIKit arm64  <fc87d5f042363da4bb448acf39be8d95> /System/Library/PrivateFrameworks/ShortcutUIKit.framework/ShortcutUIKit
0x1ad277000 - 0x1ad2a7fff libclosured.dylib arm64  <e61ffac51cae3e1fb9eb6a6e2801777b> /usr/lib/closure/libclosured.dylib

EOF

という感じで、最後は
0x1ad277000 – 0x1ad2a7fff libclosured.dylib arm64 /usr/lib/closure/libclosured.dylib
で終わっていました。

よくわからんけど、/usr/lib/closure/libclosured.dylib このあたりが怪しいかと検索しまくり。

日本語のページでは全く引っからなかったけど、海外のサイトではcrashという文字とともにいくつか引っかかりました。
CFNetwork crash with iOS 11.3.1 |Apple Developer Forums
My app crash with Exception Type:  EXC_CRASH (S… |Apple Developer Forums
Crash in iOS 11.1 | GeoNet

などなど…。

英語はよくわからんが、総じて見ると、原因不明なんだけどOSの問題ちゃうん?って感じでした。

で、AppleDeveloperに電話で聞いても見たのですが、症状の再現はされるけれど、原因はわからんと。
こっちでは無理なので、テクニカルサポートかフォーラムで聞いてみてくれと。
どっちも英語やん。\(^o^)/オワタ

仕方なしに、コードを見直してみたり、App Store Connectを見直してみたり、
、、、してたら、App Store Connect のApp内課金のページですっごい違和感が!

あれ?課金コンテンツって審査用のスクリーンショットで必須だよね?/(^o^)\
でも、設定されてないよね。/(^o^)\

スクリーンショット 2018-07-24 16.51.33

メタデータが不足って書いてあると審査用のスクリーンショットがなかったりします。

よくよくアプリの設定を見たら、Xcodeでもin-App purchaceもオンになってないし、全然課金が動作する状態じゃなかった。/(^o^)\
Xcodeのin-App purchaceがオンになっててスクリーンショットがなかったりしたらリジェクトもされたんだろうけど、すべて後回しにして数ヶ月放置している間にそういうこともすっかり忘れていたようです。
そりゃ課金の設定無いのに、プロダクト情報取りに行ったらフリーズもするわ。^^;
しかし、よくアプリの審査通ったな。/(^o^)\

で、スクリーンショットを撮って、App内課金の設定もして、速攻で再度審査に提出しました。

まあはよ気づいてよかったよ。
こんなこともあるんだね。
うじゃうじゃ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です