53

私はこれが不可能であることを知っています、そしてアップルはユーザーに彼らのデバイスをアップグレードすることを強制するためにこの方法でそれを計画しました。しかし、これを行うための回避策やハックがあるかどうかを知りたいだけですか?クライアントは、アプリユーザーの割合がまだ「大きい」ため、armv6を引き続きサポートする必要があると主張しています。

静的ライブラリをマージするために呼び出されるコマンドを知っていて、lipoそれを使用してipaファイルをマージすることもできることをどこかで読みましたが、それがどのように正確に行われるかはわかりません。私はすでにグーグルとこのサイトでいくつか検索しましたが、具体的な答えを見つけるのは難しいです。

4

7 に答える 7

93

AppStoreにある私のアプリでこれをうまく行うことができました。これは、armv6、armv7、armv7s、および4.2から6.0までのiOSバージョンをサポートします。古いデバイス(iPhone 3G、iPod touch 2g)でiPhone5までずっと動作することを確認しました。

この方法では、Xcode4.5と古いバージョンのXcodeの両方を同時にインストールする必要があります。以前のバージョンではまだ4.3.2を使用していますが、4.4でも機能するはずです。

この回答のスクリーンショットを持っていましたが、私は新しいので、StackOverflowではそれらを投稿できません。:(

Xcode4.5でのセットアップ

  1. armv6ビルドの新しいビルド構成を追加します。Release構成を複製し、Release_armv6という名前を付けました。

  2. ビルド構成のアーキテクチャと有効なアーキテクチャを設定します。Release_armv6を除くすべての場合、デフォルトを使用します。Release_armv6の場合は、手動でarmv6に設定しますhttp://i.stack.imgur.com/h8Mpl.png

  3. Xcode4.4以下では理解できないiOS6の機能を使用している場合は、armv6ビルド用にこれらを#ifdefする必要があります。その他のCフラグおよびその他のC++フラグのビルド設定で、Release_armv6構成に-DARMV6_ONLYを追加しました。次に、コードが新しいiOS 6 APIを使用する場合は常に、必要に応じて#ifndef ARMV6_ONLY/#endifのようなことを行います。 http://i.stack.imgur.com/czF6J.png

  4. 新しいスキームを追加し、すべての場合にRelease_armv6ビルド構成を使用するように設定します。

  5. [ビルドフェーズ]で、次のスクリプトを使用してスクリプト実行フェーズを追加します(シェルを/ bin / cshに設定します)。ここで魔法が起こります。[構成]セクションを編集します。Release_armv6ビルドへのフルパスを決定し、ARMV6_EXECUTABLE_PATHの代わりに使用します。また、MINIMUM_OSを設定します。



    #
    # Script to add armv6 architecture to iOS executable built with Xcode 4.5
    #

    #################
    # Configuration #
    #################
    # Change this to the full path where Xcode 4.4 (or below) puts your armv6 output
    setenv ARMV6_EXECUTABLE_PATH "$BUILD_ROOT/Release_armv6-iphoneos/$EXECUTABLE_PATH"

    # Your "real" minimum OS version since Xcode 4.5 wants to make it iOS 4.3
    # Must be 4.2 or below if you are supporting armv6...
    setenv MINIMUM_OS 4.2
    #####################
    # End configuration #
    #####################


    # For debugging
    echo CURRENT_ARCH = $CURRENT_ARCH
    echo CONFIGURATION = $CONFIGURATION

    # Don't need to do this for armv6 (built in older Xcode), simulator (i386), or debug build
    if ("$CURRENT_ARCH" == "armv6") exit 0
    if ("$CURRENT_ARCH" == "i386") exit 0
    if ("$CONFIGURATION" != "Release" && "$CONFIGURATION" != "Beta Test") exit 0

    # Paths
    setenv LIPO_PATH "$CODESIGNING_FOLDER_PATH/${EXECUTABLE_NAME}.lipo"
    setenv FINAL_PATH "$CODESIGNING_FOLDER_PATH/$EXECUTABLE_NAME"
    setenv FULL_INFO_PLIST_PATH "$CONFIGURATION_BUILD_DIR/$INFOPLIST_PATH"

    # Debug / sanity check
    lipo -info "$FINAL_PATH"
    ls -l "$ARMV6_EXECUTABLE_PATH"

    # Make sure something exists at $LIPO_PATH even if the next command fails
    cp -pv "$FINAL_PATH" "$LIPO_PATH"

    # If rebuilding without cleaning first, old armv6 might already be there so remove it
    # If not, lipo won't output anything (thus the cp command just above)
    lipo -remove armv6 -output "$LIPO_PATH" "$FINAL_PATH"

    # Add armv6 to the fat binary, show that it worked for debugging, then remove temp file
    lipo -create -output "$FINAL_PATH" "$ARMV6_EXECUTABLE_PATH" "$LIPO_PATH"
    lipo -info "$FINAL_PATH"
    rm -f "$LIPO_PATH"

    # Change Info.plist to set minimum OS version to 4.2 (instead of 4.3 which Xcode 4.5 wants)
    /usr/libexec/PlistBuddy -c "Set :MinimumOSVersion $MINIMUM_OS" "$FULL_INFO_PLIST_PATH"
    plutil -convert binary1 "$FULL_INFO_PLIST_PATH"

ビルドプロセス

リリースビルドを作成する準備ができたら、次の順序で作成します。

  1. Xcode 4.5を閉じ、Xcode4.4以下を開きます。armv6スキームを選択し、ビルドします。

  2. Xcode 4.4以下を閉じ、Xcode4.5を開きます。リリーススキームを選択してビルドします。

それはほとんどそれです。ビルド出力をチェックして、必要なもの(3つのアーキテクチャーを含む実行可能ファイル)が得られたことを確認します。実行スクリプトからの最後の出力は、これを示しているはずです。

誰かがこれを改善するためのアイデアを持っているなら、遠慮なくしてください。ビルドスクリプト内からXcode4.4の「xcodebuild」コマンドを使いこなして呼び出すことができ、Xcodeのバージョンを切り替える必要がまったくなくなると思います。しかし、これは私にとっては十分に機能します。;)

警告:

  • 安全のために、古いバージョンのXcodeでxibファイルを編集することをお勧めします。これまでのところ、4.5には下位互換性があるように見えますが、わかりません。

  • 実際、iOS 6固有のものを除いて、開発のほとんどを古いXcodeで行うことを検討するかもしれません。あなたにとって最も簡単なものに依存します。

于 2012-10-01T17:29:05.223 に答える
26

gcc-4.2はまだarmv6をサポートしているため、別の方法があります。Xcode4.5を閉じて、以前のバージョンを開く必要はありません(コンパイル用ですが、4.2デバイスでアプリを実行する場合は必要ありません)。

  • 有効なアーチとアーチの両方にarmv6を追加します。

アーチ:$(ARCHS_STANDARD_32_BIT)armv6

有効なアーキテクチャ:armv6 armv7 armv7s

  • 必要に応じて、project.pbxprojファイルをVim(またはTextEdit)して、IPHONEOS_DEPLOYMENT_TARGETを4.0-4.1-4.2に置き換えます。Xcode4.5では、4.3を下回ることはできません。

次に、プロジェクトをビルドすると、警告が表示されます。

警告:アーキテクチャarmv6のタイプsourcecode.c.objcのファイル'$(PROJECT_DIR)/App/AppDelegate.m'を処理するルールがありません
警告:アーキテクチャarmv6のタイプsourcecode.ccのファイル'$(PROJECT_DIR)/App/SomeFile.c'を処理するルールがありません
  • Build Ruleに一致する名前のソースファイルのforを追加し*.[mc]ます。LLVM GCC 4.2

静的ライブラリでは機能しますが、アプリでは機能しません:

ld:ファイルはユニバーサル(4スライス)ですが、(n)armv6スライスは含まれていません:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/libアーキテクチャarmv6の場合は/crt1.3.1.o
  • アプリで機能させるには、このオブジェクトファイル(5.1 SDKに付属)にarmv6スライスを追加する必要があります。
リポ/path/to-4.4/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk/usr/lib/crt1.3.1.o-extractarmv6 -output / tmp / crt1 .3.1-armv6.o
リポ/Applications/Xcode.app/Contents//Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o/tmp/crt1.3.1-armv6.o-create -出力/tmp/crt1.3.1-armv677s.o
mv /Applications/Xcode.app/Contents//Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o /Applications/Xcode.app/Contents//Developer/プラットフォーム/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o.bkp
mv /tmp/crt1.3.1-armv677s.o /Applications/Xcode.app/Contents//Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.0.sdk/usr/lib/crt1.3.1.o

プロジェクトをコンパイルし、アプリにすべてのアーチが含まれていることを確認します。

$ファイルDerivedData/TestApp / Build / Products / Debug-iphoneos / TestApp.app / TestApp
DerivedData / TestApp / Build / Products / Debug-iphoneos / TestApp.app / TestApp:3つのアーキテクチャを備えたMach-Oユニバーサルバイナリ
DerivedData / TestApp / Build / Products / Debug-iphoneos / TestApp.app / TestApp(アーキテクチャarmv6の場合):Mach-O実行可能アーム
DerivedData / TestApp / Build / Products / Debug-iphoneos / TestApp.app / TestApp(アーキテクチャarmv7の場合):Mach-O実行可能アーム
DerivedData / TestApp / Build / Products / Debug-iphoneos / TestApp.app / TestApp(アーキテクチャcputype(12)cpusubtype(11)の場合):Mach-O実行可能アーム

dSYMファイルにはすべてのアーチも含まれていることに注意してください(クラッシュレポートのシンボル化に役立ちます):

$ファイルDerivedData/TestApp / Build / Products / Debug-iphoneos / TestApp.app.dSYM / Contents / Resources / DWARF / TestApp
DerivedData / TestApp / Build / Products / Debug-iphoneos / TestApp.app.dSYM / Contents / Resources / DWARF / TestApp:3つのアーキテクチャを備えたMach-Oユニバーサルバイナリ
DerivedData / TestApp / Build / Products / Debug-iphoneos / TestApp.app.dSYM / Contents / Resources / DWARF / TestApp(アーキテクチャarmv6用):Mach-OdSYMコンパニオンファイルアーム
DerivedData / TestApp / Build / Products / Debug-iphoneos / TestApp.app.dSYM / Contents / Resources / DWARF / TestApp(アーキテクチャarmv7用):Mach-OdSYMコンパニオンファイルアーム
DerivedData / TestApp / Build / Products / Debug-iphoneos / TestApp.app.dSYM / Contents / Resources / DWARF / TestApp(アーキテクチャcputype(12)cpusubtype(11)の場合):Mach-OdSYMコンパニオンファイルアーム

xcode 4.4.1を開き、次にProduct->を開いて、iOS 4.2 2geniPodtouchにアプリを正常にインストールして起動しましたRun without building

  • 製品をアーカイブすると、Apple Mach-O Linkerエラーが再度発生する場合があります。今回は、libarclite_iphoneos.aまたはなどの他のファイルが関係していlibclang_rt.ios.aます。
ld:ファイルはユニバーサル(2スライス)ですが、(n)armv6スライスは含まれていません:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneos.a for Architecture armv6
ld:ファイルはユニバーサル(2スライス)ですが、(n)armv6スライスは含まれていません:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/4.1/libclang_rt.ios.aアーキテクチャarmv6用

crt1.3.1.oに使用される手順はこれらのファイルにも適用され、Xcodeがプロジェクトを正常にアーカイブできるようにするエラーを修正します。ldによって出力されたパスを使用しファイルを検索し、armv6スライスをlipoと結合できます。以前のバージョンのXcodeのlibclang_rt.ios.aは、にあるのではなく、にあることに注意してXcode.app/[...]/usr/lib/clang/4.1くださいXcode.app/[...]/usr/lib/clang/4.0

ファイルを正常にアーカイブし、アドホック配布プロファイルを使用して展開し、iPhone 3G(4.2.1)およびiPhone 3GS(6.0)でテストしました。

  • 前号:アプリを起動できません。にOrganizerは、次のメッセージがあります。「iPhone3G」タイプのデバイスは、このバージョンのXcodeではサポートされていません。

しかし、lsショーでDeviceSupportは:

ls /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/
4.2 4.3 5.0 5.1 6.0(10A403)

Xcode4.4.1の4.2ディレクトリに差分はありません。

問題は、Xcodeがデバイスをどのように検出するかがサポートされているかどうかです。

(または別の16進エディター)で開き/Applications/Xcode.app/Contents/Developer//Platforms/iPhoneOS.platform/Developer//Library/PrivateFrameworks/DTDeviceKitBase.framework/DTDeviceKitBase、 ASCIIをに置き換えると、エラーメッセージが消え、デバイスにインストールされているアプリが一覧表示されます(ただし、デバイスリストのデバイスの箇条書きはまだ赤です)。Hex Fiend4.34.2

次に、編集/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks//DTDeviceKit.framework/Versions/Current/DTDeviceKitして置き換える必要があります:

Expired.deviceArchitecture.iPhone1,1.iPhone1,2.iPod1,1.iPod2,1.iPod2,2.armv6

に :

Expired.deviceArchitecture.iPhone0,1.iPhone0,2.iPod0,1.iPod0,1.iPod0,2.armv5

次に、オーガナイザー(Xcode 4.5.1)にオレンジ色の箇条書きがあります。

「iPhone」上のiOSのバージョンは、このバージョンのiOSSDKで使用するには古すぎます。デバイスを以下にリストされているOSのバージョンに復元してください。

iPhoneにインストールされているOS
4.2.1(8C148)

XcodeがサポートするiOSバージョン
6.0(10A403)
5.1
5.0
4.3

問題は今です:XcodeがサポートするiOSバージョンはどこで定義されていますか?

4.2ディレクトリが/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/あるので、すでにサポートされているはずです...

iPhoneOS4.2.sdkXcode 4.4.1からにコピーしようとしまし/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/たが、デバイスがサポートされていません。

そのため、Xcode4.5で4.2デバイスのサポートを追加する方法が見つかりませんでした。何か案は ?

結論:Xcode4.5内でarmv6/7/7s用にコンパイルすることが可能です。ただし、Xcode 4.4を起動せずに、4.2armv6デバイスでアプリを起動することはできません。

大きなアップデート:Xcode 4.5.2で動作します!

Xcode 4.5.2では、箇条書きが緑色になりました:-)デバイスが[実行]ボタンの近くのドロップダウンリストに表示されます。しかし、アプリを実行しようとすると、次のメッセージが表示されます。

選択したデバイスを使用してXcodeを実行することはできません。
このデバイスで実行するには、サポートされているアーキテクチャの宛先を選択してください。

有効なアーキテクチャにarmv6を追加するだけです:-)

その他の注意:Build Rule名前が一致するソースファイルの場合:または、、または*.[mc]を使用できますLLVM GCC 4.2Apple LLVM compiler 4.1Default compiler

于 2012-10-11T09:50:52.427 に答える
7

この便利なスクリプトをありがとう!

この投稿全体のすべての情報を正常に結合しました。結果の完全なスクリプトは次のとおりです。このスクリプトには、Xcode 4.5.xとarmv6をサポートする以前のXcodeバージョンの両方が必要です(たとえば、Xcode4.4.1は/Applications/Xcode4.4.1.appにインストールされています)。

スクリプトは最初にxcode4.4.xでコンパイルする必要はありません。最新のXcodeを起動し、リリース構成を選択してビルドするだけです。(Release-armv6構成は、Mikeからの元の投稿で言及されているように定義されている必要があります)。

armv6armv7およびarmv7sと互換性のある.appを生成します

元のスクリプトを提供してくれたMikeに感謝します。

#################
# Configuration #
#################
# Change this to the full path where Xcode 4.4 (or below) puts your armv6 output
setenv ARMV6_OUTPUT_PATH     "$BUILD_ROOT/Release-armv6-iphoneos/"
setenv ARMV6_EXECUTABLE_PATH "$ARMV6_OUTPUT_PATH$EXECUTABLE_PATH"

# Your "real" minimum OS version since Xcode 4.5 wants to make it iOS 4.3
# Must be 4.2 or below if you are supporting armv6...
setenv MINIMUM_OS 4.2
#####################
# End configuration #
#####################

# For debugging
echo CURRENT_ARCH = $CURRENT_ARCH
echo CONFIGURATION = $CONFIGURATION

# Don't need to do this for armv6 (built in older Xcode), simulator (i386), or debug build
#if ("$CURRENT_ARCH" == "armv6") exit 0
if ("$CURRENT_ARCH" == "i386") exit 0
if ("$CONFIGURATION" != "Release" && "$CONFIGURATION" != "Beta Test") exit 0

# Paths
setenv LIPO_PATH "$CODESIGNING_FOLDER_PATH/${EXECUTABLE_NAME}.lipo"
setenv FINAL_PATH "$CODESIGNING_FOLDER_PATH/$EXECUTABLE_NAME"
setenv FULL_INFO_PLIST_PATH "$CONFIGURATION_BUILD_DIR/$INFOPLIST_PATH"

#log file for armv6 build
echo "------------------------- BUILDING ARMV6 NOW -------------------------"
setenv LOGFILE "$BUILD_ROOT/buildarmv6.txt"
setenv CONFIGURATION_ARMV6 "${CONFIGURATION}-armv6"
#build armv6 version
echo "Building $FULL_PRODUCT_NAME armv6         CONFIG=$CONFIGURATION-armv6            target=$TARGETNAME"
"/Applications/Xcode 4.4.1.app/Contents/Developer/usr/bin/xcodebuild" -project         "${PROJECT_FILE_PATH}" -target "${TARGETNAME}" -sdk "${PLATFORM_NAME}" -configuration "$CONFIGURATION-armv6" CONFIGURATION_BUILD_DIR="$ARMV6_OUTPUT_PATH" >> "$LOGFILE"
echo "---------------------------- ARMV6 BUILT  -------------------------"
# to check for armv6 build errors
open "$LOGFILE"

# Debug / sanity check
lipo -info "$FINAL_PATH"
ls -l "$ARMV6_EXECUTABLE_PATH"

# Make sure something exists at $LIPO_PATH even if the next command fails
cp -pv "$FINAL_PATH" "$LIPO_PATH"

# If rebuilding without cleaning first, old armv6 might already be there so remove it
# If not, lipo won't output anything (thus the cp command just above)
lipo -remove armv6 -output "$LIPO_PATH" "$FINAL_PATH"

# Add armv6 to the fat binary, show that it worked for debugging, then remove temp file
lipo -create -output "$FINAL_PATH" "$ARMV6_EXECUTABLE_PATH" "$LIPO_PATH"
echo "------------------------- CHECK ARMV6 ARMV7 ARMV7S ARE MENTIONED BELOW -------------------------"
lipo -info "$FINAL_PATH"
echo "------------------------------------------------------------------------------------------------"
rm -f "$LIPO_PATH"

# Change Info.plist to set minimum OS version to 4.2 (instead of 4.3 which Xcode 4.5 wants)
/usr/libexec/PlistBuddy -c "Set :MinimumOSVersion $MINIMUM_OS" "$FULL_INFO_PLIST_PATH"
plutil -convert binary1 "$FULL_INFO_PLIST_PATH"
于 2012-11-23T12:23:11.737 に答える
4

投稿ありがとうございます。ビルドするアプリがいくつかあるので、提案されたようにxcodebuildを使用してarmv6ビルドを自動化しました。これは、それを実行するスクリプトの一部です(bashを使用するために変更されます)。これは、上記のスクリプトに追加できます。これは、「#デバッグ/健全性チェック」の前に追加できます。

setenv LOGFILE "/Users/xyz/Desktop/buildarmv6.txt"

setenv CONFIGURATION_ARMV6 "${CONFIGURATION}_armv6"
echo "Building $FULL_PRODUCT_NAME armv6         CONFIG=$CONFIGURATION_ARMV6         target=$TARGETNAME"

"/Applications/Xcode 4.4.1.app/Contents/Developer/usr/bin/xcodebuild" -project "${PROJECT_FILE_PATH}" -target "${TARGETNAME}" -sdk "${PLATFORM_NAME}" -configuration "$CONFIGURATION_ARMV6" >> "$LOGFILE"

echo "Built armv6"
open "$LOGFILE" # to check for armv6 build errors
于 2012-10-17T00:58:49.223 に答える
3

この便利なチュートリアルとスクリプトを提供してくれたMikeに感謝します。Piotrがコメントで述べているように、Xcodeからアーカイブコマンドを実行すると、アーカイブに別のビルドディレクトリを使用するため、スクリプトが失敗します。

以下は、通常のリリースビルドとアーカイブ固有のビルドの両方でスクリプトを有効にするためのスクリプトへの変更です。

これは、Mikeからの元の指示に従って、armv6ビルドが以前に実行されていることを前提としています。共通のベースビルドディレクトリを削除する方が簡単なので、bash構文を使用します。したがって、これは元のスクリプトをbashに変換することを意味します。これは、setenvをexportに置き換え、ifステートメントの構文を変更するだけの問題です。

# Find the common base directory for both build
XCODE_BUILD=${BUILD_ROOT%%/Build*}
# Change this to the full path where Xcode 4.4 (or below) puts your armv6 output, using the previously derived base
export ARMV6_EXECUTABLE_PATH="$XCODE_BUILD/Build/Products/Release_armv6-iphoneos/$EXECUTABLE_PATH"
于 2012-10-30T23:50:43.167 に答える
3

私の経験をケンジの答えと共有したいと思います。iOS3.1からiOS7までのarmv6/armv7/armv7sで動作するユニバーサルアプリを構築するための最良の方法であると思います。

ケンジが示唆する通りに正確にやってください。主にアプリケーションローダー(zip形式)を介してアプリをアップルに送信する場合は、製品のアーカイブに関する部分を無視してかまいません。

その他のアドバイス:

「配布」構成用にビルドすると、xcodeが製品を検証し、2つの警告が表示されます。

  • 「アーキテクチャarmv6はサポートされていません...」
  • 「4.3より前のiOS展開ターゲットはサポートされていません...」。

もちろん、実際にはarmv6用にビルドし、デプロイメントターゲットを3.1または4.2に設定しているため、たとえば!

したがって...これらの警告は無視してください。

アプリをitunesconnectに送信すると、アップルから、アプリが「PositionIndependentExecutable」ではないことを示す警告メールが届きます。もちろん、これもターゲットが4.3より低いためです。この警告は無視してください。

この日付(2013年7月3日)で、このメソッドを使用してアプリをアプリストアに正常に更新し、検証に合格しました。アプリのデプロイターゲットはiOS3.1.2であり、armv6-armv7-armv7sをサポートしています。

私はそれも言いたいです:

  • まったく新しいアプリを作成する場合は、展開ターゲットをiOS6またはiOS5に設定するだけです。古いOSを無視します。
  • 2010年以降に販売された古いアプリがあり、数万人のユーザーがいる場合、実際には、Appleが通常言うよりもはるかに多くの人がarmv6でそれを使用している可能性があります。主にアプリをデバイスで実行できる場合、3年はこれらの古いデバイスのサポートを終了するには短すぎると思います。
于 2013-07-04T08:14:30.450 に答える
1

Appleは、iOS5より前のデバイスをサポートし、iPhone5の起動イメージを含むビルドの受け入れを停止しました。これは、Xcode4.4.1でビルドされた最後のビルドの電子メールです。

開発者の皆様、

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

無効な起動イメージ-アプリに、iOS6.0SDK以降でビルドされたアプリでのみサポートされるサイズ修飾子付きの起動イメージが含まれています。

これらの問題が修正されたら、[バージョンの詳細]ページに移動し、[バイナリをアップロードする準備ができました]をクリックします。アプリのステータスが「アップロードを待機中」になるまで、送信プロセスを続行します。その後、修正されたバイナリを配信できます。

よろしく、

AppStoreチーム

于 2013-02-17T14:27:46.840 に答える