web-dev-qa-db-ja.com

無効なSwiftサポート/ SwiftSupportフォルダーが空です

環境:Xcode 7 GM

エラーなしでXcodeを使用してiOSアプリを正常にアップロードしました。このアプリはObjective-CとSwiftで書かれています。

ただし、アップロードが成功した直後に、Appleこのエラーを記載したメール:

無効なSwiftサポート-XXXXX(私のアプリ名)の最近の配信で1つ以上の問題を発見しました。配信を処理するには、次の問題を修正する必要があります。

無効なSwiftサポート-SwiftSupportフォルダーは空です。現在のパブリック(GM)バージョンのXcodeを使用してアプリを再構築し、再送信してください。

これらの問題を修正したら、修正したバイナリを再配信できます。

誰もがこの問題に対する解決策を持っていますか?

私はすでに以下の問題を確認しています。

アーカイブ(.xcarchiveファイル)の「SwiftSupport/iphoneos /」ライブラリは「Products/Applications/myApp.ipa/Frameworks /」と同等です。

私の「有効なアーキテクチャ」設定は、「armv7k」を表示する「$(ARCHS_STANDARD)」です。

プロビジョニングプロファイルは、それぞれiTunes Connectで作成されたDevおよびReleaseに設定されます。

そして、私の「編集スキーム」では、アーカイブでテスト対象のチェックが外されています。

32
Tsuyoshi Endo

重要な注意:これは、Swiftを使用しないしないプロジェクトでのみ機能します。以下を参照してください comment below

私はちょうど同じ問題に出会い、次の変更を行って解決しました-プロジェクトにSwiftファイルを使用していたが、それらを削除した場合は、「埋め込みコンテンツにSwift Code "を[ビルドオプション]で[いいえ]にします。

56
Lixu

このページには多くの矛盾する答えがあります..私のために働いたのは、言及されたものでした here 、これは単にiOSアプリストアの展開オプションの保存を選択します(実際にはアプリストアには興味がありませんリリース..テストフライトの内部テスト用にリリースをプッシュするだけです。

とはいえ、提出する前にあなたのIPAが承認されるかどうかを確認する方法があります:

  • .ipaファイルを新しいフォルダーにドラッグします(分析と呼びます)
  • ipaファイルを右クリックして、名前を.Zipに変更します(.Zipを使用するダイアログを確認します)
  • zipファイルをダブルクリックします

ここで、次のサブフォルダーを持つフォルダー(.ipaファイルと同じ名前)を取得した場合:

  • ペイロード
  • swiftSupport
  • 記号

enter image description here

行っても構いませんが、Payloadフォルダーのみが表示されている場合は、もう一度試してください

また、いくつかのポインタ

  • 「埋め込みコンテンツにSwiftコード)を含む」をNOに設定しようとしましたが、一度しか機能せず、その後動作しなくなりました
  • 私はココアポッドエラーがないことを確認しました..それも助けにはなりませんでした
  • 提案されているようにアーカイブ内にSwiftSupportフォルダーを手動で追加しようとしました here ..しかし、その後、あらゆる種類の副作用がありました..動作しませんでした

結論

これはxcodeのバグによるものだと思います(Xcode 8.0ビルド(8A218a)でこれを書いているので..うまくいくまで運試しを続けてください..確かな説明は期待しないでください)

14
abbood

「Xcode-> Product-> Archive」の後にエクスポートしようとすると、「ios app store deploymentで保存」オプションを選択する必要があります。

同じ問題で数日混乱しましたが、上記の設定でこの問題を解決できます。

「埋め込みコンテンツにSwift code)が含まれる」がyesまたはnoであっても関係ありません。

14
jdhuang

5ステップソリューション:

  1. ビルド設定に移動してフラグを作成します埋め込みコンテンツに含まれるSwiftコード-> [〜#〜] yes [〜#〜]、ifコードに部分的なSwiftコードまたは完全にSwiftで作成されたコードが含まれています
  2. Xcode-> Product-> Archiveを使用してビルドをアーカイブします
  3. アーカイブビルドをエクスポートすると、XCodeが欠落しているSwiftSupportフォルダーを追加したため、ビルドサイズの違いが40 MB以上になることが突然わかります。
  4. Application Loaderを使用してこのビルドをアップロードします
  5. これが機能しない場合は、システムに複数のXCodeがある場合、goto Xcode-> Preferences-> Location-> CommandLines Toolsが同じ最新または同じXcodeを持っていることを確認してくださいコーディングを行ったドロップダウンから選択し、それが完了しました。

Swiftは荷物を運び、以前のバージョンとObjective Cコードとの互換性が必要なので、これはわずかに欠点です。

あなたがこれが役立つことを願って、私の多くの時間は無駄になりました;)

10
Rein rPavi

このエラーは、-exportOptionsPlistオプションを指定せずにxcodebuildを使用してIPAをエクスポートすると発生する可能性があります。

見る xcodebuild -help使用可能なキーがありますが、おそらく次のように、少なくともメソッドキーが「app-store」に設定されたplistが必要です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.Apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>method</key>
    <string>app-store</string>
</dict>
</plist>
6
Jon N

私はこれに数時間取り組んだが、ここに私のために働いたものがあります。

アーカイブでは、XcodeはSwift libsをSwiftSupport/iphoneosにコピーしませんでしたが、私のプロジェクトには "Embedded Content Contains Swift Code "すべてのターゲットでyesに設定しました。Swift libsを" AppName.app/Frameworks"にコピーしませんでした。提出する前にアーカイブ:

コピー"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/iphoneos/lib*"to"Archive_folder/Products/Applications/AppName.app/Frameworks" and "SwiftSupport/iphoneos"

アプリに時計アプリもある場合

コピー

"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/Swift/watchos" into "Archive_folder/SwiftSupport/watchos"および"Archive_folder/Products/Applications/AppName.app/Watch/AppName WatchKit App.app/Frameworks"

次に、アプリを送信します。

3
Ken

Save for iOS App Store Deployment Xcodeエクスポートオプションの代わりにSave for Ad Hoc Deploymentを使用すると、この問題は解決しました。直感に反して、TestFlightビルドでも最初のオプションを使用する必要があります。

2

"埋め込みコンテンツに含まれるSwift Code"$(inherited)に設定しました。CocoaPodsコマンドの実行後の警告pod installはこれを見つけるのを助けてくれました。

[!] The `applewatch Extension [Debug]` target overrides the `EMBEDDED_CONTENT_CONTAINS_Swift` build setting defined in `Pods/Target Support Files/Pods-applewatch Extension/Pods-applewatch Extension.debug.xcconfig'. This can lead to problems with the CocoaPods installation
- Use the `$(inherited)` flag, or  <--------------
- Remove the build settings from the target.
1
Blank

上記の方法が機能しなくなったため、この問題を解決するために今やっていることは次のとおりです。私のコードのメインアプリはObj-Cであり、私の時計アプリはSwiftであることに注意してください。

  1. 「Swift Code)を含む埋め込みコンテンツ」が次のように設定されていることを確認します。
    • アプリターゲットの場合はYES
    • WatchKit拡張機能の場合はNO
    • Watchkitアプリの場合はYES
  2. アーカイブ後、XCodeは「[アーカイブフォルダー]/SwiftSupport/iphoneos」を作成しませんが、「[アーカイブフォルダー]/Products/Applications/[アプリ名] .app/Watch/\ WatchKit\App.app」を作成して入力します。/Frameworks」にSwift dylibsを追加しました。したがって、次のソフトリンクを作成しました。

    ln -s "[アーカイブフォルダー] /Products/Applications/.app/Watch/\WatchKit\App.app/Frameworks" "[アーカイブフォルダー]/SwiftSupport/iphoneos"

その後、XCode Organize経由で送信すると、エラーなしで受け入れられます。

ファイルをリンクするのではなく単にコピーすると、監視アプリが50MBの制限を超える危険があります。

0
Ken

これらすべてのソリューションを試した後、幸運な方法で合格しました。しかし、このリンクはあなたにとって良いと思います Invalid Swift Support/Swiftの無効な実装 。これらの手順を実行してから、MACを再起動します。

0
Mike Htba

App Storeビルド提出問題:

無効なSwiftサポート-SwiftSupportフォルダーがありません。現在のパブリック(GM)バージョンのXcodeを使用してアプリを再構築し、再送信してください。

解決策:

ほとんどの場合、App Loaderを介してアプリケーションを送信し、オーガナイザー>アプリとしてipaを作成する通常のプラクティスにより、この問題が見つかりましたアーカイブ> Finderで表示>パッケージコンテンツを表示>製品>アプリケーション> OurProjectName.appでこのアプリをペイロードフォルダーにコピーしてZipし、App Loaderを使用してApp Storeに送信するipaファイルを作成します。これは、プロジェクトに含まれるObjective Cファイルのみを送信する場合には問題ありません。

ただし、プロジェクトにSwift=クラスとその使用法が含まれる場合、いくつかの変更があります。プロジェクトにSwift Objective Cプロジェクトのクラスが含まれる場合、IPAコンテンツ構造が変更されます添付のスクリーンショットとは若干異なります。

enter image description here

enter image description here

この問題を修正するには、Xcode [OR]if Xcodeオーガナイザーのエクスポートオプションを使用して最初にipaをエクスポートし、App Loaderを介してそれらのipaファイルをApp Storeに送信するよりも、App Loaderを使用してアプリケーションを送信します。

以下の参照スクリーンショットを参照してください。

enter image description here

ハーレー!!!あなたの問題は修正されます:) :) :)

0

また、export_methodの代わりにad-hocapp-storeに設定されたplistを持つipaをiTunesにアップロードすると、このエラーが発生します。

0
TheEye

Always Embed Swift Standard Libraries)toYesのみが必要ですSwiftに依存する独自のフレームワークに対してリンクするObjective-Cターゲットの場合。Swiftに依存する内部フレームワークに対してリンク(つまり使用)していない場合、XcodeはSwift =アーカイブ内の標準ライブラリのインポートが少なくとも1回ある場合、Swift a Swiftファイル。

言い換えると、ターゲットにSwiftファイルをインポートしない場合、Swift標準ライブラリ-「Foundationのインポート」経由で-次に、XcodeはSwift標準ライブラリをアーカイブにコピーしません

この問題の修正は、ターゲットの少なくとも1つのSwiftファイルが= Swift標準ライブラリ(例: "import Foundation")。

Daniel Jalkutには Swift依存関係)について非常に有益な投稿があります があり、これがこの問題に光を当てています。

0
BigSauce

Ipaファイルをエクスポートするときに、「iOS App Store展開用に保存」オプションを選択する必要があります。 enter image description here

0
Pranit

私の問題は、アドホックプロファイルを使用してTestFlightに送信していたことです(ディストリビューションプロビジョニングプロファイルである必要があります)。素晴らしいエラーメッセージApple!

0
Radek Czemerys