अमान्य स्विफ़्ट समर्थन - फ़ाइलें मेल नहीं खातीं


116

मैंने स्विफ्ट 2 में एक ऐप को फिर से लिखा है। मैं आंतरिक परीक्षण के लिए ऐप को iTunesConnect (Xcode 7 GM के माध्यम से) में अपलोड करने की कोशिश कर रहा हूं।

मैंने थोड़ी देर के लिए "अमान्य स्विफ्ट समर्थन" त्रुटि के साथ कुश्ती की ( जिसमें अन्य, संबंधित प्रश्न हैं ) ... लेकिन अब इसे कुछ अलग तरीके से बदल दिया गया है।

Apple से त्रुटि अब कहती है:

अमान्य स्विफ्ट समर्थन

फ़ाइलें libswiftCoreLocation.dylib, libswiftCoreMedia.dylib, libswiftCoreData.dylib, libswiftAVFoundation.dylib मेल नहीं खाती

/Payload/App.app/Frameworks/libswiftCoreLocation.dylib, /Payload/App.app/Frameworks/libswiftCoreMedia.dylib, /Ploadload/App/app/Frameworks/libswiftCoreData.dylib ,/Payload/Perload/ dylib

सुनिश्चित करें कि फ़ाइलें सही हैं (?), अपने ऐप को फिर से बनाएं , और इसे पुनः सबमिट करें।

पोस्ट-प्रोसेसिंग को लागू न करें

/Payload/App.app/Frameworks/libswiftCoreLocation.dylib, /Payload/App.app/Frameworks/libswiftCoreMedia.dylib, /Ploadload/App/app/Frameworks/libswiftCoreData.dylib ,/Payload// dylib।

मैं "पोस्ट-प्रोसेसिंग लागू न करें", "सुनिश्चित करें कि फाइलें सही हैं, अपने ऐप को फिर से बनाएँ, और इसे पुनः सबमिट करें", आदि के लिए खोज करके समान त्रुटियों को खोजने में असमर्थ हैं।

किसी को पता है कि मैं कैसे कर सकता हूं "सुनिश्चित करें कि फाइलें सही हैं" - या - कोई अन्य सिफारिशें हैं? धन्यवाद।


मुझे ठीक वैसी ही समस्या है। कोई उपाय?
बेनी बोरीउ

क्या आप इस ऐप को इस्तीफा दे रहे हैं? क्या यह Xcode का सीधा अपलोड है?
एंडी

@ और इसे अपलोड करने के तुरंत बाद Xcode से सीधा अपलोड करें।
दान

जवाबों:


82

यहां भी यही समस्या। मुझे लगता है कि यह बिटकॉइन से संबंधित डेवलपर टूल्स का एक बग है।

मुझे बस इसके लिए वर्कअराउंड मिला।

  1. नए बिल्ड नंबर के साथ अपने ऐप को संग्रहीत करें :(
  2. आयोजक "खोजक में दिखाएँ" से खोजक में संग्रह (.xcarchive फ़ाइल) ढूंढें
  3. पैकेज खोलें और जैसे निर्देशिका खोजें Products/Applications/YourApp.ipa/Frameworks/औरSwiftSupport/iphoneos/
  4. सभी libswiftXxx.dylibफ़ाइलों से और ओवरराइट SwiftSupport/iphoneos/में कॉपी करेंProducts/Applications/YourApp.ipa/Frameworks/
  5. अब, ऑर्गनाइज़र से ऐप स्टोर पर अपलोड करें

इस प्रक्रिया के साथ, मैं अपने बिल्ड को अपलोड करने में सफल हूं। अब मैं समीक्षा का इंतजार कर रहा हूं।

ध्यान दें:

मैं CocoaPods का उपयोग कर रहा हूं, और ENABLE_BITCODEविकल्प NO था।


IOS SDK आप क्या लक्ष्य कर रहे हैं? मुझे लगा कि आप बिटकॉइन के साथ स्टोर में अक्षम को जमा नहीं कर सकते।
जाल

3
मेरे मामले में, SwiftSupport / iphoneos / खाली है।
लिम थी चने

2
मान्यता मेरे लिए सफल रही, लेकिन Processingआईट्यून्स कनेक्ट के प्रीलेरेज खंड में ~ 12 घंटे के बाद भी निर्माण जारी है ।
21

2
इसके लिए धन्यवाद! मैं अभी भी एपीआई विश्लेषण फ़ाइल बहुत बड़ी बारे में एक चेतावनी हो रही है cl.ly/image/0s0N0s441s0X - लेकिन महत्वपूर्ण बात यह है कि यह अभी भी पारित कर दिया और TestFlight में प्राप्त करने में सक्षम था।
ded

1
अगर कोई फ़ोल्डर नहीं है तो मुझे क्या करना चाहिए SwiftSupport / iphoneos / मेरे .ipa के अंदर?
अलेक्जेंडर याकोवलेव

51

संपादित करें: CocoaPods 0.39.0 जारी किया गया है जो इस मुद्दे को ठीक करता है!

जैसा कि @orkenstein ने उल्लेख किया है , कुछ कोड में टिप्पणी करके एक सरल समाधान हैPod-frameworks.sh । मैं यहाँ थोड़ा और विवरण शामिल कर रहा हूँ।

अपने Xcode प्रोजेक्ट डायरेक्टरी में, खोलें Pods/Target Support Files/Pods/Pods-frameworks.sh

निम्नलिखित पंक्तियों पर टिप्पणी करें:

# Embed linked Swift runtime libraries
local basename
basename="$(basename "$1" | sed -E s/\\..+// && exit ${PIPESTATUS[0]})"
local swift_runtime_libs
swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${basename}.framework/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u  && exit ${PIPESTATUS[0]})
for lib in $swift_runtime_libs; do
  echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
  rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
  code_sign_if_enabled "${destination}/${lib}"
done

=>

# Embed linked Swift runtime libraries
# local basename
# basename="$(basename "$1" | sed -E s/\\..+// && exit ${PIPESTATUS[0]})"
# local swift_runtime_libs
# swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${basename}.framework/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u  && exit ${PIPESTATUS[0]})
# for lib in $swift_runtime_libs; do
#   echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
#   rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
#   code_sign_if_enabled "${destination}/${lib}"
# done

सहेजें Pods-frameworks.shऔर आपको जाना अच्छा होना चाहिए!


4
इसने मेरे लिए काम किया। यदि आप पॉड-इंस्टाल या पॉड-अपडेट चलाते हैं, तो आप इसे फिर से टिप्पणी कर सकते हैं!
मैक्स अलेक्जेंडर

Cocoapods यहां जारी करते हैं: github.com/CocoaPods/CocoaPods/issues/4188 : आप इस पीआर कोशिश कर सकते हैं github.com/CocoaPods/CocoaPods/pull/4221 उन निर्देशों के साथ: guides.cocoapods.org/using/unreleased-features
ldiqual

cocoaPods 0.39.0 अपडेट किया गया है और यह मेरे लिए इस मुद्दे को हल नहीं करता है
nwales

@DJ Tarazona आपके नुस्खा के लिए धन्यवाद !! यह पूरी तरह से मेरे लिए चाल है, यहां तक ​​कि जब मैंने कोकोपोड्स मणि को नवीनतम संस्करण में अपडेट किया था
जॉर्ज विसेंट मेंडोज़ा

16

इस समस्या के लिए समाधान को मर्ज कर दिया गया है और यह नवीनतम कोकोआपॉड संस्करण पर उपलब्ध है 0.39.0.beta.5

https://github.com/CocoaPods/CocoaPods/pull/4268

कोकोआपोड्स के नवीनतम संस्करण को चलाने के लिए gem install cocoapods --pre

वैकल्पिक रूप से, अप्रबंधित सुविधाओं को चलाने के लिए निर्देशों का पालन करें: http://guides.cocoapods.org/use/unreleased-features

एक बार जब आपके पास कोकोआपोड्स का नवीनतम संस्करण हो, तो pod installफिर से चलाएं ।


यह पैसा बनाने वाला है
tommybananas

आंसू आ रहे हैं। धन्यवाद!
MQLN

त्रुटि को कोकोआपॉड्स के साथ विशेष रूप से नहीं करना है; हम एक ही समस्या का सामना कर रहे हैं और कोकोआपोड्स का उपयोग नहीं करते हैं।
6

8

मैं अपने ऐप को बनाने के लिए फास्टलेन जिम 1.9.0 का उपयोग कर रहा था और यह ऐप्पल द्वारा अस्वीकार कर दिया जाता रहा क्योंकि फाइलें मेल नहीं खाती थीं, जबकि अगर मैंने XCode 8 के माध्यम से अपलोड किया था तो इसे स्वीकार किया गया था। मैंने आईपीए के स्विफ्ट सपोर्ट फोल्डर में और स्विफ्टस फोल्डर में स्विफ्ट लिबास की जांच की, मैंने पाया कि स्विफ्ट सपोर्ट फोल्डर में लिबास स्विफ्ट 2.3 के लिए थे, जबकि फ्रेम फोल्डर फोल्डर में यह 3. था। इसलिए अपने जिम फाइल में मैंने टूलचैन जोड़ा विकल्प:

gym(
  scheme: "CoCadre", 
  configuration: "Production Release",
  clean: true,
  use_legacy_build_api: false,
  toolchain: "com.apple.dt.toolchain.Swift_2_3"
)

* ध्यान दें कि मुझे टूलचेन विकल्प का उपयोग करने के लिए use_legacy_build_api को गलत में बदलना था

टूलचैन विकल्प का उपयोग करने के लिए, use_legacy_build_api को सेट करने की आवश्यकता है: गलत https://github.com/fastlane/fastlane/issues/6003#issuecomment-244792185


धन्यवाद! मैं फास्टलेन और जिम का भी उपयोग कर रहा हूं और इसने इस मुद्दे को ठीक कर दिया है।
आइस्टीन बाय सिप

धन्यवाद, इससे जिम को इस्तेमाल करने के दौरान समस्या को ठीक करने में मदद मिली। कृपया ध्यान दें कि मैं अभी भी use_legacy_build_api के साथ इस समाधान का उपयोग करने में सक्षम था: सच
विक्टर माली

6

थोड़ा कम जटिल समाधान है, जो GitHub पर पाया जाता है :

मुझे पोड्स -फ्रैमवर्कसेश में चारों ओर एक नज़र थी और पाया गया कि एक अनुभाग इस प्रकार टिप्पणी करता है:

लिंक से जुड़े स्विफ्ट रनटाइम लाइब्रेरीज़
, कोड के ब्लॉक पर टिप्पणी करते हुए, जो इन पुस्तकालयों को कॉपी करता है (और कोड संकेत उन्हें) मेरे सबमिशन को ठीक करने के लिए लगता है। मैंने अभी तक गहराई से नहीं देखा है कि क्या यह सिर्फ उनकी नकल है जो मुद्दों का कारण बनता है या यदि यह कोड-हस्ताक्षर है। मैं अपनी गहराई से थोड़ा बाहर निकल रहा हूं।


4
  1. अपने कोकोपोड्स को नवीनतम संस्करण में अपडेट करें, sudo gem install cocoapodsटर्मिनल में टाइप करें ।
  2. pod updateअपनी परियोजना की निर्देशिका के अंतर्गत चलाएँ ।
  3. बिटकोड को NO के लिए सक्षम करने के लिए सेट करना याद रखेंDebugअपने सभी पॉड्स के विकल्प के लिए ।
  4. फिक्स्ड

निम्न कोड के कारण समस्या ठीक हो गई है Pods-frameworks.sh:

# Embed linked Swift runtime libraries
local basename
basename="$(basename "$1" | sed -E s/\\..+// && exit ${PIPESTATUS[0]})"
local swift_runtime_libs
swift_runtime_libs=$(xcrun otool -LX "${CONFIGURATION_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/${basename}.framework/${basename}" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u  && exit ${PIPESTATUS[0]})
for lib in $swift_runtime_libs; do
  echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
  rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
  code_sign_if_enabled "${destination}/${lib}"
done

इसे बदल दिया गया था:

# Embed linked Swift runtime libraries. No longer necessary as of Xcode 7.
if [ "${XCODE_VERSION_MAJOR}" -lt 7 ]; then
    local swift_runtime_libs
    swift_runtime_libs=$(xcrun otool -LX "$binary" | grep --color=never @rpath/libswift | sed -E s/@rpath\\/\(.+dylib\).*/\\1/g | uniq -u  && exit ${PIPESTATUS[0]})
  for lib in $swift_runtime_libs; do
    echo "rsync -auv \"${SWIFT_STDLIB_PATH}/${lib}\" \"${destination}\""
    rsync -auv "${SWIFT_STDLIB_PATH}/${lib}" "${destination}"
    code_sign_if_enabled "${destination}/${lib}"
  done
fi

2

इसके लिए मेरा समाधान:

मैं Cocoapods के माध्यम से Reveal का उपयोग कर रहा हूँ और Bitcode को अक्षम करने के लिए Reveal की आवश्यकता है। इसलिए मैंने केवल डिबग के लिए खुलासा (किसी अन्य फ्रैमवर्क के लिए काम करना चाहिए) को शामिल किया:

pod 'Reveal-iOS-SDK', :configurations => ['Debug']

जैसा कि मेरा खुलासा अब केवल डिबग के लिए कॉन्फ़िगर किया गया है, मैंने केवल डिबग के लिए बिटकोड को अक्षम कर दिया है।

यहां छवि विवरण दर्ज करें

इस सेटिंग्स के साथ सब कुछ ठीक काम करता है, बिना किसी हैक के ...


0

मैंने यह त्रुटि देखी है जब बिटकॉइन का समर्थन नहीं करने वाले पुस्तकालयों को एकीकृत किया जाता है (जैसे कि नए अवशेष का वर्तमान स्थिर संस्करण)। समाधान या तो पुस्तकालयों को हटाने के लिए है, बिटकोड को अक्षम करें (और संभवतः स्टोर में सबमिट करने में सक्षम नहीं हैं), या अद्यतन बायनेरिज़ के लिए प्रतीक्षा करें जो आपके लाइब्रेरी वेंडर से बिटकोड का समर्थन करते हैं।


0

मेरे लिए त्रुटि यह थी कि मैंने स्पा को ऐप स्टोर पर अपलोड करने के लिए ऐप स्टोर प्रोफ़ाइल के बजाय एडहॉक प्रोफ़ाइल के साथ बनाया था।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.