Ionic1 with CocoaPods does not let me build my app in Xcode9 - xcode

I work on an older App of mine which is Ionic-v1. I install the OneSignal plugin which is working now only with CocoaPods. At first all went fine, Android works flawless but I am not able anymore to build my IOS app because of CocoaPods. I can do what I want I keep getting the following error:
ld: 72 duplicate symbols for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
I lost the entire day trying to figure this out, I tried uncountable times any combination of “pod install, pod clean, pod disintegrate” etc. etc. but without any success.
I also found a post inside the ionic forum from #blakgeek and install his plugin “cordova-plugin-cocoapod-support” but keep getting the same errors. But with or without this plugin I keep getting the same error.
I would be happy if anybody can help me here because at this point I am pretty lost.
Thank you in advance
Xcode 9
Ionic 3.18 (But app is Ionic v1)cli packages: (/usr/local/lib/node_modules)
#ionic/cli-utils : 1.18.0
ionic (Ionic CLI) : 3.18.0
global packages:
cordova (Cordova CLI) : 7.1.0
Gulp CLI : CLI version 3.9.1 Local version 3.9.1
local packages:
Cordova Platforms : android 6.3.0 ios 4.5.3
Ionic Framework : ionic1 1.2.4
System:
Android SDK Tools : 26.1.1
ios-deploy : 1.9.2
ios-sim : 5.0.6
Node : v8.9.1
npm : 2.15.12
OS : macOS Sierra
Xcode : Xcode 9.0.1 Build version 9A1004
Environment Variables:
ANDROID_HOME : /Volumes/Mac External HD/Android/sdk
Misc:
backend : pro

I just ended up deleting once again my entire ios platform for the xxx time and somehow solved it with the following steps.
a. deleted my complete ios platform
b. deleted the onesignal cordova plugin
c. reinstalled the onesignal plugin
d. recreated my ios platform BUT forced version ios4.4.0 with the following command "ionic cordova platform add ios#4.4.0"
e. changed into my /platform/ios directory and made one "pod install"
f. opened xcode and build and run without any further issue.
Short explanation. I ended up with tone of duplicate symbol erros because I tried just to many things and manually added to many things. (cant recall what I did all) how ever I never paid attention in the number of duplicate symbols. I started out with just 2 which seems to be a known issue (thankx to this issue report https://github.com/ionic-team/ionic/issues/12849#issuecomment-328472880) but with my tests and trials I ended up with much more and got completely of track.
After clean install with ios#4.4.0 all worked fine for me.
thank all for your attention...

Related

Supported cordova version for xcode 7.2.1

I'm using XCode 7.2.1 to compile my ionic app. The problem is, if I'm using the latest cordova, it will display this error
GCDWebServerDataRequest.m - No visible #interface for 'NSDATA' declares the selector 'appendData:'
I googled and found the error is because I'm not using the latest XCode. However, I can't install the latest XCode because of insufficient storage space in my MacBook (can't upgrade my OSX). Furthermore, I believe I don't need to have the latest XCode, since I won't be distributing the compiled app in App Store later; I will only distribute it in my company's internal App Store.
So where can I get the info on which cordova is supported for XCode 7.2.1? Later I believe I can just install the supported cordova version by running sudo npm install -g cordova#[version] right?
Thanks

I cant get my ionic app to open in iOS emulator

My new ionic app won't run in the iOS emulator.
Its a fresh install of ionic and Xcode, these are my steps:
npm install -g ionic
ionic start myApp tabs
ionic cordova platform add ios
ionic cordova build ios
ionic cordova emulate ios
Then I get the following error:
No target specified for emulator. Deploying to undefined simulator
/localhost/myApp/platforms/ios/build/emulator/MyApp.app/Info.plist
file not found.
According to this thread (Fresh Ionic Fails to Emulate iOS 12 - Info.plist file not found) it should work with the following command:
ionic cordova emulate ios -- --buildFlag="-UseModernBuildSystem=0"
But then I get the following error:
No target specified for emulator. Deploying to undefined simulator
Device type "com.apple.CoreSimulator.SimDeviceType.undefined" could not be found.
And then according to this thread (Issues starting iOS simulator from CLI) it should work by updating ios-sim like this:
cd platforms/ios/cordova && npm install ios-sim#latest
But I still get the following error:
No target specified for emulator. Deploying to undefined simulator
Device type "com.apple.CoreSimulator.SimDeviceType.undefined" could not be found.
Ionic:
ionic (Ionic CLI) : 4.10.2 (/usr/local/lib/node_modules/ionic)
Ionic Framework : #ionic/angular 4.0.1
#angular-devkit/build-angular : 0.12.4
#angular-devkit/schematics : 7.2.4
#angular/cli : 7.2.4
#ionic/angular-toolkit : 1.4.0
Cordova:
cordova (Cordova CLI) : 8.1.2 (cordova-lib#8.1.1)
Cordova Platforms : ios 4.5.0
Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 3.1.2, (and 4 other plugins)
System:
ios-deploy : 1.9.4
ios-sim : 7.0.0
NodeJS : v10.15.1 (/usr/local/bin/node)
npm : 6.4.1
OS : macOS Mojave
Xcode : Xcode 10.1 Build version 10B61
The problem lie with ios-sim package which couldn't detect running simulators.
Updating to 8.0.1 with the following steps resolved the issue for me.
force update ios-sim to a working version
IMPORTANT needs to be done from inside the platforms/ios/cordova directory.
cd platforms/ios/cordova && npm install ios-sim#8.0.1
check if devices are now listed, takes a few seconds
ionic cordova emulate --list
installs appscript if not installed already
ionic cordova build ios
try to deploy to simulator
ionic cordova emulate --release --prod --livereload ios -- --buildFlag="-UseModernBuildSystem=0"
This will find any running simulator and deploy the app
Try just building the project and then running it from Xcode instead first.
ionic cordova build ios -- --buildFlag="-UseModernBuildSystem=0"
Then open the platforms/ios folder in Xcode and you'll be able to run it from there plus see any errors there may be with the project. When you eventually decide to push the app to the store you'll need to do this anyway.
EDIT
Then try targeting a specific emulator:
ionic cordova emulate ios --list get list of available targets to copy into the next command.
ionic cordova emulate --livereload ios -- --buildFlag="-UseModernBuildSystem=0" --target="iPhone-X, 12.1" example targeting iPhone XR.
The issue is related to a breaking changes on Xcode 10 not already reflected on ios-sim. You can check on ion-sim repo issue "List empty of devices simulator with Xcode 10".
The issue have already been fixed but is waiting for a new release submission.
You can continue running your App on emulator directly from Xcode.

Ionic App Built on Mac won’t build on Windows

We developed the app on a Mac, initially. Moved the code over to a Windows 10 machine to compile to run on Windows. However, in the build process I'm getting this error at the end:
Command finished with error code 0: C:\windows\system32\reg.exe query,HKLM\SOFTWARE\Microsoft\MSBuild\ToolsVersions\4.0,/v,MSBuildToolsPath
Found MSBuild v4.0 at C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
Using MSBuild v4.0 from C:\Windows\Microsoft.NET\Framework64\v4.0.30319\
MSBuild v4.0 is not supported, aborting.
Error: AppPackages doesn't exists
Here's Ionic Info
global packages:
#ionic/cli-utils : 1.3.0
Cordova CLI : 7.0.1
Ionic CLI : 3.3.0
local packages:
#ionic/app-scripts : 1.3.7
#ionic/cli-plugin-cordova : 1.3.0
#ionic/cli-plugin-ionic-angular : 1.3.0
Cordova Platforms : windows 5.0.0
Ionic Framework : ionic-angular 3.3.0
System:
Node : v6.10.3
OS : Windows 10
Xcode : not installed
ios-deploy : not installed
ios-sim : not installed
We're using Visual Studio Community 2017. I've tried installing everything under the sun for VS and I can't seem to get past this. I've read tons of pages and sites, tried everything I can find and no go.
Not sure what to do next. I've thought about starting a new app on the Windows machine and just copy my code into and see if that works. It seems like a lot of wasted time to me though.
My advice on this is just a simple one. Install and run your project with Visual Studio Code. It was built and well suited for free and open frameworks like Ionic. This is what I work with everyday. When you do that give me a comment below if you have any problem.

React-native AwesomeProject buid failure

I am learning react-native from a Udemy course. I have followed the exact steps used by both my instructor as well as the RN documentation. However, I get 105 errors when I open in XCode (v6.4 on OSX 10.10.1). I tried targeting different builds, but to no avail. A few of the errors I get include
Expected '>'
Expected '}'
All the errors here seem to originate in the external files such as
RCTVibration.m
RCTAssert.h
And so on.
The build tools I used are the ones recommended by fb.
brew install node
npm install -g react-native-cli
react-native init AwesomeProject
cd AwesomeProject
react-native run-ios (Even tried opening it using Xcode in the finder)
On a side note, using Node v4.4.5, react-native cli 1.0.0, Homebrew 0.9.9.
Right up till I build the project, I encounter nothing unusual (Creating the project did take quite long and threw a few warnings at me.) Are there any dependencies I have failed to install? Help is appreciated!
EDIT: I either hadn't observed this before, or this appeared now. Here's the image.
From the React Native Getting Started prerequisites:
Xcode 7.0 or higher. Open the App Store or go to https://developer.apple.com/xcode/downloads/. This will also install git as well.
So you should update your XCode.

Phonegap/Cordova Build error - Apple Mach-O Linker Error: no such file or directory: libCordova.a

I am getting an error after creating a new Cordova 2.1.0 project and updating the www folder with some code from a previous PhoneGap application.
clang: error: no such file or directory: '/Users/peterbanjo/Library/Developer/Xcode/DerivedData/OpuzMobile-bhwawiqfaptmxvfosawfabudgbkj/Build/Products/Debug-iphoneos/libCordova.a'
The error only occurs when I try and run the application on a device - in the simulator it works fine.
I am running Xcode 4.5 and iOS6 on the target iPad. I have tried a clean build and libCordova.a appears in the Build Phases > Link Library With Libraries tab but it is in red.
What I found confusing with PhoneGap/Cordova 2.1.0 by upgrading from 1.4 is that there are TWO projects in my application. There is MyApplication.xcodeproj and CordovaLib.xcodeproj. The changes to resolve this issue need to be applied to the CordovaLib project.
Change "Build Active Architecture Only" to "YES"
Update the text file project.pbxproj to these values
Toggle between the build schema for the simulator and the device (Use the select menu next to the stop button. Somehow this seems to cause the changes to be detected).
Did this work for you? Did I miss something?
PS: For a better understanding of the problem take a look at this Google Forum thread
I'm using Cordova/Phonegap 2.9 and this solved my issue. Didn't touch any of the arch stuff. Everything is set to armv7 armv7s on mine.
Follow these steps to fix this problem:
Go to project settings and Build Tab.
Search for "Other Linker Flags"
Double click on the linker flags for Release and Change ${TARGET_BUILD_DIR}/libCordova.a to ${BUILT_PRODUCTS_DIR}/libCordova.a
Do the same for Debug Clean and build archive again
I had the same error and fixed it by reverting to an older version of cordova ios.
Steps to fix the issue:
Uninstall cordova-ios first, with npm uninstall cordova-ios
Install old version of cordova-ios with npm install cordova-ios#4.4.0
Remove existing ios platform with ionic cordova platform rm ios or ionic platform rm ios
After that we should add platform with ionic cordova platform add ios#4.4.0 or ionic platform add ios#4.4.0
Run ionic cordova build ios.
Instructions came from here.
Only need to remove armv6 from both YourProject and CordovaLib:
The consequences of doing this? Apparently, it's still working on iPhone 3GS, but not the previous versions..
To make it work I downloaded from http://connect.apple.com stand alone Xcode 4.4.1. With this version I can build my phonegap Application with armv6 :)
Yes, in this case you need to have two Xcode on your computer.
Look at this https://groups.google.com/forum/?fromgroups=#!topic/phonegap/ywoc9wNydZ8
works for me
--
OS X 10.8.2
XCode 4.5
iOS 6.0
PhoneGap 2.1.0
DO NOT assume that having Standard (armv7,armv7s) - $(ARCHS_STANDARD_32_BIT)
is the same as the fix above.
Manually change this value to only armv7 and that fixed it for me.
I was very frustrated.
If you did everything here and it is still not working and you have separate configuration aside from Release and Debug - for this example is Production. Make sure that 'Production' Build Configuration exists in Cordova project. Build the Cordova Project and Build + Archive your main project again.

Resources