ngageoint/simple-features-wkb-ios

Multiple commands produce WKB.bundle/Info.plist

Tybion opened this issue · 5 comments

Xcode Version 10.1 (10B61) - latest version at the time of writing
pod 'wkb-ios', '~> 1.0.9'
pod --version
1.5.3

After upgrading Xcode, and doing a project CLEAN, when I do project BUILD, I get the following error ..

👎 Multiple commands produce '/Users/david/Library/Developer/Xcode/DerivedData/ausgeologymaps-bvkrphsddkpdhkbrppxkldyboiis/Build/Products/Debug-iphonesimulator/wkb-ios/WKB.bundle/Info.plist':

  1. Target 'wkb-ios-WKB' (project 'Pods') has copy command from '/Users/david/XcodeProjects/ausgeologymaps/Pods/wkb-ios/wkb-ios/Info.plist' to '/Users/david/Library/Developer/Xcode/DerivedData/ausgeologymaps-bvkrphsddkpdhkbrppxkldyboiis/Build/Products/Debug-iphonesimulator/wkb-ios/WKB.bundle/Info.plist'
  2. Target 'wkb-ios-WKB' (project 'Pods') has process command with output '/Users/david/Library/Developer/Xcode/DerivedData/ausgeologymaps-bvkrphsddkpdhkbrppxkldyboiis/Build/Products/Debug-iphonesimulator/wkb-ios/WKB.bundle/Info.plist'

I have tried uninstalling and reinstalling the pod, but this makes no difference.

You'll either need to upgrade to version 2.0.1 which contains a Xcode 10 fix or change your project to use the Legacy Build System: Xcode->File->Project Settings-> Build System -> Legacy Build System

Note that jumping to above version 2.0.0 (simple features refactor) will require a little refactoring on project and class names.

Thanks, Brian.
I prefer moving forward, so have installed sf-ios. Yes, I can see that I will need to change WKB to SF, etc.
Can you please tell me what is the relationship between sf-ios and wkb-ios?
Does sf-ios supersede wkb-ios? (and is a drop-in replacement?)

After adding ${POD_ROOT}/sf-ios/sf-ios (recursive) to Build Settings -> Search Paths -> Header Search Paths, the project is now successfully finding all the .h header files.

After refactoring my code for the 'SF' prefixes, all is good EXCEPT for 2 unresolved identifiers ..

/Users/david/XcodeProjects/ausgeologymaps/ausgeologymaps/SQLiteGIS.swift:1027:13: Use of unresolved identifier 'SFWGeometryWriter'; did you mean 'SFGeometryPrinter'?

/Users/david/XcodeProjects/ausgeologymaps/ausgeologymaps/SQLiteGIS.swift:1039:20: Use of unresolved identifier 'SFWGeometryReader'; did you mean 'SFGeometryPrinter'?

I get this result regardless of whether I have the following line in the swift file ..
import sf_ios

Can you please assist.

The geometries and utilities were moved to a core sf-ios library and the Well-Known Binary specific code refactored here into sf-wkb-ios. You should be able to depend on sf-wkb-ios directly which will automatically pull in the sf-ios pod. The class prefix for core code is SF and SFW for WKB code. There is also a sf-proj-ios library which depends on the core and provides the ability to do projections. Then there is the ability for future additional libraries, such as GeoJSON, WKT, etc.

Your error should go away once you swap your dependency from sf-ios to sf-wkb-ios.
SFWGeometryWriter
SFWGeometryReader

Thanks, Brian. All good now.

For the record ..

Podfile ..
pod 'sf-wkb-ios', '~> 2.0.1'

In Build Settings -> Search Paths -> Header Search Paths add ..
${PODS_ROOT}/sf-ios/sf-ios (recursive)
${PODS_ROOT}/sf-wkb-ios/sf-wkb-ios (non-recursive)
.. so that all .h header files are found.

Just one import in my Bridging Header ..
#import "sf-wkb-ios-Bridging-Header.h"
.. this imports all the other .h header files.