Skip to content

FR: Adding tvOS Support #10

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
ay8s opened this issue May 17, 2017 · 45 comments
Closed

FR: Adding tvOS Support #10

ay8s opened this issue May 17, 2017 · 45 comments

Comments

@ay8s
Copy link

ay8s commented May 17, 2017

I'm making use of a old version of the Firebase SDK which tweaked the v2 SDK to allow it to be used in tvOS applications.

This is working well right now but missing out on some additional features that have been added since, also worried using such an old SDK may stop working in the production app in the future.

I'm aware there would be significant changes needed due to the limitations on persistent storage and happy to have data load on launch as it is doing in the current solution. Would love to kick off a discussion around this.

@paulb777 paulb777 changed the title Adding tvOS Support FR: Adding tvOS Support May 17, 2017
@mariohahn
Copy link

mariohahn commented May 18, 2017

Hi,

i am working on it.

1.) support GoogleToolBoxForMac for tvOS, which should work on my fork:
https://github.com/mariohahn/google-toolbox-for-mac

Pull request for it:
google/google-toolbox-for-mac#139

so I am now able to Run Firebase/Core.

Next I wanted to run Firebase/Database. Here you have leveldb-library as dependency. But I wasn't really able to find a podspec in your Repo, I found it on https://github.com/CocoaPods/Specs/blob/master/Specs/a/d/a/leveldb-library/1.18.3/leveldb-library.podspec.json but you don't even use your own version it's a fork from https://github.com/matehat/leveldb.git.

So I also forked that Repo and wrote my own Podspec:

Pod::Spec.new do |s|
  s.name             = 'leveldb-library'
  s.version          = '1.18.3'
  s.author           = 'The LevelDB Authors'
  s.license          = 'New BSD'
  s.homepage         = 'https://github.com/google/leveldb'
  s.source           = { :git => 'https://github.com/mariohahn/leveldb.git',
                         :tag => "v1.18.1" }
  s.summary          = 'A fast key-value storage library'
  s.description      = <<-DESC
      LevelDB is a fast key-value storage library written at Google that provides an ordered mapping from string keys to string values.
                       DESC

  s.osx.deployment_target = '10.7'
  s.ios.deployment_target = '5.0'
  s.tvos.deployment_target = '9.0'

  s.requires_arc = false

  s.header_dir = "leveldb"
  s.source_files =
      'db/*.{cc}',
      'port/*.{cc}',
      'table/*.{cc}',
      'port/*.{cc}',
      'util/*.{cc}',
      'include/leveldb/*.h'

  s.compiler_flags =
      '-DOS_MACOSX',
      '-DLEVELDB_PLATFORM_POSIX'

  s.preserve_paths =
      'db',
      'port',
      'table',
      'util'
  s.exclude_files =
          '**/*_test.cc',
          '**/*_bench.cc',
          'port/win'

  s.xcconfig = {
                 'CC' => '"clang"',
                 'CXX' => '"clang++"',
                 'HEADER_SEARCH_PATHS' => '"\"${PODS_ROOT}/leveldb-library/\" \"${PODS_ROOT}/leveldb-library/include\""',
                 'WARNING_CFLAGS' => '"-Wno-shorten-64-to-32"',
                 'OTHER_LDFLAGS' => '"-lc++"'
               }

end

But I am not able to run it successfully :(

Why are you using a fork of your own Product?
Is it even possible to build leveldb-library for tvOS?

@paulb777
Copy link
Member

Hi Mario,

Thanks for diving in!

As you've noticed, the leveldb-library dependency is somewhat stale and we plan to get it updated. However, we don't expect the stale dependency to cause any issues for Firebase/Database.

What is the build issue you're seeing?

@mariohahn
Copy link

Maybe my podspec isn't correct.

/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/util/coding.cc:5:10: fatal error: 'util/coding.h' file not found
#include "util/coding.h"
^
1 error generated.

** BUILD FAILED **

The following build commands failed:
CompileC /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/coding.o leveldb-library/util/coding.cc normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
-> leveldb-library (1.18.3)
- WARN | source: The version should be included in the Git tag.
- ERROR | xcodebuild: Returned an unsuccessful exit code.
- NOTE | xcodebuild: leveldb-library/db/builder.cc:5:10: fatal error: 'db/builder.h' file not found
- NOTE | xcodebuild: leveldb-library/table/block_builder.cc:29:10: fatal error: 'table/block_builder.h' file not found
- NOTE | xcodebuild: leveldb-library/util/arena.cc:5:10: fatal error: 'util/arena.h' file not found
- NOTE | xcodebuild: leveldb-library/table/block.cc:7:10: fatal error: 'table/block.h' file not found
- NOTE | xcodebuild: leveldb-library/util/coding.cc:5:10: fatal error: 'util/coding.h' file not found

Analyzed 1 podspec.

@paulb777
Copy link
Member

It looks like you're running into CocoaPods/CocoaPods#5152 - CocoaPods 1.x currently does not support libraries with C++ headers. The workaround is use the new option --skip-import-validation.

@mariohahn
Copy link

But I am sure that I am doing something wrong because --skip-import-validation is a new com but https://github.com/matehat/leveldb.git created the podspec months ago when the com wasn't even available. But he hasn't committed his podspec 😞

@paulb777
Copy link
Member

The original podspec was probably validated with CocoaPods 0.x

@mariohahn
Copy link

mariohahn commented May 18, 2017

even with --skip-import-validation it's not working.

CompileC /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/coding.o leveldb-library/util/coding.cc normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods
    export LANG=en_US.US-ASCII
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/mariohahn/.fastlane/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++11 -stdlib=libc++ -fmodules -fmodules-cache-path=/Users/mariohahn/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/mariohahn/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Wdocumentation -Wunreachable-code -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DPOD_CONFIGURATION_RELEASE=1 -DCOCOAPODS=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator10.2.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mtvos-simulator-version-min=9.0 -g -Wno-sign-conversion -Winfinite-recursion -Wmove -iquote /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-generated-files.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-own-target-headers.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-all-target-headers.hmap -iquote /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-project-headers.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Products/Release-appletvsimulator/leveldb-library/include -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Private -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Private/leveldb-library -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Public -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Public/leveldb-library -I\"/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/\" -I\"/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/include\" -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/DerivedSources/x86_64 -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/DerivedSources -Wno-shorten-64-to-32 -F/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Products/Release-appletvsimulator/leveldb-library -Wincomplete-umbrella -DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc -include /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Target\ Support\ Files/leveldb-library/leveldb-library-prefix.pch -MMD -MT dependencies -MF /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/coding.d --serialize-diagnostics /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/coding.dia -c /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/util/coding.cc -o /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/coding.o
/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/util/coding.cc:5:10: fatal error: 'util/coding.h' file not found
#include "util/coding.h"
         ^
1 error generated.

CompileC /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/block_builder.o leveldb-library/table/block_builder.cc normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods
    export LANG=en_US.US-ASCII
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/mariohahn/.fastlane/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++11 -stdlib=libc++ -fmodules -fmodules-cache-path=/Users/mariohahn/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/mariohahn/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Wdocumentation -Wunreachable-code -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DPOD_CONFIGURATION_RELEASE=1 -DCOCOAPODS=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator10.2.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mtvos-simulator-version-min=9.0 -g -Wno-sign-conversion -Winfinite-recursion -Wmove -iquote /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-generated-files.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-own-target-headers.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-all-target-headers.hmap -iquote /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-project-headers.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Products/Release-appletvsimulator/leveldb-library/include -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Private -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Private/leveldb-library -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Public -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Public/leveldb-library -I\"/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/\" -I\"/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/include\" -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/DerivedSources/x86_64 -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/DerivedSources -Wno-shorten-64-to-32 -F/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Products/Release-appletvsimulator/leveldb-library -Wincomplete-umbrella -DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc -include /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Target\ Support\ Files/leveldb-library/leveldb-library-prefix.pch -MMD -MT dependencies -MF /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/block_builder.d --serialize-diagnostics /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/block_builder.dia -c /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/table/block_builder.cc -o /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/block_builder.o
/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/table/block_builder.cc:29:10: fatal error: 'table/block_builder.h' file not found
#include "table/block_builder.h"
         ^

CompileC /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/block.o leveldb-library/table/block.cc normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods
    export LANG=en_US.US-ASCII
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/mariohahn/.fastlane/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++11 -stdlib=libc++ -fmodules -fmodules-cache-path=/Users/mariohahn/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/mariohahn/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Wdocumentation -Wunreachable-code -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DPOD_CONFIGURATION_RELEASE=1 -DCOCOAPODS=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator10.2.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mtvos-simulator-version-min=9.0 -g -Wno-sign-conversion -Winfinite-recursion -Wmove -iquote /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-generated-files.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-own-target-headers.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-all-target-headers.hmap -iquote /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-project-headers.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Products/Release-appletvsimulator/leveldb-library/include -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Private -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Private/leveldb-library -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Public -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Public/leveldb-library -I\"/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/\" -I\"/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/include\" -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/DerivedSources/x86_64 -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/DerivedSources -Wno-shorten-64-to-32 -F/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Products/Release-appletvsimulator/leveldb-library -Wincomplete-umbrella -DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc -include /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Target\ Support\ Files/leveldb-library/leveldb-library-prefix.pch -MMD -MT dependencies -MF /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/block.d --serialize-diagnostics /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/block.dia -c /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/table/block.cc -o /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/block.o
/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/table/block.cc:7:10: fatal error: 'table/block.h' file not found
#include "table/block.h"
         ^

CompileC /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/cache.o leveldb-library/util/cache.cc normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
    cd /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods
    export LANG=en_US.US-ASCII
    export PATH="/Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/usr/bin:/Applications/Xcode.app/Contents/Developer/usr/bin:/Users/mariohahn/.fastlane/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
    /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -x c++ -arch x86_64 -fmessage-length=0 -fdiagnostics-show-note-include-stack -fmacro-backtrace-limit=0 -std=gnu++11 -stdlib=libc++ -fmodules -fmodules-cache-path=/Users/mariohahn/Library/Developer/Xcode/DerivedData/ModuleCache -fmodules-prune-interval=86400 -fmodules-prune-after=345600 -fbuild-session-file=/Users/mariohahn/Library/Developer/Xcode/DerivedData/ModuleCache/Session.modulevalidation -fmodules-validate-once-per-build-session -Wnon-modular-include-in-framework-module -Werror=non-modular-include-in-framework-module -Wno-trigraphs -fpascal-strings -Os -fno-common -Wno-missing-field-initializers -Wno-missing-prototypes -Wdocumentation -Wunreachable-code -Wno-non-virtual-dtor -Wno-overloaded-virtual -Wno-exit-time-destructors -Wno-missing-braces -Wparentheses -Wswitch -Wunused-function -Wno-unused-label -Wno-unused-parameter -Wunused-variable -Wunused-value -Wempty-body -Wuninitialized -Wno-unknown-pragmas -Wno-shadow -Wno-four-char-constants -Wno-conversion -Wconstant-conversion -Wint-conversion -Wbool-conversion -Wenum-conversion -Wshorten-64-to-32 -Wno-newline-eof -Wno-c++11-extensions -DPOD_CONFIGURATION_RELEASE=1 -DCOCOAPODS=1 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator10.2.sdk -fasm-blocks -fstrict-aliasing -Wdeprecated-declarations -Winvalid-offsetof -mtvos-simulator-version-min=9.0 -g -Wno-sign-conversion -Winfinite-recursion -Wmove -iquote /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-generated-files.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-own-target-headers.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-all-target-headers.hmap -iquote /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/leveldb-library-project-headers.hmap -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Products/Release-appletvsimulator/leveldb-library/include -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Private -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Private/leveldb-library -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Public -I/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Headers/Public/leveldb-library -I\"/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/\" -I\"/var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/include\" -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/DerivedSources/x86_64 -I/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/DerivedSources -Wno-shorten-64-to-32 -F/Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Products/Release-appletvsimulator/leveldb-library -Wincomplete-umbrella -DOS_MACOSX -DLEVELDB_PLATFORM_POSIX -fno-objc-arc -include /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/Target\ Support\ Files/leveldb-library/leveldb-library-prefix.pch -MMD -MT dependencies -MF /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/cache.d --serialize-diagnostics /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/cache.dia -c /var/folders/g1/wmtly35542vbzmmdxg4y3nwc0000gn/T/CocoaPods/Lint/Pods/leveldb-library/util/cache.cc -o /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/cache.o

** BUILD FAILED **


The following build commands failed:
	CompileC /Users/mariohahn/Library/Developer/Xcode/DerivedData/App-glcppnhpejkrnwayvgpwyrucoxdv/Build/Intermediates/Pods.build/Release-appletvsimulator/leveldb-library.build/Objects-normal/x86_64/coding.o leveldb-library/util/coding.cc normal x86_64 c++ com.apple.compilers.llvm.clang.1_0.compiler
(1 failure)
 -> leveldb-library (1.18.3)
    - WARN  | source: The version should be included in the Git tag.
    - ERROR | xcodebuild: Returned an unsuccessful exit code.
    - NOTE  | xcodebuild:  leveldb-library/util/coding.cc:5:10: fatal error: 'util/coding.h' file not found
    - NOTE  | xcodebuild:  leveldb-library/table/block.cc:7:10: fatal error: 'table/block.h' file not found
    - NOTE  | xcodebuild:  leveldb-library/table/block_builder.cc:29:10: fatal error: 'table/block_builder.h' file not found
    - NOTE  | xcodebuild:  leveldb-library/util/arena.cc:5:10: fatal error: 'util/arena.h' file not found
    - NOTE  | xcodebuild:  leveldb-library/db/builder.cc:5:10: fatal error: 'db/builder.h' file not found

Analyzed 1 podspec.

@paulb777
Copy link
Member

It looks like there are extra quotes in the xcconfig above. It runs pod spec lint with only a warning about the version if I replace it with the following:

 s.xcconfig = {
    'CC'  => 'clang',
    'CXX' => 'clang++',
    'HEADER_SEARCH_PATHS' => '"${PODS_ROOT}/leveldb-library/" "${PODS_ROOT}/leveldb-library/include"',
    'WARNING_CFLAGS' => '-Wno-shorten-64-to-32',
    'OTHER_LDFLAGS' => '-lc++'
  }

paulb777 added a commit that referenced this issue May 25, 2017
Setup Podfile dependencies and add Open Source Xcode targets and schemes for ApiTests, EarlGreyTests, and FirebaseAuthUnitTests.
@MattTimmons
Copy link

Hi! How is tvOS support coming? Was so excited to see the macOS support pushed!

@shuhrat10
Copy link

Do you have any progress on tvOS support?

@paulb777
Copy link
Member

tvOS is not on the near-term Firebase roadmap, but we'd be happy to review and accept PRs if anyone wants to pick up where @mariohahn left off.

@vadymmarkov
Copy link

Hi! I see there is some activity in https://github.com/firebase/firebase-ios-sdk/tree/tvOS_master branch, does it mean there is a change we're getting tvOS support any time soon?

@wilhuff
Copy link
Contributor

wilhuff commented Dec 14, 2017

Unfortunately we really can't promise timelines. Yes there's some work underway but other priorities might come up that halt our progress on it.

As always, PRs welcome :-).

@paulb777
Copy link
Member

paulb777 commented Jan 3, 2018

tvOS Community support for Core, Auth, Database and Storage landed in #590 along with a tvOS sample app. See https://github.com/firebase/firebase-ios-sdk#community-supported-efforts.

@shuhrat10
Copy link

shuhrat10 commented Jan 3, 2018 via email

@zapjonny
Copy link

zapjonny commented Jan 15, 2018

I'm might need to look into using Firebase (database specifically) on tvOS soon... just sayin' thanks for any work so far, in advance...

@zapjonny
Copy link

Got auth/database working in a simple test app (actually kind of a port of existing iOS app).

Seems to work. Thanks again.

@howadev
Copy link

howadev commented Feb 5, 2018

Because Firebase Analytics is dependent on Google Analytics and Google Analytics is not open source and not supporting tvOS, Firebase Analytics won't be available on tvOS. Is that right?

@paulb777
Copy link
Member

paulb777 commented Feb 5, 2018

Firebase Analytics does not depend upon Google Analytics, and neither are open source.

Open source is not a requirement to add support for tvOS - however there are no public plans to make Firebase Analytics available for tvOS. cc: @baolocdo

@SMorozovMinsk
Copy link

Question about Firebase Analytics for tvOS. I don't understand. Can I use last version of FirebaseCore for tvOS for Firebase Analytics? Now I add sdk to my tvOS app and try to start it, But every time I have "1671911] 5.0.0 - [Firebase/Core][I-COR000022] Firebase Analytics is not available."

@paulb777
Copy link
Member

paulb777 commented Aug 7, 2018

You can safely ignore that warning. Firebase Analytics is not available for tvOS.

I'll send a PR to get rid of the warning.

@pepasflo
Copy link

tvOS Community support for Core, Auth, Database and Storage landed in #590 along with a tvOS sample app. See https://github.com/firebase/firebase-ios-sdk#community-supported-efforts.

I just got Firebase/Database working on tvOS by following the above example app and wanted to provide a TL;DR Podfile for those just getting started with Firebase/Database on tvOS:

platform :tvos, '12.0'

target 'FooTV' do  
  use_frameworks!

  # Firebase is only partially supported on tvOS.
  # These podspecs (and these Podfile lines) are taken from:
  # https://github.com/firebase/firebase-ios-sdk/blob/master/Example/tvOSSample/Podfile
  pod 'FirebaseCore', :git => 'https://github.com/firebase/firebase-ios-sdk.git'
  pod 'FirebaseDatabase', :git => 'https://github.com/firebase/firebase-ios-sdk.git'
end

Thanks to those who contributed to this thread!

@acerbetti
Copy link

Any particular reason why functions are not supported on TvOS?

I just modified the FirebaseFunctions.podspec to add support for TvOS and MacOS and the module build just fine.

thanks

@paulb777
Copy link
Member

paulb777 commented Mar 9, 2019

@acerbetti It just hasn't been implemented and tested yet. We'll be happy to review a PR.

It should be a lot easier after the recently submitted testspec PR #1864 since no Xcode project setup is required for testing.

@paulb777
Copy link
Member

paulb777 commented Mar 9, 2019

@acerbetti I just made the #2506 to add tvOS and macOS for FirebaseFunctions. You're right that it's a seamless port. Thanks for the push.

@acerbetti
Copy link

That's great, I was planning to test it better today and provide a PR, but you beat me.

thanks

@paulb777
Copy link
Member

paulb777 commented Mar 9, 2019

Oh sorry for beating you to it. If you have some real-life tests that go beyond what's in the packaged unit and integration tests, that would still be appreciated.

@ay8s
Copy link
Author

ay8s commented Mar 14, 2019

@paulb777 Using the latest gRPC-C++ & gRPC-Core I was able to get Firestore running and returning data.

Only error I came across was sigaltstack which isn't available on tvOS used here...

if (sigaltstack(&sigstk, nullptr) != 0) {
ABSL_RAW_LOG(FATAL, "sigaltstack() failed with errno=%d", errno);
}
commenting this out allows it to build successfully.

@samsidd
Copy link

samsidd commented Mar 14, 2019

@ay8s are you using the code #2506 ?

@paulb777
Copy link
Member

@ay8s That's great to hear. Are you able to send us a PR. Otherwise, hopefully we can get to this soon. cc: @wilhuff

@ay8s
Copy link
Author

ay8s commented Mar 14, 2019

@paulb777 If you have any thoughts on an adjustment to the snippet below for tvOS, as its third-party I'm hesitant to simply comment it out or wrap in a tvOS check.

if (sigaltstack(&sigstk, nullptr) != 0) {
ABSL_RAW_LOG(FATAL, "sigaltstack() failed with errno=%d", errno);
}

@samsidd This is using a fork of master 👍

@paulb777
Copy link
Member

@ay8s Checking TARGET_OS_TV should be fine

@ay8s
Copy link
Author

ay8s commented Mar 20, 2019

@paulb777 #2592 left as WIP as it requires dev gRPC pods right now.

@erickavb
Copy link

My tvOS app is not connecting to the Firebase Console. I follow all the steps taking into account from giving the ID bundle, to installing the pods but when it reaches step 5 it never connects. Has anyone the same problem? Is there an extra step necessary for tvOS ?

@pepasflo
Copy link

@erickavb just wanted to say thanks for blazing the path for the rest of us with Firestore on Apple TV. We are going to have migrate from Firebase DB to Firestore soon to overcome the 100k concurrent limit of Firebase DB.

@ryanwilson
Copy link
Member

@erickavb re: not connecting to the Firebase Console. When the console waits for the "connect" step it is looking for a specific Analytics event which will never happen since Analytics isn't currently supported on tvOS. It's safe to ignore this warning and things should work as expected.

@paulb777
Copy link
Member

Going to close this since we now have community tvOS for most of Firebase and specific issues for missing coverage like #2011.

@makuchaku
Copy link
Member

makuchaku commented Feb 10, 2021

Hi everyone,

I am Mayank, a Product Manager at Firebase.

I am excited to share that we are in the process of improving Firebase SDKs to support additional Apple platforms.

If you are already using Firebase in your app which supports multiple Apple platforms (tvOS/macOS/Catalyst/watchOS) or are looking to add support for those platforms, we'd love to get your feedback.

If you're interested in chatting with us and getting early access to future updates, please sign up using this form : https://forms.gle/odseGnshb3Jq8wuz5

Once approved, we will share further information on how to proceed.

Thank you!
Mayank (on behalf of Firebase SDK team)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests