52inc / Pulley

A library to imitate the iOS 10 Maps UI.
https://cocoapods.org/pods/Pulley
MIT License
2.02k stars 265 forks source link

Xcode12: "No such module Pulley" #392

Closed triztian closed 3 years ago

triztian commented 3 years ago

After installing and opening my project with Xcode12 I started seeing that message in files that had import Pulley statements.

My project used to build with Xcode 11.7 and I realized that newly pod init'd project did not have this issue when I tried to replicate. The min iOS version for my project is 10.

I'm still seeing the issue, when try to build to run on a iOS 14 simulator target. I've tried the following:

# 1. Clear out the workspace:
rm -rf MyProject.xcworkspace 
mv Podfile Podfile.bak

# 2. Deintegrate cocoapods
pod deintegrate

# 3. Install Xcode 12 support cocoapods
gem install cocoapods -v 1.10.rc.1
mv Podfile.bak Podfile

Before running pod install I have the following pulley version in my Podfile:

pod 'Pulley', :git => 'https://github.com/52inc/Pulley.git', :branch => 'xcode12'
ulmentflam commented 3 years ago

@triztian Did you do a pod install --repo-update?

triztian commented 3 years ago

@ulmentflam no but I just tried it, it installs successfully:

$ pod install --repo-update
Updating local specs repositories
Analyzing dependencies
Downloading dependencies
Generating Pods project
Integrating client project
Pod installation complete! There are 23 dependencies from the Podfile and 43 total pods installed.

but same result when running for an iOS 14 Simulator target.

One thing to note though is that my project has the following setting:

VALID_ARCHS=$(ARCHS_STANDARD_64_BIT) # VALID_ARCHS = arm64 arm64e

Essentially any file that imports Pulley shows the following error:

Showing All Messages
CompileSwift normal arm64 MySourceFile.swift:11:8: error: no such module 'Pulley'
import Pulley
       ^

I've tried by also including x86_64 in the settings and same result.

triztian commented 3 years ago

@ulmentflam I was able to solve this issue by doing the following, instead of setting VALID_ARCHS in Xcode 12 we have a new setting: EXCLUDED_ARCHS which I set to i386 armv7 and changed my main project's Architecture setting to $(ARCHS_STANDARD) whereas before my Architecture setting was x86_64 $(ARCHS_STANDARD_64_BIT)

This is based on finding this in the Xcode 12 Release Notes:

Deprecations

  • The Build Settings editor no longer includes the Valid Architectures build setting (VALID_ARCHS), and its use is discouraged. Instead, there is a new Excluded Architectures build setting (EXCLUDED_ARCHS). If a project includes VALID_ARCHS, the setting is displayed in the User-Defined section of the Build Settings editor. (15145028)
    • The legacy build system is deprecated, and will be removed in a future release. (62742902)

I also added the following my pod file to remove a bunch of warnings:

post_install do |installer|
  installer.pods_project.targets.each do |target|
    target.build_configurations.each do |config|
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '10.0'
    end
  end
end