Sebastian
Sebastian

Reputation: 1912

Creating an iOS Simulator Build with Cordova for Facebook review

I need to hand in a new version of our app to submit my request for new Facebook permissions.

The problem is, that it is not possible to build the iOS simulator build like described here.

I attached my complete output on gist.

The most important parts are these ones:

SebastiansMBP2:ios <user>$ xcodebuild -arch i386 -sdk iphonesimulator8.0
Build settings from command line:
    ARCHS = i386
    SDKROOT = iphonesimulator8.0

=== BUILD TARGET CordovaLib OF PROJECT CordovaLib WITH THE DEFAULT CONFIGURATION (Release) ===

Check dependencies
...
2014-10-21 11:44:28.029 xcodebuild[67280:364513]  DeveloperPortal: Using pre-existing current store at URL (file:///Users/<user>/Library/Developer/Xcode/DeveloperPortal%206.0.db).
=== BUILD TARGET <ProjectName> OF PROJECT <ProjectName> WITH THE DEFAULT CONFIGURATION (Release) ===


CompileC build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/AdjustCordova.o <ProjectName>/Plugins/com.adjust.sdk/AdjustCordova.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    cd /Users/<user>/Development/20/<ProjectName>/platforms/ios
    export LANG=en_US.US-ASCII
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/<user>/.rvm/gems/ruby-2.0.0-p451/bin:/Users/<user>/.rvm/gems/ruby-2.0.0-p451@global/bin:/Users/<user>/.rvm/rubies/ruby-2.0.0-p451/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/X11/bin:/Users/<user>/.rvm/bin:/Users/<user>/.adt/tools:/Users/<user>/.adt/platform-tools"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x objective-c -arch i386 -fmessage-length=270 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -fcolor-diagnostics -std=c99 -fobjc-arc -Wno-trigraphs -fpascal-strings -Os -Wno-missing-field-initializers -Wno-missing-prototypes -Wno-implicit-atomic-properties -Wno-receiver-is-weak -Wno-arc-repeated-use-of-weak -Wduplicate-method-match -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wno-shorten-64-to-32 -Wpointer-sign -Wno-newline-eof -Wno-selector -Wno-strict-selector-match -Wundeclared-selector -Wno-deprecated-implementations -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator8.0.sdk -fexceptions -fasm-blocks -fstrict-aliasing -Wprotocol -Wdeprecated-declarations -g -fvisibility=hidden -Wno-sign-conversion -fobjc-abi-version=2 -fobjc-legacy-dispatch -mios-simulator-version-min=7.0 -iquote /Users/<user>/Development/20/<ProjectName>/platforms/ios/build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/<ProjectName>-generated-files.hmap -I/Users/<user>/Development/20/<ProjectName>/platforms/ios/build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/<ProjectName>-own-target-headers.hmap -I/Users/<user>/Development/20/<ProjectName>/platforms/ios/build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/<ProjectName>-all-target-headers.hmap -iquote /Users/<user>/Development/20/<ProjectName>/platforms/ios/build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/<ProjectName>-project-headers.hmap -I/Users/<user>/Development/20/<ProjectName>/platforms/ios/build/Release-iphonesimulator/include -I/Users/<user>/Development/20/<ProjectName>/platforms/ios/build/Release-iphonesimulator/usr/local/lib/include -I/Users/<user>/Development/20/<ProjectName>/platforms/ios/build/UninstalledProducts/include -I/Users/<user>/Development/20/<ProjectName>/platforms/ios/build/Release-iphonesimulator -I/Users/<user>/Development/20/<ProjectName>/platforms/ios/build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/DerivedSources/i386 -I/Users/<user>/Development/20/<ProjectName>/platforms/ios/build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/DerivedSources -F/Users/<user>/Development/20/<ProjectName>/platforms/ios/build/Release-iphonesimulator -F/Users/<user>/Development/20/<ProjectName>/platforms/ios/Safe -F/Users/<user>/Development/20/<ProjectName>/platforms/ios/<ProjectName>/Plugins/com.phonegap.plugins.facebookconnect -include /var/folders/pn/gg2pmp494ddc28vb35296c7r0000gn/C/com.apple.DeveloperTools/6.0-6A313/Xcode/SharedPrecompiledHeaders/<ProjectName>-Prefix-buzdrrssmquhyjccbctulbjeosdy/<ProjectName>-Prefix.pch -MMD -MT dependencies -MF /Users/<user>/Development/20/<ProjectName>/platforms/ios/build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/AdjustCordova.d --serialize-diagnostics /Users/<user>/Development/20/<ProjectName>/platforms/ios/build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/AdjustCordova.dia -c /Users/<user>/Development/20/<ProjectName>/platforms/ios/<ProjectName>/Plugins/com.adjust.sdk/AdjustCordova.m -o /Users/<user>/Development/20/<ProjectName>/platforms/ios/build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/AdjustCordova.o
In file included from /Users/<user>/Development/20/<ProjectName>/platforms/ios/<ProjectName>/Plugins/com.adjust.sdk/AdjustCordova.m:9:
/Users/<user>/Development/20/<ProjectName>/platforms/ios/<ProjectName>/Plugins/com.adjust.sdk/AdjustCordova.h:9:9: fatal error: 'Cordova/CDV.h' file not found
#import <Cordova/CDV.h>
        ^
1 error generated.

... //////////  This error happens multiple times.

/Users/<user>/Development/20/<ProjectName>/platforms/ios/<ProjectName>/Plugins/com.aquto.cordova.AppleAdvertising/AppleAdvertising.h:2:9: fatal error: 'Cordova/CDV.h' file not found
#import <Cordova/CDV.h>
        ^
1 error generated.

** BUILD FAILED **


The following build commands failed:
    CompileC build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/AdjustCordova.o <ProjectName>/Plugins/com.adjust.sdk/AdjustCordova.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/APPLocalNotification.o <ProjectName>/Plugins/de.appplant.cordova.plugin.local-notification/APPLocalNotification.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/CDVConnection.o <ProjectName>/Plugins/org.apache.cordova.network-information/CDVConnection.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/CDVAssetLibraryFilesystem.o <ProjectName>/Plugins/org.apache.cordova.file/CDVAssetLibraryFilesystem.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/AppDelegate.o <ProjectName>/Classes/AppDelegate.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/CDVLocalFilesystem.o <ProjectName>/Plugins/org.apache.cordova.file/CDVLocalFilesystem.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/CDVDevice.o <ProjectName>/Plugins/org.apache.cordova.device/CDVDevice.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
    CompileC build/<ProjectName>.build/Release-iphonesimulator/<ProjectName>.build/Objects-normal/i386/AppleAdvertising.o <ProjectName>/Plugins/com.aquto.cordova.AppleAdvertising/AppleAdvertising.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
(8 failures)

No I run the command with the workspace set up and the scheme as well.

SebastiansMBP2:ios <user>$ xcodebuild -arch i386 -sdk iphonesimulator8.0 -workspace <ProjectName>.xcodeproj/project.xcworkspace -scheme <ProjectName>
Build settings from command line:
    ARCHS = i386
    SDKROOT = iphonesimulator8.0

=== BUILD TARGET CordovaLib OF PROJECT CordovaLib WITH CONFIGURATION Debug ===

Check dependencies

2014-10-21 11:44:44.905 xcodebuild[67925:365372]  DeveloperPortal: Using pre-existing current store at URL (file:///Users/<user>/Library/Developer/Xcode/DeveloperPortal%206.0.db).
=== BUILD TARGET <ProjectName> OF PROJECT <ProjectName> WITH CONFIGURATION Debug ===

Check dependencies

....

** BUILD SUCCEEDED **

Now I run the generated build on an ios-sim:

SebastiansMBP2:ios <user>$ ios-sim launch /Users/<user>/Development/20/<ProjectName>/platforms/ios/build/Release-iphonesimulator/<ProjectName>.app
Session could not be started: Error Domain=LaunchServicesError Code=0 "Unable to run app in Simulator" UserInfo=0x7f8993721ad0 {Error=ExecutableTwiddleFailed, ErrorDescription=Failed to chmod file:///Users/<user>/Library/Developer/CoreSimulator/Devices/B745FCEF-0713-419B-B5EF-5274C912DA7E/data/Library/Caches/com.apple.containermanagerd/Temp/Bundle/Application/D615484C-04F7-496D-AB61-4A988E4357C3/<ProjectName>.app/<ProjectName> : No such file or directory, NSLocalizedFailureReason=An error was encountered while running (Domain = LaunchServicesError, Code = 0), NSUnderlyingError=0x7f8993415850 "The operation couldn’t be completed. (LaunchServicesError error 0.)", NSLocalizedDescription=Unable to run app in Simulator}

(username, project name and other privacy related parts have been replaced)

Do you have any ideas how to fix this and how to build a version that can be used to upload it to Facebook?

I'm running Xcode 6, updated the ios-sim to version 3.0.0 and updated cordova-cli to version 4.0.0 with the iOS platform version 3.6.3.

Building the application via cordova build iOS and via Xcode directly works fine!

Thanks!

Upvotes: 1

Views: 3879

Answers (2)

nacho c
nacho c

Reputation: 311

I had the same issue, and was related to the cordova-ios version. I had to upgrade it, and then it solved the issue. Cordova-ios with problem was 4.3.0

Upvotes: 0

Sebastian
Sebastian

Reputation: 1912

Just as an information for you guys, I was able to solve it by running the application from Xcode and then just zipping the content of the iOS/build/Emulator/ folder. The biggest difference between both is, that the mentioned folder contains a separate library libCordova.a and a folder include. With this two elements I was able to hand the iOS application in to Facebook (I just added them to the ZIP-File).

Hope this helps you ;)

Upvotes: 4

Related Questions