Prerak Tiwari
Prerak Tiwari

Reputation: 3466

Getting error while exporting ios app

I am getting below error for my Hybrid Cordova 6.5 App powered with IBM MobileFirst 8 when I am trying to export the app:

2017-02-24 21:54:40 +0000 [MT] Failed to generate distribution items with error: Error Domain=DVTMachOErrorDomain Code=0 "Found an unexpected Mach-O header code: 0x72613c21" UserInfo={NSLocalizedDescription=Found an unexpected Mach-O header code: 0x72613c21, NSLocalizedRecoverySuggestion=}
2017-02-24 21:54:40 +0000 [MT] Presenting: Error Domain=DVTMachOErrorDomain Code=0 "Found an unexpected Mach-O header code: 0x72613c21" UserInfo={NSLocalizedDescription=Found an unexpected Mach-O header code: 0x72613c21, NSLocalizedRecoverySuggestion=}


2017-02-24 22:05:30 +0000 [MT] Beginning distribution assistant for archive: App Name, task: Validate
2017-02-24 22:05:30 +0000 [MT] Automatically selecting the only availaable distribution method <IDEDistributionMethodiOSAppStoreValidation: 0x7f8ca08aefb0>
2017-02-24 22:05:31 +0000 [MT] [OPTIONAL] Didn't find archived user entitlements for <DVTFilePath:0x7f8c9f9ad2b0:'/Users/ptiwari/Library/Developer/Xcode/Archives/2017-02-24/App Name 2-24-17, 4.05 PM.xcarchive/Products/Applications/App Name.app/Frameworks/IBMMobileFirstPlatformFoundation.framework'>: Error Domain=NSCocoaErrorDomain Code=4 "Item at "/Users/ptiwari/Library/Developer/Xcode/Archives/2017-02-24/App Name 2-24-17, 4.05 PM.xcarchive/Products/Applications/App Name.app/Frameworks/IBMMobileFirstPlatformFoundation.framework" did not contain a "archived-expanded-entitlements.xcent" resource." UserInfo={NSLocalizedDescription=Item at "/Users/ptiwari/Library/Developer/Xcode/Archives/2017-02-24/App Name 2-24-17, 4.05 PM.xcarchive/Products/Applications/App Name.app/Frameworks/IBMMobileFirstPlatformFoundation.framework" did not contain a "archived-expanded-entitlements.xcent" resource.}
2017-02-24 22:05:31 +0000 [MT] [OPTIONAL] Didn't find archived user entitlements for <DVTFilePath:0x7f8ca0a58e60:'/Users/ptiwari/Library/Developer/Xcode/Archives/2017-02-24/App Name 2-24-17, 4.05 PM.xcarchive/Products/Applications/App Name.app/Frameworks/IBMMobileFirstPlatformFoundationPush.framework'>: Error Domain=NSCocoaErrorDomain Code=4 "Item at "/Users/ptiwari/Library/Developer/Xcode/Archives/2017-02-24/App Name 2-24-17, 4.05 PM.xcarchive/Products/Applications/App Name.app/Frameworks/IBMMobileFirstPlatformFoundationPush.framework" did not contain a "archived-expanded-entitlements.xcent" resource." UserInfo={NSLocalizedDescription=Item at "/Users/ptiwari/Library/Developer/Xcode/Archives/2017-02-24/App Name 2-24-17, 4.05 PM.xcarchive/Products/Applications/App Name.app/Frameworks/IBMMobileFirstPlatformFoundationPush.framework" did not contain a "archived-expanded-entitlements.xcent" resource.}
2017-02-24 22:05:35 +0000 [MT] Canceled distribution assistant

Upvotes: 3

Views: 1793

Answers (3)

Prerak Tiwari
Prerak Tiwari

Reputation: 3466

I removed all the cordova plugins and added them back again. Then I removed the ios platform and add it again. Then I opened the xcode and tried exporting my app again, it got exported successfully.

Upvotes: 0

Srinivas Sama
Srinivas Sama

Reputation: 89

Are you using any third part SDK. Set this.

https://github.com/CocoaPods/CocoaPods/issues/4450

Upvotes: -1

Idan Adar
Idan Adar

Reputation: 44516

I'm pretty sure this relates to the following: https://mobilefirstplatform.ibmcloud.com/blog/2016/10/17/prepare-ios-apps-for-app-store-submission/

  1. Select Build Phases tab in Xcode project settings
  2. Add new Run Script Phase
  3. Paste the following script inside Run Script tab

    APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
    
    find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
    do
        FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
        FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
        echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
    
        EXTRACTED_ARCHS=()
    
        for ARCH in $ARCHS
        do
             echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
             lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
             EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
        done
    
        echo "Merging extracted architectures: ${ARCHS}"
        lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
        rm "${EXTRACTED_ARCHS[@]}"
    
        echo "Replacing original executable with thinned version"
        rm "$FRAMEWORK_EXECUTABLE_PATH"
        mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
    
    done
    

Upvotes: 5

Related Questions