Problème d'installation GeoSwift

Bonjour,

Je me permets de venir vers vous car je n’arrive pas du tout à installer GeoSwift.

J’ai suivi le cours et aussi regarder sur GitHub mais rien n’y fait.

J’obtiens le message suivant :

[in /Users/jean-francoiscoquerelle/Downloads/4 - Développement iOS/Poubelles]
Analyzing dependencies
Pre-downloading: GEOSwift from https://github.com/mojtabacazi/GEOSwift.git, branch develop
Downloading dependencies
Installing GEOSwift (2.1.3)
Installing geos (3.6.2)
[!] /bin/bash -c
set -e
type -P autoconf &>/dev/null || alias autoconf ‘xcrun autoconf’
type -P autoheader &>/dev/null || alias autoheader ‘xcrun autoheader’
type -P aclocal &>/dev/null || alias aclocal ‘xcrun aclocal’
type -P automake &>/dev/null || alias automake ‘xcrun automake’
type -P glibtool &>/dev/null || alias glibtool ‘xcrun glibtool’
type -P glibtoolize &>/dev/null || alias glibtoolize ‘xcrun glibtoolize’
sh autogen.sh
./configure
./tools/repo_revision.sh
sed -i “” “s//* #undef HAVE_INT64_T_64 *//#define HAVE_INT64_T_64 1/” include/geos/platform.h
sed -i “” “s/#define HAVE_LONG_INT_64 1//* #undef HAVE_LONG_INT_64 *//” include/geos/platform.h
cat <> include/geos/platform.h
#undef ISNAN
#define ISNAN(x) (std::isnan(x))
EOT
patch capi/geos_c.h <<EOF
149c149
< #include <geos/export.h>—
#define GEOS_DLL
EOF
/bin/bash: line 2: alias: autoconf: not found
/bin/bash: line 2: alias: xcrun autoconf: not found
[!] Automatically assigning platform ios with version 11.4 on target Poubelles because no platform was specified. Please specify a platform for this target in your Podfile. See https://guides.cocoapods.org/syntax/podfile.html#platform.

Merci pour votre aide.

Personnes ne sais m’aiguiller vers une solution car je n’arrive vraiment pas à installer GeoSwift

Salut @JefNewTech,

c’est difficile pour nous de résoudre ton problème car il est probablement lié à ta configuration d’ordinateur, voici quelques pistes :

  • as-tu installé autoconf comme recommandé dans cette vidéo ? https://www.purplegiraffe.fr/courses/231279/lectures/4738588
  • si tu as plusieurs versions de XCode installées (normale + beta par exemple), ouvre celle que tu veux utiliser, va dans les préférences > locations > command line tools et vérifie que la bonne est sélectionnée
  • Evite les espaces dans les noms de dossiers/fichiers car certains scripts mal codés pourraient avoir des soucis pour trouver tes fichiers (je ne pense pas que ça soit le problème ici, mais c’est une bonne habitude à prendre)
  • voici une personne qui semble avoir eu le même problème que toi : https://github.com/andreacremaschi/SpatialDBKit/issues/9

Salut les Girafien !! :wink::grin:

Bonne rentrée et bonne reprise à tous.
J’ai posté ceci sur github (https://github.com/GEOSwift/GEOSwift/issues/78#issuecomment-418801920) et j’attend une réponse car je n’arrive pas à installer correctement GEOSwift.
Le soucis vient du fait de la version trop récente de geos (3.5.0), CF en bas.

Hi Everybody, I have some troubles with this package :

I’m running macOS High Sierra 10.13.3, XCode 9.4.1 (9F2000), and cocoapods 1.5.2.

Here the result of my terminal window :

18macbookrj:BuBus alban$ brew install automake autoconf libtool libxml2 pkg-config
Warning: automake 1.16.1_1 is already installed and up-to-date
To reinstall 1.16.1_1, run brew reinstall automake
Warning: autoconf 2.69 is already installed and up-to-date
To reinstall 2.69, run brew reinstall autoconf
Warning: libtool 2.4.6_1 is already installed and up-to-date
To reinstall 2.4.6_1, run brew reinstall libtool
Warning: libxml2 2.9.7 is already installed and up-to-date
To reinstall 2.9.7, run brew reinstall libxml2
Warning: pkg-config 0.29.2 is already installed and up-to-date
To reinstall 0.29.2, run brew reinstall pkg-config
18macbookrj:BuBus alban$ brew link libxml2
Warning: libxml2 is keg-only and must be linked with --force

If you need to have this software first in your PATH instead consider running:
echo ‘export PATH="/usr/local/opt/libxml2/bin:$PATH"’ >> ~/.bash_profile
18macbookrj:BuBus alban$ brew link --force libxml2
Linking /usr/local/Cellar/libxml2/2.9.7… 21 symlinks created

If you need to have this software first in your PATH instead consider running:
echo ‘export PATH="/usr/local/opt/libxml2/bin:$PATH"’ >> ~/.bash_profile
18macbookrj:BuBus alban$ pod install
Analyzing dependencies
Pre-downloading: GEOSwift from https://github.com/GEOSwift/GEOSwift.git, branch develop
**[!] CocoaPods could not find compatible versions for pod “geos”:
In Podfile:
GEOSwift (from https://github.com/GEOSwift/GEOSwift.git, branch develop) was resolved to 2.2.0, which depends on
geos (= 3.5.0)

None of your spec sources contain a spec satisfying the dependency: geos (= 3.5.0).

You have either:

  • out-of-date source repos which you can update with pod repo update or with pod install --repo-update.
  • mistyped the name or version.
  • not added the source repo that hosts the Podspec to your Podfile.

Note: as of CocoaPods 1.0, pod repo update does not happen on pod install by default.**

Could you please help me ?
How canI install GEOSwift ?

J’ai fait les deux update comme suggéré mais cela me donne le même message d’erreur.

Finalement j’ai édité le fichier Workspace pour remplacer pod 'GEOSwift', :git => 'https://github.com/GEOSwift/GEOSwift.git', :branch => 'develop' par
pod 'GEOSwift' et ça fonctionne en faisant install pod depuis Terminal :

project 'BuBus.xcodeproj'

# Uncomment the next line to define a global platform for your project
platform :ios, '9.0'

source 'https://github.com/CocoaPods/Specs.git'
#source 'https://github.com/mojtabacazi/Specs.git'

target 'BuBus' do
  # Comment the next line if you're not using Swift and don't want to use dynamic frameworks
  use_frameworks!

  # Pods for BuBus
#  pod 'GEOSwift', :git => 'https://github.com/GEOSwift/GEOSwift.git', :branch => 'develop'
  pod 'GEOSwift'

  target 'BuBusTests' do
    inherit! :search_paths
    # Pods for testing
  end

  target 'BuBusUITests' do
    inherit! :search_paths
    # Pods for testing
  end

end
1 « J'aime »

Cool, c’est une bonne solution en attendant qu’ils publient leur correction sur cocoapods.
Par contre, attention en faisant référence direct à la branche de développement du repo git, à tout moment tu peux passer sur une version instable de GeoSWIFT.

Salut Maxime,

Merci pour l’info, j’ai modifié le fichier. Le voici maintenant corrigé avec toutes les erreurs enlevées (grace à inhibit_warning => true.

project 'BuBus.xcodeproj'

platform :ios, '9.0'

source 'https://github.com/mojtabacazi/Specs.git'

target 'BuBus' do
  use_frameworks!

  pod 'GEOSwift', :git => 'https://github.com/mojtabacazi/GEOSwift.git', :branch => 'develop', :inhibit_warnings => true
  pod 'geos', :inhibit_warnings => true

  target 'BuBusTests' do
    inherit! :search_paths
  end

  target 'BuBusUITests' do
    inherit! :search_paths
  end

end

Salut, je déterre un peu le sujet car je rencontre toujours le même problème que cité précédemment.

Je suis actuellement le cours sur MapKit avec l’appli BusBus.

Je suis sur Xcode 10.1 et High Sierra (malheureusement mon ordi est bloqué à High Sierra, il est trop vieux).
Le message d’erreur obtenu est le même, à savoir :

> Installing GEOSwift 2.1.3 (was 3.0.3)
> Installing geos 3.6.2 (was 3.7.1 and source changed to `https://github.com/mojtabacazi/Specs.git` from `https://github.com/cocoapods/specs.git`)
> [!] /bin/bash -c 
> set -e
> type -P autoconf &>/dev/null || alias autoconf 'xcrun autoconf'
> type -P autoheader &>/dev/null || alias autoheader 'xcrun autoheader'
> type -P aclocal &>/dev/null || alias aclocal 'xcrun aclocal'
> type -P automake &>/dev/null || alias automake 'xcrun automake'
> type -P glibtool &>/dev/null || alias glibtool 'xcrun glibtool'
> type -P glibtoolize &>/dev/null || alias glibtoolize 'xcrun glibtoolize'
> 
> sh autogen.sh
> ./configure
> ./tools/repo_revision.sh
> 
> sed -i "" "s/\/\* #undef HAVE_INT64_T_64 \*\//#define HAVE_INT64_T_64 1/" include/geos/platform.h
> sed -i "" "s/#define HAVE_LONG_INT_64 1/\/\* #undef HAVE_LONG_INT_64 \*\//" include/geos/platform.h
> 
> cat <<EOT >> include/geos/platform.h
>   #undef ISNAN
>   #define ISNAN(x) (std::isnan(x))
> EOT
> 
> patch capi/geos_c.h <<EOF
>   149c149
>   < #include <geos/export.h>
>   ---
>   > #define GEOS_DLL
> EOF
> 
> /bin/bash: line 2: alias: autoconf: not found
> /bin/bash: line 2: alias: xcrun autoconf: not found

J’ai pourtant bien installé avec homebrew autoconf, automake et libtool avec homebrew et la commande

> $ brew install autoconf automake libtool

J’ai également essayé la méthode de Maxime expliquée dans la vidéo, mais cela ne change rien.

En fait, j’ai remarqué que lors de l’installation de autoconf, libtool et automake, j’ai eu un message dans le terminal du style “pour ne pas interférer avec les versions d’apple de autoconf automake etc, les fichiers ont été renommés gautoconf, gautomake et glibtool”.

Je me demande si le fait qu’il ne retrouve pas autoconf ne viendrait pas de la… :confused:
Du coup je ne sais pas trop comment y remédier si cette hipothèse paraît crédible.

Quelqu’un en saurait il plus?

J’en suis vraiment à me demander si je ne vais pas chercher une alternative à GEOSwift…

Merci!

Guillaume

Chez moi GEOSwift fonctionne. à tu essaye de désinstaller autoconf automake et libtool ?

brew uninstall autoconf automake libtool

puis, de les réinstaller.

Oui j’essayé! J’ai même tenté de rechanger les noms de fichier en enlevant le « g » rajouté mais ca ne change rien.
En fait, lorsque j’applique la méthode normale avec cocoapods, sans l’astuce de la vodéo, l’installation du pod GEOSwift fonctione, je n’ai pas d’erreur.
C’est seulement lorsque je rouvre le workspace que j’ai des erreurs à la compilation.

Salut à tous.

Je reviens vers vous car je suis en train de développer une app et j’ai vraiment besoin de parser du GEOJson (ma source). J’ai donc décider de réutiliser GEOSwift.
Install sans soucis. Je créé mon Podfile, et j’installe depuis la ligne de commande.
Tout se passe bien.

J’ouvre mon nouveau fichier xcodeproj l’intégration de base se passe bien.
Sauf qu’à la fin, j’ai plusieurs erreurs dans geos : ‘geos/platform.h’ file not found

Est-ce que vous avez eu le même soucis ?

@mbritto, aurais-tu une nouvelle librairie à utiliser ?

J’ai également eu ce souci, que je n’ai pu résoudre… quelle est ta version de MacOS?

Mac OS Sierra V10.13.6

OK, High Sierra tu veux dire (si c’est bien 10.13.6 que tu as). La même version que moi. C’est là dont semble venir le problème… ça ne semble toujours pas régle du coté de GEOSwift.

J’avais demandé à @mbritto lors du dernier coaching de groupe, il semblait ne pas avoir de meilleure solution de GEOSwift (ce n’est pas quelque chose qu’il utilise spécialement dans ses apps).
Il faut peut être se pencher sur la solution « officielle » Apple, si elle existe?

oui désolé High Sierra.
Ca me fait vraiment c… cette histoire.
Je suis en train de tout passer en Json. C’est galère car il y a bcp d’infos dans un GEOJson dont je n’ai pas besoin.

Effectivement je n’ai utilisé GeoSwift que pour le cours, je ne m’en sers dans aucun autre projet.
Peut être que tu peux ouvrir un ticket sur leur GitHub pour dire qu’il y a un problème d’installation. Le projet semble encore actif donc peut être qu’ils trouveront d’où vient le problème.

Bonjour @mbritto qu’utilises-tu dans tes projets actuellement ?

Merci.

Je n’ai pas de projets en cours qui utilise la géolocalisation en JSON.
Mon projet en cours c’est de créer une app officielle pour Purple Giraffe :grin:

1 « J'aime »

Cette app aura comme features :

  • un chat
  • une bibliothèque photo
    Et pour les autres features il faut attendre les prochains défis du mois.

Ok on t’a grillé maxime :rofl: en faite tu sous-traite le Dev a tes étudiants !

3 « J'aime »

Bonsoir Maxime. Actuellement il est impossible d’utiliser le cours MapKit, lorsque j’installe GeoJson et que je parviens à ouvrir le projet sur Xcode c’est un sapin de Noel, énormement de choses sont dépréciées. J’ai lâché l’affaire le temps de faire de la POO. Je ferais un tour sur la doc officielle qui à l’air… moins bien que tes cours.

Avez-vous déjà fait un défit du mois autour de Mapkit sur SwiftUI ?