Open rainypixels opened 6 years ago
+1
I have the same problem
*** Building scheme "AsyncDisplayKit" in AsyncDisplayKit.xcworkspace Build Failed Task failed with exit code 65: /usr/bin/xcrun xcodebuild -workspace /trunk/Carthage/Checkouts/texture/AsyncDisplayKit.xcworkspace -scheme AsyncDisplayKit -configuration Release -derivedDataPath /Users/name/Library/Caches/org.carthage.CarthageKit/DerivedData/9.3_9E145/texture/2.3.1 -sdk iphoneos ONLY_ACTIVE_ARCH=NO BITCODE_GENERATION_MODE=bitcode CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY= CARTHAGE=YES archive -archivePath /var/folders/xh/0p311s3j6rl5nmm29_brfc340000gn/T/texture SKIP_INSTALL=YES GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=NO CLANG_ENABLE_CODE_COVERAGE=NO STRIP_INSTALLED_PRODUCT=NO (launched in trunk/Carthage/Checkouts/texture)
This usually indicates that project itself failed to compile. Please check the xcodebuild log for more details: /var/folders/xh/0p311s3j6rl5nmm29_brfc340000gn/T/carthage-xcodebuild.FbOUKy.log
in ASDefaultPlaybackButton.m
ASDefaultPlaybackButtonType buttonType = (ASDefaultPlaybackButtonType)[parameters[@"buttonType"] intValue]; UIColor *color = parameters[@"color"];
The two lines of code are wrong.
Expected method to read dictionary element not found on object of type 'id
seems this is related to #875
Refer to other partners' temporary solutions, declare parameters as NSDictionary build ok And then execute the command carthage build --platform ios
Looks like this may have been fixed and merged into master 6 days ago by @maicki. If anyone on this thread can confirm, I can go ahead and close this issue...
I'm still having issues when using carthage:
The following build commands failed:
CompileC /Users/jasonlagaac/Library/Caches/org.carthage.CarthageKit/DerivedData/9.3_9E145/texture/e67b892243ed715f3f8f72d13292446a97c520c1/Build/Intermediates.noindex/AsyncDisplayKit.build/Release-iphonesimulator/AsyncDisplayKit.build/Objects-normal/i386/ASAssert.o Source/Base/ASAssert.m normal i386 objective-c com.apple.compilers.llvm.clang.1_0.compiler
I am using the master branch
Hi! Here is a description of this error:
error: thread-local storage is not supported for the current target static _Thread_local int tls_mainThreadAssertionsDisabledCount; ^ 1 error generated.
This problem is only occurs when building for iphonesimulator with architecture i386
.
For x86_64
build is successful.
Yes unfortunately Xcode 9.3 removed support for i386 (32-bit simulator) thread-local variables.
Since that particular architecture is pretty useless these days and will soon be phased out when we drop iOS 9 (not that we have concrete plans to do that,) I'd rather address why Carthage insists on building that architecture rather than fork all the places in our code where we rely on thread-local storage.
Not knowing much about Carthage, is there any way to configure what architectures are eagerly built? It seems like 64-bit simulator and ARM64 are the most relevant, and then 32-bit ARM in rare cases/App Store builds.
Here is an easy workaround: create a shell script with such content
#!/usr/bin/env bash
set -euo pipefail
IFS=$'\n\t'
xcconfig=$(mktemp /tmp/static.xcconfig.XXXXXX)
trap 'rm -f "$xcconfig"' INT TERM HUP EXIT
echo "ONLY_ACTIVE_ARCH[sdk=iphonesimulator*] = YES" >>$xcconfig
export XCODE_XCCONFIG_FILE="$xcconfig"
carthage update --platform ios $@
And use it to perform carthage update. This script will force carthage to build only active arch when building for iphonesimulator.
anyone can fix it?
@ishall1 Why don't you just use my solution?
I managed to fix my thread-local storage
issue by setting the ONLY_ACTIVE_ARCH
setting to true for any debugging targets (the problem seems to affect only builds against the simulator). I am using Cocoapods and fixed it by adding this little snippet to my Podfile:
post_install do |installer|
installer.pods_project.targets.each do |target|
if target.name == 'Texture' then
target.build_configurations.each do |configuration|
if configuration.name.include?("Debug") then
configuration.build_settings['ONLY_ACTIVE_ARCH'] = 'YES'
end
end
end
end
end
@Adlai-Holler Thanks for the hint! I'll look into whether there's a way to configure what architectures are built, or whether we would have to use a script. That said, quick heads up that this seems like an issue that's hitting cocoapods folk, too (see @bajtyngier's comment above).
@Saik0s Thanks for your reply. But your solution doesn't fix my problem . Now I use 'pod install' and it works well.
You could also be able to fix this if you remove i386 from VALID_ARCHS. See https://github.com/Carthage/Carthage/issues/1771#issuecomment-284756853
I downloaded Xcode 9.3 last night, ran
carthage update
(pointed at Texture'srelease
branch), and rebuilt my project. It builds successfully, butSIGABRT
s on run. I've done all the usual stuff: deleted derived data, removed texture and dependencies entirely from checkout/build folders (and done a fresh install), etc. but nothing has worked. I've also tried themaster
branch which bails duringcarthage update
as follows:Here's a sample project that reproduces the runtime error for the
release
branch. Be sure to runcarthage update
first; I deleted theCarthage
folder to reduce the file size of the sample project:SadTexture.zip