Swiftで書かれたアプリをアップロードしたいと思います。アプリケーションローダーはアプリを正常に配信しますが、数分後にApple
無効なSwiftサポート-バンドルには、Swiftの無効な実装が含まれています。アプリは、非準拠またはプレリリースツールでビルドまたは署名されている可能性があります。詳細については、developer.Apple.comをご覧ください。
XCodeバージョン6.0.1(6A317)、Swift iOS SDK 8.0を使用し、xcodeでアプリをビルドします。
Swiftの有効な実装を取得する方法に関する情報はどこで入手できますか? Appleは具体的なことを何も言わない。
THX
同様の問題がありました。それを修正し、ビルドをiTunesConnectにプッシュできるようにするには、次の手順を実行する必要がありました。
EMBEDDED_CONTENT_CONTAINS_Swift
をYES
に設定しますLogout
all Apple Xcodeからの開発者アカウントとアプリのプッシュに使用するアカウントのみでログイン。with Xcode
および[〜#〜] not [〜#〜]をアーカイブして送信します。すべてのApple Developperアカウントからログアウトする必要があるのはなぜですか?
Xcodeは、バイナリのアップロードに使用するアカウントを認識していないためです。 Application Loaderは最初に尋ねますが、アップロードされたビルドは無効です...
更新:
Xcode 7.1およびSwiftの新しいバージョンなので、再びエラーが発生しました。現在の回避策は次のことです。
数分後(〜10)、ビルドがiTunesConnectで利用可能になります。
Swiftポッドを使用している場合、問題はココアポッドに起因する可能性があります。それを修正するには、ブランチ xcode7-invalid-Swift-support-fix を使用します( usage )。またはPods/Target Support Files/Pods/Pods-frameworks.shを編集し、その後にブロックにコメントを付けて手動で行う
# Embed linked Swift runtime libraries
詳細:
xcodebuildの解決策
一時フォルダーを作成する
iPAファイルを一時フォルダーに解凍します
ここで、add Swift libs to ipaのシェルスクリプト
https://github.com/huhuvipi/VH_ipa_packger
既存のipaファイルの場合は、次のようにします。
path/to/package_ipa.sh /path/to/ipafile
コマンドライン(xcodebuild)でビルドしますか?
その場合:同じ問題が発生しました。問題は、生成されたipaファイルが無効であることです。 SwiftSupportフォルダーがありません。 Xcode Guiを使用してSwiftを含むプロジェクトをビルドすると、フォルダーがXCodeによって追加されます。
この問題は、このAppleオープンレーダーチケットを参照する開発者フォーラムスレッド: https://devforums.Apple.com/message/1042117#1042117
Xcodeの他のバージョンがインストールされていますか?
最新のXcodeを開き、設定(Xcodeメニュー->設定)に移動し、[場所]タブに切り替えて、コマンドラインツールがXcodeバージョンと一致することを確認します。
私は同じ問題を抱えていて、提案されたすべてを試してみましたが、常に失敗しました...私のアプリはSwiftSupportフォルダを生成します、私はこのソリューションで解決しました:
その.ipaファイルを送信していただきありがとうございます。この問題は、SwiftSupportディレクトリのlibswiftXCTest.dylibが原因です。そのdylibはテスト対象で使用され、開発ビルドに含めるのが正常ですが、App Storeのアーカイブビルドにはこのdylibを含めないでください。
この問題を解決するには、次の手順に従ってください。
xcodebuild
またはXcode Server(またはXcodeの[Organizer]ウィンドウ以外)を使用してビルドしている場合、IPAにはSwiftSupport
がありません。問題の この説明 を参照してください。
解決策は、基本的に自分でIPAをエクスポートすることです。 CaveJohnson には、正しいSwiftSupportでIPAをエクスポートするコマンドがあるため、次のようにIPAを構築できます。
cavejohnson xcodeGUITricks --archive-path my.xcarchive --new-ipa-path myapp.ipa
メインアプリのビルド設定で「埋め込みコンテンツに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が含まれる(いずれの場合も)
OK、私はこれに何時間も取り組んでおり、最終的に解決策を見つけました。
ここで答えを事前に決めるのは、私がやったことです。-前の答えのすべてを試しました-Apple技術サポートで電話で1時間過ごしました。 -開発者ネットワークの「無効なSwift」に関連するすべてのApple開発者フォーラムを読んでください。提案されたソリューションのそれぞれを試しました。
私はついにXcodeをアンインストールして再インストールしましたが、何がわかっているのでしょうか。これが solution の最初のアイデアではない理由がわからない場合があります。
コマンドラインを使用する場合のソリューションは次のとおりです 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
コード署名を確認してください。自動署名の使用中にこのエラーが発生しました。開発用に開発用プロファイルを、リリースバージョン用に実稼働用プロファイルを配置すると、エラーがなくなります。
私もこの問題を抱えていました
EMBEDDED_CONTENT_CONTAINS_SwiftのフラグをYESおよびNOに設定しようとしました。両方とも私のために働いていませんでした。
最終的には、ドリューが言及したCaveJohnsonで試しました。しかし、それでもうまくいきませんでした。
最後に、新しいプロジェクトを作成し、Swiftファイルとフレームワークなどを挿入しました。
私の場合の解決策:新しいプロジェクトを作成する
簡単な解決策:
こんにちは、私は同じ問題を抱えていましたが、以下は解決策です:
フラグを設定するEMBEDDED_CONTENT_CONTAINS_Swift
をNO
に変更します。Target、Projectのビルド設定、およびtestTargetのすべての場所でも同様です。
私にとっては、これが配布のために働いたものです。
ジャンプ-> Xcode-> product-> Archive-> Export
この後、現在の日付でフォルダーが作成されます。後で使用するためにどこかに保存できます。次に、アプリケーションローダーを開き、ここからitunesConnectに送信できます。すべてがクリアされます。 オーガナイザーウィンドウの[エクスポート]オプションをクリックして、ビルド(.ipa)ファイルを作成してください。次に、アプリケーションローダーを使用してビルドをiTunesConnectに送信します。
役に立てば幸いです。さらに情報が必要な場合はお知らせください。
私は同じ問題に直面していた。私のために働いた解決策は、xcodeを更新してから新しいプロジェクトを作成し、コピーしてすべての作業をそのプロジェクトに貼り付けることでした
この問題は、アーカイブを開いてSwiftSupportに移動し、WatchOSのフォルダーが空だったため削除することで修正できました。私のWatchターゲットはSwiftを埋め込むように設定されていたので、フォルダを含んでいたが、その中には何も生成しなかったと思う。そのため、iTCは空のフォルダーを見つけてエラーを出しました。空のフォルダを削除することで機能しました。
この問題を解決するために数日を費やしたので、共有すべきだと思いました。
誰もが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にアップロードできました。
これが誰かを助けることを願っています!
5つのステップのソリューション:
これはSwiftが荷物を運び、以前のバージョンとObjective Cコードと互換性がある必要があるため、わずかに欠点です。
あなたがこれが役立つことを願って、私の多くの時間は無駄になりました;)
ココアポッドがある場合は、すべてのポッドを削除してからpod install
。
Xcodeから直接アップロードするときに-22421エラーが発生し、Application Loaderを使用するときに無効なSwiftがサポートされるため、非常に迷惑です
Xcode 7にアップグレードした後、同様の問題が発生しました。-exportOptionsPlist
オプションとmethod
およびteamID
を指定します。物事を台無しにしたが、今は動作します。
Swift新しいxcodeでのプロジェクトの更新が同様のエラーになっていたので、以下が私の解決策です。
Project.pbxprojファイルを開き、以下の行を削除します
EMBEDDED_CONTENT_CONTAINS_Swift = YES;
アプリを正常に送信できました。
真剣に。この問題に2日間を費やし、上記のすべての方法を試しました。何も動作しません!友達のマックを使用しました。そして今回、それは機能します。その後、mac appストアではなく開発者センターからxcodeをダウンロードしたことに気付きました。だから私はすべてのXcodeをMacから削除し、App StoreからXcodeを再インストールすると、うまくいきました。また、まったく同じバージョン番号を共有する2つのバージョンに違いはありません。