Realm - Building Modern Swift Apps : Script Error

Cool! Let me send another option I’m working on, and if that works well we can incorporate that throughout v1.1 of the book, or ASAP cc/ @icanzilb

The workaround works. Thank you :+1:

If the fix is to hard clean derived data folder and then run bootstrap again, then it doesn’t work for me. I’m using Xcode 9.3. Still says “error: Couldn’t lookup symbols: __T010RealmSwift6ObjectC17ignoredPropertiesSaySSGyFZ
…”

Hey there !
The workaround for now is to use CocoaPods 1.4 instead of 1.5.

There is a regression in the latest version of CocoaPods and I filed an issue at their repo regarding that.

Regardless, we’ll be releasing fixed playgrounds that won’t depend on CocoaPods at all and would hopefully be much more stable, should be relatively soon.

Shai

Not sure why, but even suggested ‘pod _1.4.0_ setup’ didn’t help. So I uninstalled 1.5.0, and then everything works as a charm. Thank you @freak4pc!

Glad to hear that solved it for you! We hope to have a more permanent solution soon :slight_smile:

Partial success!! I downgraded Cocoapods to 1.4.0 and got the Playground working on my MacBook. It is a bit unstable and shuts down occasionally or goes into la-la land BUT it works so thanks for the workaround. Now I can work along through the Book.

I found another problem, possibly related, on my iMac which I also downgraded to Cocoapods 1.4.0. Here the bootstrap code reports “Xcode is not installed” which is odd since I am working on other projects in Xcode without any problem. Also I cannot use SimPolders on the iMac as it can’t find any simulators. I am still researching this problem but any ideas would be gratefully received.

Richard

If both our script and SimPholders fail, I suspect something is broken with your Xcode setup.

Could you try running
xcode-select -p
and examine the output?

Also try
sudo xcode-select -s /Applications/Xcode.app
To set the correct path to the used Xcode installation.

Shai.

The output from Xcode-select -p was /Applications/Xcode.app/Contents/Developer

Your other suggestion has enabled SimPholders to work so that’s a Win.

Thanks for your patience, I am getting there now and enjoying learning about Realm. As you can guess I am not particularly skilled at Swift and all but I do enjoy the challenge of learning new skills.

Richard

Downgrading to CocoaPods 1.4 works for me too. Thanks @freak4pc

1 Like

Super @scottschmidt … this approach seams to be the best one till the problem is solved (in v1.1?)

Another update on this:
We’ll be releasing relatively soon an updated Playgrounds edition that doesn’t rely on CocoaPods at all. For the time being, with the existing version there are two workarounds :

  1. Use CocoaPods 1.4 instead of 1.5
  2. If you must use 1.5, you can add the following at the end of your Podfile:
# Workaround for Cocoapods issue #7689
post_install do |installer|
    installer.pods_project.build_configurations.each do |config|
        config.build_settings.delete('CODE_SIGNING_ALLOWED')
        config.build_settings.delete('CODE_SIGNING_REQUIRED')
    end
end
1 Like

@freak4pc I’m using CocoaPods 1.5 and don’t want to downgrade to 1.4 on my work machine. Adding the code shown to my Podfile did not work. I added the directive shown to the existing post_install block and ran pod update. Is there anything else I need to do?

It does seem to work on my end. Could you make sure you’re doing a hard clean e.g. Cmd+Alt+Shift+K

Also try clearing your derived data, from the command line:

rm -rf ~/Library/Developer/Xcode/DerivedData/RealmPlayground-*

Good call. The hard clean and clearing derived data did the trick.
Thanks @freak4pc

1 Like

the whole pod looks like this:

platform :ios, ‘11.0’

target ‘RealmPlayground’ do
use_frameworks!
pod ‘RealmSwift’, ‘3.3.0’
end

post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings[‘CONFIGURATION_BUILD_DIR’] = ‘$PODS_CONFIGURATION_BUILD_DIR’
end
installer.pods_project.build_configurations.each do |config|
config.build_settings.delete(‘CODE_SIGNING_ALLOWED’)
config.build_settings.delete(‘CODE_SIGNING_REQUIRED’)
end
end
end

You may also download v1.1 of the book that resolves all playground issues.

1 Like

Unfortunately not. :confused:
macOS Sierra, Xcode 9.2

Hey @appliedpda - The book states we only officially support Xcode 9.3 / iOS 11 and up. Could you please try updating your Xcode ?

Thanks
Shai

Xcode 9.3 requires High Sierra. So now I need to update an entire OS? I like how my machine is setup and works just fine. I’ll be investigating the cocoapods path to try and get this playground to work then.