webdevqa.jp.net

非公開APIの使用法:アプリに1つ以上の破損したバイナリが含まれています

IOSアプリケーションの新しいバージョンのアップロードで何が起こっているのか本当にイライラしています。これが物語です。

2018年1月25日に、新しいバージョン3.3.27ビルド番号1.0をアップロードしました。これは正常に処理され、テスト用のテストフライトで利用できます。その後、いくつかの問題が見つかり、2018年1月26日に修正して、新しいビルド1.1をアップロードすると、iTunesConnectから次のようなメールが届きます。

親愛なる開発者、

「appname」の最近の配信で1つ以上の問題が見つかりました。配信を処理するには、次の問題を修正する必要があります。

非公開APIの使用法:

The app contains one or more corrupted binaries. Rebuild the app and resubmit.

ソースコードのメソッド名が上記のプライベートApple API)と一致する場合、メソッド名を変更すると、今後の送信でこのアプリにフラグが付けられるのを防ぐのに役立ちます。さらに、1つ以上の上記のAPIは、アプリに含まれている静的ライブラリにある可能性があります。その場合は、削除する必要があります。

このメッセージが誤って送信され、ガイドラインに従ってAppleが公開したAPIのみを使用したと思われる場合は、アプリの9桁のApple IDと、その理由に関する詳細情報を送信してください。上記のAPIに誤ったフラグが付けられていると思われる場合は、email @ Apple.comに送信してください。詳細については、

アップロードの成功前にビルドを検証している間:

enter image description here

アプリをアップロードしている間、次の成功を収めます:

enter image description here

メールで、破損したバイナリまたはフレームワークの名前が何であるかについて適切な情報を取得できませんでした。 1月25日より前にそのアプリケーションの100の更新ビルドをアップロードした非公開の方法を使用すると、すべてが良好で許容範囲内になります。

次に、次の変更を試してみました:

  1. アプリを再構築してもう一度送信すると、同じメールが届きます。
  2. Xcode9.2をアンインストールし、再度インストールすると同じメールが届きます。
  3. 変更を削除し、ビルド番号1.0を再度アップロードすると、同じメールが届きます。
  4. Macを変更し、同じメールで新しいビルドを再度アップロードしてみてください。
  5. 同じメールの前に何度も生きている古いバージョンをアップロードしてみてください

ITunes Connect Reviewにメールを送信しましたが、3日が経過したため、返信がありませんでした。私は調査を行っており、1月26日から、多くのユーザーが申請書を提出する際にそのような問題に直面しています。

過去または最近そのような問題に直面しているその解決策を知っている人がいたら私たちを助けてください

11
Nitin Gohel

この問題の解決策は1つではありませんApple公式アカウント、フォーラム、または公式開発者サイトでのエラーや無効なバイナリ関連ニュースについては、今日は何も言及していません。あなたのメール。

BitCode enableで問題を解決するもの、更新PODFILEで問題を解決するもの、古いSwiftフレームワークを使用)を削除して問題を解決するものプロジェクトで。

しかし、最終的に私は自分のために働く自分自身で解決策を得る。プロジェクトをビルドすると、Xcodeの左側のパネルに次のような警告が表示されました。

enter image description here

Apple古いSwiftサポートが削除されたので、プロジェクトでSwiftクラスまたはポッドファイルを使用する場合は、更新する必要がありますto Swift 4。

Swift 4に変換すると、次の警告が表示されます。

Swift 3 @objc inference in Swift 4modeは非推奨です。非推奨の@objc推論警告に対処し、「Use of deprecated = Swift 3 @objc inference」ログを有効にしてから、「appname」ターゲットの「Swift 3 @objcInference」ビルド設定を「Default」に変更して推論を無効にします。

この警告を修正するには、次のリンクを使用します Swift 3 @objc推論Swift 4モードは非推奨ですか? およびSwiftクラスiはパブリック宣言の前に@objcを使用しました。

また、すべてのソースコードを確認し、podfileとクラスの未使用のライブラリをプロジェクトから削除します。

上記の方法で私はその問題を修正し、ビルドの13番目をアップロードした後、最終的にそれを受け入れました。

2
Nitin Gohel

この部分について多くの調査を行った結果、最終的にこの問題の問題が見つかりました。Appleは、32ビットと64ビットの両方をサポートするアプリケーションでこのエラーを発生させるようです。

AppleはMacAppstoreに this リマインダーを出しましたが、iOSアプリケーションも影響を受けているようです。

したがって、これに対する解決策は、ビットコードORをサポートして、ビルド設定から有効なアーキテクチャからARMV7およびARMV7Sまたは以下のサポートを削除することにより、32ビットデバイスのサポートを削除することです。これは、アプリケーションがのみ機能することを意味します。 iPhone5S以降で。これが誰かに役立つことを願っています。

ありがとう、そして幸せなコーディング!

4
Andrei Neag

この問題の2つの解決策が見つかりました。上記で参照した32ビットサポートを削除します。そして、CommonCryptoの使用法を削除します。 CommonCryptoをCryptoSwiftに置き換えました( https://github.com/krzyzanowskim/CryptoSwift )。

32ビットユーザー(iPhone4S、5、5C)を失いたくなかったので、CommonCryptoを置き換えることにしました。

0
Beto Trevisani