web-dev-qa-db-ja.com

無効なSwiftサポート/ swiftの無効な実装

Swiftで書かれたアプリをアップロードしたいと思います。アプリケーションローダーはアプリを正常に配信しますが、数分後にApple

無効なSwiftサポート-バンドルには、Swiftの無効な実装が含まれています。アプリは、非準拠またはプレリリースツールでビルドまたは署名されている可能性があります。詳細については、developer.Apple.comをご覧ください。

XCodeバージョン6.0.1(6A317)、Swift iOS SDK 8.0を使用し、xcodeでアプリをビルドします。

Swiftの有効な実装を取得する方法に関する情報はどこで入手できますか? Appleは具体的なことを何も言わない。

THX

59
Simon Meyborg

同様の問題がありました。それを修正し、ビルドをiTunesConnectにプッシュできるようにするには、次の手順を実行する必要がありました。

  • ターゲット設定でフラグEMBEDDED_CONTENT_CONTAINS_SwiftYESに設定します
  • ビルドフェーズに他の奇妙なターゲットが含まれていないことを確認してください
  • Logout all Apple Xcodeからの開発者アカウントとアプリのプッシュに使用するアカウントのみでログイン
  • Application Loaderでアプリwith Xcodeおよび[〜#〜] not [〜#〜]をアーカイブして送信します。

すべてのApple Developperアカウントからログアウトする必要があるのはなぜですか?

Xcodeは、バイナリのアップロードに使用するアカウントを認識していないためです。 Application Loaderは最初に尋ねますが、アップロードされたビルドは無効です...

更新:

Xcode 7.1およびSwiftの新しいバージョンなので、再びエラーが発生しました。現在の回避策は次のことです。

  • Xcodeでアーカイブをローカルで作成します(CIでは機能しません)
  • オーガナイザーでは、export AppStoreビルドとして。
  • Application Loaderを使用して、バイナリをアップロードします。

数分後(〜10)、ビルドがiTunesConnectで利用可能になります。

35
Kevin Delord

Swiftポッドを使用している場合、問題はココアポッドに起因する可能性があります。それを修正するには、ブランチ xcode7-invalid-Swift-support-fix を使用します( usage )。またはPods/Target Support Files/Pods/Pods-frameworks.shを編集し、その後にブロックにコメントを付けて手動で行う

 # Embed linked Swift runtime libraries

詳細:

17
cl3m

xcodebuildの解決策

  • 一時フォルダーを作成する

  • iPAファイルを一時フォルダーに解凍します

  • 一時フォルダー内にSwiftSupportフォルダーを作成します
  • copy Swift Payload/* app/framworksからSwiftSupportフォルダーへのライブラリ
  • 一時フォルダー内に含まれるパッケージIPAファイル(ペイロードとSwiftSupportフォルダーがあります)。

ここで、add Swift libs to ipaのシェルスクリプト

https://github.com/huhuvipi/VH_ipa_packger

既存のipaファイルの場合は、次のようにします。

path/to/package_ipa.sh /path/to/ipafile

14
Vinh Huynh

コマンドライン(xcodebuild)でビルドしますか?

その場合:同じ問題が発生しました。問題は、生成されたipaファイルが無効であることです。 SwiftSupportフォルダーがありません。 Xcode Guiを使用してSwiftを含むプロジェクトをビルドすると、フォルダーがXCodeによって追加されます。

この問題は、このAppleオープンレーダーチケットを参照する開発者フォーラムスレッド: https://devforums.Apple.com/message/1042117#1042117

12
savage7

Xcodeの他のバージョンがインストールされていますか?

最新のXcodeを開き、設定(Xcodeメニュー->設定)に移動し、[場所]タブに切り替えて、コマンドラインツールがXcodeバージョンと一致することを確認します。

5
Antonio

私は同じ問題を抱えていて、提案されたすべてを試してみましたが、常に失敗しました...私のアプリはSwiftSupportフォルダを生成します、私はこのソリューションで解決しました:

その.ipaファイルを送信していただきありがとうございます。この問題は、SwiftSupportディレクトリのlibswiftXCTest.dylibが原因です。そのdylibはテスト対象で使用され、開発ビルドに含めるのが正常ですが、App Storeのアーカイブビルドにはこのdylibを含めないでください。

この問題を解決するには、次の手順に従ってください。

  1. Xcodeプロジェクトを開きます
  2. 製品>スキーム>スキームの編集を選択します
  3. 左側のサイドバーで[ビルド]をクリックします
  4. テスト対象の場合、[アーカイブ]チェックボックスをオフにします
  5. 閉じるボタンをクリックします
  6. 製品>アーカイブを選択します
  7. 最新のアーカイブをApp Storeに提出する
3
Franklin Lino

xcodebuildまたはXcode Server(またはXcodeの[Organizer]ウィンドウ以外)を使用してビルドしている場合、IPAにはSwiftSupportがありません。問題の この説明 を参照してください。

解決策は、基本的に自分でIPAをエクスポートすることです。 CaveJohnson には、正しいSwiftSupportでIPAをエクスポートするコマンドがあるため、次のようにIPAを構築できます。

cavejohnson xcodeGUITricks --archive-path my.xcarchive --new-ipa-path myapp.ipa
3
Drew

メインアプリのビルド設定で「埋め込みコンテンツにSwiftコードを含む」をYESからNOに変更する(および拡張機能でYESに設定したままにする)ことは、時計(および電話)で実行されることを発見しました。そのバイナリをアップロードすると同時に、「Invalid Binary」とマークされていた他のアップロードされたビルドが「Processing」に戻ったため、AppleバックエンドにITCバックエンドを変更する必要があります。その後、画面を「非アクティブ」に渡しました。

そのため、私はレビューのために拡張機能に「埋め込みコンテンツにSwiftコードが含まれている」とYESでビルドを送信しました。

メインアプリ:埋め込みコンテンツにSwift Code = YESが含まれる(そのSwiftプロジェクトの場合。それ以外の場合はNO)

WatchKit拡張機能:埋め込みコンテンツに含まれるSwift Code = YES(そのSwiftプロジェクトの場合。それ以外の場合はNO)

WatchKitアプリ:埋め込みコンテンツにSwift Code = NOが含まれる(いずれの場合も)

1

OK、私はこれに何時間も取り組んでおり、最終的に解決策を見つけました。

ここで答えを事前に決めるのは、私がやったことです。-前の答えのすべてを試しました-Apple技術サポートで電話で1時間過ごしました。 -開発者ネットワークの「無効なSwift」に関連するすべてのApple開発者フォーラムを読んでください。提案されたソリューションのそれぞれを試しました。

私はついにXcodeをアンインストールして再インストールしましたが、何がわかっているのでしょうか。これが solution の最初のアイデアではない理由がわからない場合があります。

1
Wade Anderson

コマンドラインを使用する場合のソリューションは次のとおりです http://www.matrixprojects.net/p/xcodebuild-export-options-plist/

基本的に、行う必要があるのは、次のようなxcodebuild exportOptions 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>teamID</key>
        <string>MYTEAMID123</string>
        <key>method</key>
        <string>app-store</string>
        <key>uploadSymbols</key>
        <true/>
</dict>
</plist>

ここで最も重要なキーはメソッドapp-storeです

そして、アーカイブを使用してXcodeビルドを実行します

xcodebuild -scheme MyApp -archivePath builds/MyApp.xcarchive archive

その後、エクスポートアーカイブでxcrunを実行します

xcrun xcodebuild -exportArchive -exportOptionsPlist exportPlist.plist -archivePath builds/MyApp.xcarchive -exportPath builds
1
Kamilton

コード署名を確認してください。自動署名の使用中にこのエラーが発生しました。開発用に開発用プロファイルを、リリースバージョン用に実稼働用プロファイルを配置すると、エラーがなくなります。

1
jmcastel

私もこの問題を抱えていました

EMBEDDED_CONTENT_CONTAINS_SwiftのフラグをYESおよびNOに設定しようとしました。両方とも私のために働いていませんでした。

最終的には、ドリューが言及したCaveJohnsonで試しました。しかし、それでもうまくいきませんでした。

最後に、新しいプロジェクトを作成し、Swiftファイルとフレームワークなどを挿入しました。

私の場合の解決策:新しいプロジェクトを作成する

1
Gerrit Post

簡単な解決策:

こんにちは、私は同じ問題を抱えていましたが、以下は解決策です:

フラグを設定するEMBEDDED_CONTENT_CONTAINS_SwiftNOに変更します。Target、Projectのビルド設定、およびtestTargetのすべての場所でも同様です。

1
Hardik Shah

私にとっては、これが配布のために働いたものです。

ジャンプ-> Xcode-> product-> Archive-> Export

この後、現在の日付でフォルダーが作成されます。後で使用するためにどこかに保存できます。次に、アプリケーションローダーを開き、ここからitunesConnectに送信できます。すべてがクリアされます。 オーガナイザーウィンドウの[エクスポート]オプションをクリックして、ビルド(.ipa)ファイルを作成してください。次に、アプリケーションローダーを使用してビルドをiTunesConnectに送信します。

役に立てば幸いです。さらに情報が必要な場合はお知らせください。

私は同じ問題に直面していた。私のために働いた解決策は、xcodeを更新してから新しいプロジェクトを作成し、コピーしてすべての作業をそのプロジェクトに貼り付けることでした

0
Faisal Khalid

この問題は、アーカイブを開いてSwiftSupportに移動し、WatchOSのフォルダーが空だったため削除することで修正できました。私のWatchターゲットはSwiftを埋め込むように設定されていたので、フォルダを含んでいたが、その中には何も生成しなかったと思う。そのため、iTCは空のフォルダーを見つけてエラーを出しました。空のフォルダを削除することで機能しました。

0
James Kuang

この問題を解決するために数日を費やしたので、共有すべきだと思いました。

誰もがEMBEDDED_CONTENT_CONTAINS_Swift = NOまたは=YES

私は完全にObjective-Cで書かれたiPhoneアプリと、完全にSwiftで書かれたWatch Kitアプリを持っていました。

EMBEDDED_CONTENT_CONTAINS_Swift = NOすべて(プロジェクトターゲット、iPhoneアプリターゲット、テスト、UITests、WatchKit)

設定した場所EMBEDDED_CONTENT_CONTAINS_Swift = YESはWatchKit拡張機能にあります。これで問題が解決し、Xcodeを介してApp Storeにアップロードできました。

これが誰かを助けることを願っています!

0
MSU_Bulldog

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

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

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

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

0
Rein rPavi

ココアポッドがある場合は、すべてのポッドを削除してからpod install

Xcodeから直接アップロードするときに-22421エラーが発生し、Application Loaderを使用するときに無効なSwiftがサポートされるため、非常に迷惑です

0
keithics

Xcode 7にアップグレードした後、同様の問題が発生しました。-exportOptionsPlistオプションとmethodおよびteamIDを指定します。物事を台無しにしたが、今は動作します。

0
epatel

Swift新しいxcodeでのプロジェクトの更新が同様のエラーになっていたので、以下が私の解決策です。

Project.pbxprojファイルを開き、以下の行を削除します

EMBEDDED_CONTENT_CONTAINS_Swift = YES;

アプリを正常に送信できました。

0
Suresh

真剣に。この問題に2日間を費やし、上記のすべての方法を試しました。何も動作しません!友達のマックを使用しました。そして今回、それは機能します。その後、mac appストアではなく開発者センターからxcodeをダウンロードしたことに気付きました。だから私はすべてのXcodeをMacから削除し、App StoreからXcodeを再インストールすると、うまくいきました。また、まったく同じバージョン番号を共有する2つのバージョンに違いはありません。

0
crazy_phage