2016-09-14 9 views
9

मेरा ऐप & सिमुलेटर उपकरणों पर ठीक चलाता है असफल, लेकिन जब मैं यह भेजते हैं तो मैं अमान्य बंडल मिलता है - एक या अधिक गतिशील पुस्तकालयों कि संदर्भित आपके ऐप द्वारा डिलीब सर्च पथ त्रुटि में मौजूद नहीं है, अपलोड सफलतापूर्वक पूर्ण होने के लगभग आधे घंटे बाद मुझे ईमेल किया गया।अमान्य बंडल त्रुटि, अनुप्रयोग प्रस्तुत कर सकते हैं नहीं - क्योंकि 4 तेज dylibs एम्बेड करने के लिए

इस thead here, अर्थात् otool -L चलाने पर सलाह के बाद, मैं देख सकता हूँ एप्लिकेशन के मुख्य निष्पादन Frameworks/ फ़ोल्डर में अपने @rpath/...dylib फ़ाइलों के सभी, अपेक्षा के अनुरूप लेकिन, appex के निष्पादन कुछ स्विफ्ट libs याद आ रही है है।

Watch Extension: 
    /System/Library/Frameworks/WatchKit.framework/WatchKit (compatibility version 1.0.0, current version 1.0.0) 
    /System/Library/Frameworks/Foundation.framework/Foundation (compatibility version 300.0.0, current version 1349.0.0) 
    /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 228.0.0) 
    /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0) 
    /System/Library/Frameworks/CoreFoundation.framework/CoreFoundation (compatibility version 150.0.0, current version 1348.0.0) 
    /System/Library/Frameworks/UIKit.framework/UIKit (compatibility version 1.0.0, current version 3599.4.0) 
    /System/Library/Frameworks/WatchConnectivity.framework/WatchConnectivity (compatibility version 1.0.0, current version 116.0.0) 
    @rpath/libswiftCore.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftCoreGraphics.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftCoreLocation.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftDarwin.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftDispatch.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftFoundation.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftHomeKit.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftObjectiveC.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftSceneKit.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftUIKit.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftWatchKit.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftsimd.dylib (compatibility version 1.0.0, current version 800.0.46) 

अनुसरण कर रहे हैं Frameworks/ फ़ोल्डर में नहीं है (लेकिन अन्य सभी कर रहे हैं):

यहाँ appex पर otool -L से उत्पादन है

@rpath/libswiftHomeKit.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftSceneKit.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftWatchKit.dylib (compatibility version 1.0.0, current version 800.0.46) 
    @rpath/libswiftsimd.dylib (compatibility version 1.0.0, current version 800.0.46) 

ऐसा क्यों है? मैंने pod install के माध्यम से अपने पॉड्स प्रोजेक्ट को पुन: उत्पन्न किया, कुछ भी नहीं बदला। मुझे कोई चेतावनी नहीं मिली। मैंने बिल्ड (संग्रह) के लॉग आउटपुट की जांच की, वहां कोई चेतावनी नहीं है। मैं इन्हें कैसे शामिल कर सकता हूं जैसे वे होना चाहिए?

मेरे मुख्य ऐप के लक्ष्य में, हमेशा एम्बेड करें स्विफ्ट मानक पुस्तकालय हाँ पर सेट है। वॉच एंड वॉच अप्क्स लक्ष्य में, यह डुप्लिकेट (अच्छा) रखने के अस्वीकृति से बचने के लिए नहीं है। मैंने उस अन्य धागे में वर्णित अनुसार मेरी अपील में EMBEDDED_CONTENT_CONTAINS_SWIFT को हां में सेट करने का प्रयास किया, लेकिन इससे कोई फर्क नहीं पड़ता।

अद्यतन 1 - मैं एक्सकोड आयोजक से एडीएचओसी निर्माण के रूप में भी निर्यात नहीं कर सकता, यह "संकलन बिटकोड" चरण पर उसी कारण से विफल रहता है। किसी भी विचार कैसे इन ठीक करने के लिए

Runtime search paths in build settings

यहाँ विफल रहा है निर्यात से एक लॉग टुकड़ा है,: रनटाइम खोज पथ इस तरह सेट कर रहे हैं? मुझे कोई कारण नहीं दिख रहा कि ये libs क्यों गुम हैं।

Debug: Command took 0 seconds 
    Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks/WatchKit.framework/WatchKit.tbd 
    Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks/Foundation.framework/Foundation.tbd 
    Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/usr/lib/libobjc.A.tbd 
    Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/usr/lib/libSystem.B.tbd 
    Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks/CoreFoundation.framework/CoreFoundation.tbd 
    Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks/UIKit.framework/UIKit.tbd 
    Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks/WatchConnectivity.framework/WatchConnectivity.tbd 
    Debug: Found framework/dylib: /Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/usr/lib/libobjc.A.tbd 
    Debug: Search Path: ['/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../lib/clang/8.0.0/lib/darwin', '/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/usr/lib', '/Applications/Xcode.app/Contents/Developer/Platforms/WatchOS.platform/Developer/SDKs/WatchOS3.0.sdk/System/Library/Frameworks'] 
    error: libswiftCore.dylib not found in dylib search path 


Stderr: 
    from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1974:in `block in CompileOrStripBitcodeInBundle' 
    from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1931:in `each' 
    from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1931:in `CompileOrStripBitcodeInBundle' 
    from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1921:in `block in CompileOrStripBitcodeInBundle' 
    from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1920:in `each' 
    from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:1920:in `CompileOrStripBitcodeInBundle' 
    from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2106:in `ProcessIPA' 
    from /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool:2674:in `<main>' 
2016-09-14 15:33:40 +0000 /Applications/Xcode.app/Contents/Developer/usr/bin/ipatool exited with 1 
2016-09-14 15:33:40 +0000 ipatool JSON: { 
    alerts =  (
      { 
     code = 2554; 
     description = "Configuration issue: platform AppleTVSimulator.platform doesn't have any non-simulator SDKs; ignoring it"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 2554; 
     description = "Configuration issue: platform iPhoneSimulator.platform doesn't have any non-simulator SDKs; ignoring it"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 2554; 
     description = "Configuration issue: platform WatchSimulator.platform doesn't have any non-simulator SDKs; ignoring it"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftCore.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftCore.dylib"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftCoreGraphics.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftCoreGraphics.dylib"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftCoreLocation.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftCoreLocation.dylib"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftDarwin.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftDarwin.dylib"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftDispatch.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftDispatch.dylib"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftFoundation.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftFoundation.dylib"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftHomeKit.dylib: Could not resolve @rpath in @rpath/libswiftHomeKit.dylib from Watch Extension"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftObjectiveC.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftObjectiveC.dylib"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftSceneKit.dylib: Could not resolve @rpath in @rpath/libswiftSceneKit.dylib from Watch Extension"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftUIKit.dylib: Could not find image to link for armv7k in /private/var/folders/yl/mw_r1p4j3vj2mfp32rqs0y7r0000gn/T/XcodeDistPipeline.6Tu/Root/Payload/Photobooth.app/Frameworks/libswiftUIKit.dylib"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftWatchKit.dylib: Could not resolve @rpath in @rpath/libswiftWatchKit.dylib from Watch Extension"; 
     info =    { 
     }; 
     level = WARN; 
    }, 
      { 
     code = 284; 
     description = "Failed to resolve linkage dependency Watch Extension armv7k -> @rpath/libswiftsimd.dylib: Could not resolve @rpath in @rpath/libswiftsimd.dylib from Watch Extension"; 
     info =    { 
     }; 
     level = WARN; 
    }, 

उत्तर

15

यह इस यह पता लगाने की 12 घंटे लग गए, लेकिन इस यह क्या तय है - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES निर्माण इस तरह की स्थापना को बदलने:

अनुप्रयोग लक्ष्य (मुख्य लक्ष्य) - नहीं करने के लिए सेट (मेरा हाँ था)

घड़ी को लक्षित - हाँ करने के लिए सेट (मेरा नहीं था)

घड़ी एप्लिकेशन एक्सटेंशन को लक्षित - (मेरा हाँ था)

संपादित नहीं करने के लिए सेट: मैं xcode 8 में एक नया, रिक्त घड़ी परियोजना बनाकर ऐसा पता लगा, और पार संदर्भित नई xcode 8 में निर्माण सेटिंग्स के बीच मतभेद टेम्पलेट परियोजना, और मेरी क्रिस्टी पुरानी प्राचीन परियोजना। ऊपर दी गई सेटिंग्स xcode 8 टेम्पलेट प्रोजेक्ट में हैं।

+0

जहां आप कोकोपोड्स का उपयोग करते हैं? मुझे यह वही त्रुटि है हालांकि तेजी से पुस्तकालय मेरे मामले में सही दिखते हैं। मैंने कोको पॉड्स चेतावनी संदेश के सुझावों के अनुसार ध्वज '$ (विरासत) 'भी कोशिश की। मैं इस लड़ने के 3 दिन पर हूं। :( – kev

+0

@kev: हाँ। मैं xcode 8 में एक नई खाली प्रोजेक्ट बनाने का सुझाव देता हूं और नए/टेम्पलेट प्रोजेक्ट से बिल्डिंग सेटिंग्स में भिन्नता को संदर्भित करता हूं। यह आपको दिखा सकता है कि किस सेटिंग के साथ प्रयोग करना है। यदि आपने हाल ही में ऐसा नहीं किया है तो 'मणि अपडेट कोकोपोड्स'। – xaphod

+0

यह मेरे लिए काम करता है। मेरे मामले में मैंने ऐप लक्ष्य सेट को YES पर छोड़ दिया। एकमात्र मुद्दा यह था कि वॉच लक्ष्य को अब YES में बदलना आवश्यक है देखो ऐप में स्विफ्ट भी शामिल है। – robotspacer

4

मैं इस मुद्दे के साथ अपने अनुभव पर विस्तृत जानकारी देना चाहता हूं ताकि उम्मीद है कि अगर वे इसमें भाग लेते हैं तो कुछ और बचाएं।

पृष्ठभूमि:

  1. पुराने परियोजना
  2. अद्यतन कर रहा है अनुप्रयोग स्विफ्ट 1.0 से स्विफ्ट 3.0.1, 8 से अद्यतन लक्ष्य आईओएस के लिए 10, watchOS करने के लिए ऐप और आज एक्सटेंशन iOS 8, WatchOS 1.0 के साथ जन्म लिया 1.0 3.0 से
  3. इस ताज़ा साथ कोको फलियाँ का उपयोग शुरू किया, मूल रूप से नहीं था

@xaphod था पुस्तकालयों लापता, जब मैं भागा otool -L सभी पुस्तकालयों में से प्रत्येक लक्ष्य में सही दिखता था।

कई को अस्वीकार कर दिया बाइनरी मैं अंत में करने के बाद:

    परियोजना से
  1. अनइंस्टॉल किया Cocoapods, suggested here
  2. सबसे हाल ही में, गैर बीटा पर अपडेट किया गया Cocoapods, संस्करण
  3. Reinstalled Cocoapods, को कम करने फली app से लक्ष्य के रूप में , ऐप देखें, एक्सटेंशन देखें, आज एक्सटेंशन, और परीक्षण लक्ष्य बस ऐप (चूंकि मुख्य ऐप केवल पॉड्स का उपयोग करने वाली चीज़ थी)
  4. बाद @xaphod सुझाव (फली का उपयोग किए बिना) एक नया टेम्पलेट प्रोजेक्ट बनाने के लिए यहां पोस्ट और तुलना निर्माण सेटिंग्स, विशेष रूप से ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES
  5. = $(inherited) सेट ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES

मुख्य अनुप्रयोग लक्ष्य प्रति कोको फली चेतावनी सुझाव देते हैं। यह YES पर डिफ़ॉल्ट है और वास्तव में Xcode में YES - $(inherited) के रूप में प्रदर्शित किया जाता है। अन्त में, EMBEDDED_CONTENT_CONTAINS_SWIFT = YES फली सेटिंग्स जो फली कर प्रति के लिए आप

घड़ी अनुप्रयोग = YES

घड़ी एक्सटेंशन = NO

टुडे एक्सटेंशन = NO

ऊपर दी गई सेटिंग से पहले, कोको फोड को खुश करने के लिए मैंने सब कुछ के लिए $(inherited) का प्रयास किया। यह स्पष्ट रूप से एक गरीब जीवन निर्णय था।

मुझे अंततः AD HOC के रूप में निर्यात करने का प्रयास मिला, अगर बाइनरी को आईट्यून्स कनेक्ट द्वारा स्वीकार नहीं किया जा रहा था, तो मैं असफल हो जाऊंगा, इसलिए मैं ऐप्पल में निर्माण फेंकने से पहले समय परीक्षण सिद्धांतों को बचा सकता था। मैंने एक असफल बाइनरी की तुलना में असफल होने की कोशिश की लेकिन वास्तव में कुछ भी नहीं देखा जो अंतर पर मेरे सामने खड़ा था।

मुझे अभी भी 100% आरामदायक महसूस नहीं होता है कि मुझे यह काम कैसे मिला लेकिन मुझे खुशी है कि मैं अंततः एक बाइनरी अपलोड कर सकता हूं। चीयर्स और शुभकामनाएँ! अपने Embeded Binaries Section, आप संदर्भ रास्ते में कुछ निरपेक्ष पथ देख सकते हैं अगर

0

बहुत बढ़िया, मैं एक ही मुद्दा

एक नजर डालें से मुलाकात की। आप बाईं ओर प्रोजेक्ट ट्री से ढांचे को हटा सकते हैं, और ढांचे को दोबारा जोड़ सकते हैं। सुनिश्चित करें, पथ ..in build/Debug-iphoneos

आपको शुभकामनाएं!

संबंधित मुद्दे