3

過去 2 週間、iOS クライアント アプリを更新しようとしてきましたが、残念ながら、Apple が iOS7 でクラッシュすると言って 2 回拒否されました。Apple から次のクラッシュ レポートが送られてきました。

Incident Identifier: C213974C-73E2-42C4-A2AA-E4C2A454319E
CrashReporter Key:   2c5d5176cc4387265bd86c427bf138d2b0acfe38
Hardware Model:      xxx
Process:             Twlight Sports [502]
Path:                /var/mobile/Applications/2B9ED7B5-787E-48ED-AAEC-3DEF87A86C67/Twlight Sports.app/Twlight Sports
Identifier:          com.twilightsports.twilightsports
Version:             1.2 (1.2)
Code Type:           ARM (Native)
Parent Process:      launchd [1]

Date/Time:           2013-09-27 15:22:18.784 -0700
OS Version:          iOS 7.0 (11A465)
Report Version:      104

Exception Type:  EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x00000000e7ffdefe
Triggered by Thread:  0

Dyld Error Message:
  Library not loaded: /Developer/Library/Frameworks/SenTestingKit.framework/SenTestingKit
  Referenced from: /var/mobile/Applications/2B9ED7B5-787E-48ED-AAEC-3DEF87A86C67/Twlight Sports.app/Twlight Sports
  Reason: image not found
  Dyld Version: 324

Binary Images:
0x2beed000 - 0x2bf0d78a dyld armv7  <b37cba000c7d3f8ea414f060d45ce144> /usr/lib/dyld

プロジェクト内のすべての参照を削除SenTestingKitし、アプリの更新を再度送信しました。1 週間後、私はまったく同じクラッシュ レポートを Apple から受け取りました。

次に、AdHocApple に送信したのとまったく同じバイナリを作成し、これを iPhone 4S と iPad 2 に展開しました。どちらのデバイスもクラッシュすることなく正常に動作します。

私は、Apple がアプリを再度テストすることを期待して不服申し立てを行いましたが、彼らは単にアプリがまだクラッシュしており、これ以上サポートを提供していないと述べて、不服申し立てを拒否しました. 現時点では、クラッシュを再現できず、修正できないため、途方に暮れています。

また、Kiwi TDD ポッドがインストールされた CocoaPods をワークスペースで実行しています。これにはへの参照がありますが、Pods ビルド ターゲットには、ライブラリとのリンク バイナリに SenTestingKit.framework がありませんSenTestingKit フレームワークなし

4

4 に答える 4

2

再送信する前にアプリのバイナリを調べて、otoolリンクしているかどうかを確認できますSenTestingKitotool -LMach-O バイナリのリンクされたライブラリを一覧表示します。

たとえば、Xcode リンク:

% otool -L /Applications/Xcode.app/Contents/MacOS/Xcode                                                                             
/Applications/Xcode.app/Contents/MacOS/Xcode:
    /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 20.0.0)
    @rpath/DVTFoundation.framework/Versions/A/DVTFoundation (compatibility version 1.0.0, current version 3532.0.0)
    @rpath/DVTKit.framework/Versions/A/DVTKit (compatibility version 1.0.0, current version 3546.0.0)
    @rpath/IDEFoundation.framework/Versions/A/IDEFoundation (compatibility version 1.0.0, current version 3569.0.0)
    @rpath/IDEKit.framework/Versions/A/IDEKit (compatibility version 1.0.0, current version 3591.0.0)
    /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 1052.0.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1197.1.1)
    /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 1247.0.0)

これを App Store バイナリで実行するには、App Store ビルドを作成し、.ipaをどこかのフォルダーにコピーします。の名前を に変更.ipa.zipます。.zipファイルを開き、otool -Lアプリ内のバイナリで実行します。おそらく次のようになります: (これは iBooks です)

% cd iBooks\ 3.1.3/Payload/iBooks.app                                                                                                     
% otool -L iBooks                                                                                                                         
iBooks:
    /usr/lib/liblockdown.dylib (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/StoreKit.framework/StoreKit (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/PrivateFrameworks/Celestial.framework/Celestial (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AssetsLibrary.framework/AssetsLibrary (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 992.0.0)
    /System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 2372.0.0)
    /System/Library/Frameworks/CoreGraphics.framework/CoreGraphics (compatibility version 64.0.0, current version 600.0.0)
    /System/Library/PrivateFrameworks/iTunesStoreUI.framework/iTunesStoreUI (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/MediaPlayer.framework/MediaPlayer (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/PrivateFrameworks/iTunesStore.framework/iTunesStore (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/PrivateFrameworks/StoreServices.framework/StoreServices (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/QuartzCore.framework/QuartzCore (compatibility version 1.2.0, current version 1.8.0)
    /System/Library/PrivateFrameworks/GraphicsServices.framework/GraphicsServices (compatibility version 1.0.0, current version 14.0.0)
    /System/Library/PrivateFrameworks/AppSupport.framework/AppSupport (compatibility version 1.0.0, current version 29.0.0)
    /System/Library/PrivateFrameworks/WebKit.framework/WebKit (compatibility version 1.0.0, current version 536.26.0)
    /System/Library/Frameworks/CoreData.framework/CoreData (compatibility version 1.0.0, current version 419.0.0)
    /System/Library/PrivateFrameworks/JavaScriptCore.framework/JavaScriptCore (compatibility version 1.0.0, current version 536.26.0)
    /System/Library/Frameworks/CFNetwork.framework/CFNetwork (compatibility version 1.0.0, current version 609.0.0)
    /System/Library/PrivateFrameworks/WebCore.framework/WebCore (compatibility version 1.0.0, current version 536.26.0)
    /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit (compatibility version 1.0.0, current version 275.0.0)
    /System/Library/PrivateFrameworks/Bom.framework/Bom (compatibility version 2.0.0, current version 189.0.0)
    /usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.5)
    /System/Library/Frameworks/CoreText.framework/CoreText (compatibility version 1.0.0, current version 1.0.0)
    /usr/lib/libAccessibility.dylib (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/MobileCoreServices.framework/MobileCoreServices (compatibility version 1.0.0, current version 40.0.0)
    /usr/lib/libsqlite3.dylib (compatibility version 9.0.0, current version 9.6.0)
    /System/Library/Frameworks/MessageUI.framework/MessageUI (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AVFoundation.framework/AVFoundation (compatibility version 1.0.0, current version 2.0.0)
    /System/Library/Frameworks/ImageIO.framework/ImageIO (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration (compatibility version 1.0.0, current version 499.0.0)
    /System/Library/Frameworks/Security.framework/Security (compatibility version 1.0.0, current version 1.0.0)
    /System/Library/Frameworks/AudioToolbox.framework/AudioToolbox (compatibility version 1.0.0, current version 359.0.0)
    /usr/lib/libicucore.A.dylib (compatibility version 1.0.0, current version 49.1.0)
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0)
    /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 56.0.0)
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 173.8.0)
    /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 793.0.0)

SenTestingKitアプリのバイナリのリストを探します。

于 2013-10-12T00:20:47.913 に答える
1

あなたが投稿した情報は非常に限られていますが、次の手順から始めます。

  1. ハードウェア モデルを xxx しましたが、クラッシュはハードウェア固有のものである可能性があり、テストしていないハードウェアでのみ発生する可能性があります。
  2. OS と同じように、7.0.1 または 7.0.2 でテストした可能性がありますが、クラッシュ レポートによると、7.0 で発生するため、必ず 7.0 でテストしてください。
  3. クラッシュ レポートに TestFlight の使用を開始してください。クラッシュ レポートの送信者に頼る必要はありません。代わりに、クラッシュ レポートは自動的に送信され、シンボル化されます。
  4. ハードウェアでアプリをテストするときは、必ずリリース構成をテストしてください。リリース ビルドが最適化されているとうまくいかないことがたくさんあるので、ここではリリースをテストすることが唯一の賢明な選択肢です。
  5. 検証中に警告が表示されましたか? もしそうなら、あなたはそれらを真剣に受け止めるべきですか?

アプリは起動せず、起動時にクラッシュすると思います。この場合、TestFlight が大いに役立つかどうかはわかりませんが、代わりに、SenTestKit が後で使用される原因となるデバッグ構成とリリース構成の間に違いがある可能性があると思います。

于 2013-10-08T09:28:46.407 に答える
1

良い.....

この問題を修正するには、基本的にワークスペースから CocoaPods を削除し、テスト ターゲットとテスト スキームを削除する必要がありました。先週の木曜日にアプリを再提出し、今日承認されました。

それはかなり絶望的な修正の試みであり、犯人は、Apple が私のプロジェクトでテストスキームを実行していたという事実であり、それを適切にセットアップしなかったという事実だと思います。Kiwi Cocoapods を削除した後、SenTestingKit フレームワークを要求していたものが修正されたように見えます

于 2013-10-16T09:05:54.593 に答える
0

デバイスでアプリが正常に動作していたが、Apple によって拒否されたという同様の問題に直面しました。パッケージ内の一部のファイルが破損しているとのことでした。すべてのユーザーに読み取り、書き込み、実行の権限を設定し、アプリを再提出したところ、承認されました。あなたの場合、それが理由の1つかもしれません。パーミッションを設定してバイナリを再作成して提出してみてください。

于 2013-10-08T09:24:01.790 に答える