UnityAds 3.4.4 IOS duplicate - unity3d

I'm using Unity 2019.3.2f1 and, after updating UnityAds to 3.4.4, there are some errors.
duplicate symbol '_NetworkChange' in:
/Users/Desktop/UnityAdsTest/ios/Libraries/libiPhone-lib.a(SSRVConnectivityMonitor.o)
/Users/Desktop/UnityAdsTest/ios/Frameworks/Plugins/iOS/UnityAds.framework/UnityAds(UnityAds)
duplicate symbol '_kChinaIsoAlpha2Code' in:
/Users/Desktop/UnityAdsTest/ios/Libraries/libiPhone-lib.a(SSRVSdkProperties.o)
/Users/Desktop/UnityAdsTest/ios/Frameworks/Plugins/iOS/UnityAds.framework/UnityAds(UnityAds)
duplicate symbol '_kChinaIsoAlpha3Code' in:
/Users/Desktop/UnityAdsTest/ios/Libraries/libiPhone-lib.a(SSRVSdkProperties.o)
/Users/Desktop/UnityAdsTest/ios/Frameworks/Plugins/iOS/UnityAds.framework/UnityAds(UnityAds)
ld: 3 duplicate symbols for architecture arm64
I have try create new project, the problem still there. Repeat method:
Create new Unity project.
Import UnityAds from Package Manager, the version update to 3.4.4
build iOS project.
Run in XCode.
I don't enable the UnityAds server, and only one UnityAds.framework file in the XCode. It looks like some content is packed into the libiPhone-lib.a.
Has anyone encountered the same problem?

I solved this problem by remove that 3 symbols from UnityAds.framework:
First,write down the follewing 3 lines to "sym_need_remove.txt"
_NetworkChange
_kChinaIsoAlpha2Code
_kChinaIsoAlpha3Code
And then, extract the lib and remove that 3 symbols
cd UnityAds.framework
lipo UnityAds -thin arm64 -output UnityAds-64.a
strip -u -S -R sym_need_remove.txt UnityAds-64.a
If you need to support armv7 and arm64 at the same time, you also need:
lipo UnityAds -thin armv7 -output UnityAds-v7.a
strip -u -S -R sym_need_remove.txt UnityAds-v7.a
lipo -create UnityAds-64.a UnityAds-v7.a -output UnityAdsStrip.a
Finally, replace UnityAds-64.a or UnityAdsStrip.a back to UnityAds.framework/UnityAds
it will working.
I hope this could help~

Related

xcodebuild -create-framework error: unable to read the file

I have watched "binary framework in swift" and tried to build xcframework using xcodebuild -create-framework but it is not working properly.
I enabled "Build libraries for Distribution", then I archived and then used the command
xcodebuild -create-framework -framework /path/sample.xarchive -output sample.xcframework
But it is showing an error "unable to read the file at /path/sample/sample".
I am not sure what I am missing.
Sysytem Info:
MacOS: Catalina beta 1
Xcode 11
Here are step by step instructions, I think you might be missing step 2:
1) Set Build Library for Distribution in the build settings for the target framework to YES
2) Again in the build settings, set Skip Install to NO otherwise the framework won't show up in the Archive output folder.
3) Archive from the Xcode Product menu after selecting your Generic iOS Device the output will appear in the Organizer. Control-Click on the Archive. Select Show in Finder Drag that to the terminal to get the path to the archive and append the path (yellow part is the dragged path, gray is navigated in subfolders). In this case it looks like this, I used the ~ to avoid showing entire path.
~/Library/Developer/Xcode/Archives/2019-06-22/Output\ 6-22-19,\ 11.50\ AM.xcarchive/Products/Library/Frameworks/MyFramework.framework
4) Then create the XCFramework by inserting the command in front of the above path:
xcodebuild -create-xcframework -output Output.xcframework -framework ~/Library/Developer/Xcode/Archives/2019-06-22/Output\ 6-22-19,\ 11.50\ AM.xcarchive/Products/Library/Frameworks/MyFramework.framework
5) You then should see the output:
xcframework successfully written out to: ~/Project/Output.xcframework
I expect that someday soon Xcode will add a the ability to directly create the XCFramework without the command line.
You have to do a two step process via the command line.
xcodebuild archive
This will archive the framework and stick it likely in the build directory of your project.
xcodebuild -create-xcframework -output FrameworkName.xcframework -framework build/Release-iphoneos/ArchivedFramework.framework
This should successfully generate the XCFramework.
You typed the command wrong:
xcodebuild -create-xcframework -framework /path/sample.xarchive -output sample.xcframework
In my case it was failing for iPhone as arm64 architecture was added in the Excluded Architecture in Build Settings

Xcode 10: Code Signing my App+Framework fails, because of failure signing 3rd party dependency framework (PromiseKit). Works in Xcode 9

I have an Xcode 10 - iOS12 swift project that links against My own framework (also Xcode 10 + iOS12).
The app project is referencing my framework project as a sub-project reference.
My Framework project references PromiseKit.framework (a universal framework - fat library), made using the following build script:
# Merge Script
# 1
# Set bash script to exit immediately if any commands fail.
set -e
# 2
# Setup some constants for use later on.
FRAMEWORK_NAME="PromiseKit"
# 3
# If remnants from a previous build exist, delete them.
if [ -d "${SRCROOT}/build" ]; then
rm -rf "${SRCROOT}/build"
fi
# 4
# Build the framework for device and for simulator (using
# all needed architectures).
xcodebuild -target "${FRAMEWORK_NAME}" -configuration Release -arch arm64 only_active_arch=no defines_module=yes -sdk "iphoneos"
xcodebuild -target "${FRAMEWORK_NAME}" -configuration Release -arch x86_64 only_active_arch=no defines_module=yes -sdk "iphonesimulator"
# 5
# Remove .framework file if exists on Desktop from previous run.
if [ -d "${SRCROOT}/${FRAMEWORK_NAME}.framework" ]; then
rm -rf "${SRCROOT}/${FRAMEWORK_NAME}.framework"
fi
# 6
# Copy the device version of framework to Desktop.
cp -r "${SRCROOT}/build/Release-iphoneos/${FRAMEWORK_NAME}.framework" "${SRCROOT}/${FRAMEWORK_NAME}.framework"
# 7
# Replace the framework executable within the framework with
# a new version created by merging the device and simulator
# frameworks' executables with lipo.
lipo -create -output "${SRCROOT}/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}" "${SRCROOT}/build/Release-iphoneos/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}" "${SRCROOT}/build/Release-iphonesimulator/${FRAMEWORK_NAME}.framework/${FRAMEWORK_NAME}"
# 8
# Copy the Swift module mappings for the simulator into the
# framework. The device mappings already exist from step 6.
cp -r "${SRCROOT}/build/Release-iphonesimulator/${FRAMEWORK_NAME}.framework/Modules/${FRAMEWORK_NAME}.swiftmodule/" "${SRCROOT}/${FRAMEWORK_NAME}.framework/Modules/${FRAMEWORK_NAME}.swiftmodule"
# 9
# Delete the most recent build.
if [ -d "${SRCROOT}/build" ]; then
rm -rf "${SRCROOT}/build"
fi
When I go to archive my Parent App Project using Xcode 10 (And also 9.4.1) with Bitcode ON (that contains My Framework reference, and PromiseKit Fat library), I get the following error on the Signing stage: (Failed to verify bitcode in PromiseKit.framework/PromiseKit: error Cannot extract bundle from /var/folders..../(x86_64) - which suggests that it's simulator slice related)
If I turn the "Rebuild from Bitcode" option in the Organizer to OFF, then I get a different error: (Code signing "PromiseKit.framework" failed)
However, if I use Xcode 9.4.1 With Bitcode OFF, then it exports and signs fine.
Why is it trying to individually re-sign sub frameworks, and what can I do to alleviate the issues? I need the archiving to work normally with Xcode 10, along with any future third party dependencies being added to my framework target. (This is the first dynamic framework dependency added to my Framework target. Before I was "baking in" - in-boarding all 3rd parties for ease of development purposes, but PromiseKit is difficult to inboard due to extensive dependencies on Objective-c).
The Xcode Archive log is:
{
code = 330;
description = "Failed to resolve linkage dependency PromiseKit x86_64 -> #rpath/libswiftFoundation.dylib: Unknown arch x86_64";
info = {
};
level = WARN;
},
{
code = 330;
description = "Failed to resolve linkage dependency PromiseKit x86_64 -> #rpath/libswiftObjectiveC.dylib: Unknown arch x86_64";
info = {
};
level = WARN;
},
{
code = 0;
description = "Failed to verify bitcode in PromiseKit.framework/PromiseKit:\nerror: Cannot extract bundle from /var/folders/q5/hm9v_6x53lj0gj02yxqtkmd40000gn/T/IDEDistributionOptionThinning.RJD/Payload/MyAppName.app/Frameworks/PromiseKit.framework/PromiseKit (x86_64)\n\n";
info = {
};
level = ERROR;
type = "malformed-payload";
}
);
Some other solutions I tried was using a Project Reference to PromiseKit, instead of a Framework reference, however this doesn't work - in that I still need a framework reference from my main project, because I will get "library not loaded" error at runtime, if running without a FW reference. Same issue occurs when archiving while using a project reference.
Try this! It worked for me and many other people:
Goto
Build phases > Add > New Run Script Phase
The code should work for any default shell, but I recommend just using /bin/sh
and include the following code:
# Type a script or drag a script file from your workspace to insert its path.
# skip if we run in debug
if [ "$CONFIGURATION" == "Debug" ]; then
echo "Skip frameworks cleaning in debug version"
exit 0
fi
APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"
# This script loops through the frameworks embedded in the application and
# removes unused architectures.
find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
do
FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
EXTRACTED_ARCHS=()
for ARCH in $ARCHS
do
echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
done
echo "Merging extracted architectures: ${ARCHS}"
lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[#]}"
rm "${EXTRACTED_ARCHS[#]}"
echo "Replacing original executable with thinned version"
rm "$FRAMEWORK_EXECUTABLE_PATH"
mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
done
It seems hat some frameworks ship architectures, that will not be used in the application.
Xcode will refuse to sign them. The above script removes unused architectures.
Credits: Some guy at GitHub, I can't find the exact source anymore.
Same issue here. The only workaround I've found is to use static library instead of framework.
In case you are not able to use static library, you'd better file a bug report to Apple.
This is what worked for me,
I have application and 2 in-house built frameworks, say A $ B.
Application needs A, but A needs B and since Apple doesn't recommend nesting frameworks, so both A and B had to be included in the app.
This is what my Xcode project looks like.
SOLUTION
In the application, under Frameworks, Libraries and Embedded Content, select Embed & Sign for all necessary frameworks. (as shown below)
But for all the custom framework projects, under Frameworks and Libraries section, select Do Not Embed. (as shown below)
This fixed the issue for me

Linking failure in open-source Swift project

I've been following the "Getting Started" tutorial on http://swift.org. Upon creating new Swift "Hello World" project, I ran shell command:
$ swift build
and got the following output:
Compiling Swift Module 'MyProject' (1 sources)
Linking MyProject
ld: library not found for -lobjc
<unknown>:0: error: build had 1 command failures
error: exit(1): /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2016-02-25-a.xctoolchain/usr/bin/swift-build-tool -f /Users/petrmanek/Projekty/MyProject/.build/debug.yaml default
I'm assuming that ld: library not found for -lobjc means that the linker can't find the Objective-C standard library, however I find that hard to believe as both files /usr/lib/libobjc.A.dylib and /usr/lib/libobjc.dylib are present on my file system.
What do I do now?
My configuration is:
Hardware: Mac mini (Late 2012)
OS: Mac OS 10.11 El Capitan
uname -a
Darwin tywin 15.3.0 Darwin Kernel Version 15.3.0: Thu Dec 10 18:40:58 PST 2015; root:xnu-3248.30.4~1/RELEASE_X86_64 x86_64
swift --version
Apple Swift version 3.0-dev (LLVM b361b0fc05, Clang 11493b0f62, Swift fc261045a5)
Target: x86_64-apple-macosx10.9
I think I have solved it. Here's my solution if anyone's interested.
Looking at the swift-build --help option list, I have discovered the option -Xlinker which allows me to specify flags directly for ld. I used this option to tell it to be more verbose with command:
$ swift build -Xlinker -v
The output was:
Linking MyProject
#(#)PROGRAM:ld PROJECT:ld64-242
configured to support archs: i386 x86_64 x86_64h armv6 armv7 armv7s armv7m armv7k arm64
Library search paths:
/Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2016-02-25-a.xctoolchain/usr/lib/swift/macosx
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/lib
Framework search paths:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/
ld: library not found for -lobjc
<unknown>:0: error: build had 1 command failures
error: exit(1): /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2016-02-25-a.xctoolchain/usr/bin/swift-build-tool -f /Users/petrmanek/Projekty/MyProject/.build/debug.yaml default
This was quite messy but we can see that /usr/lib is not among the library search paths. I had two options:
add /usr/lib as a search path - that didn't work because ld strives to add /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/ prefix in front of every search path I add using the -L flag
link `libobjc.dylib - that worked
Here are the shell commands I used (I did the same thing for libSystem because it required the same treatment):
$ cd /Library/Developer/Toolchains/swift-DEVELOPMENT-SNAPSHOT-2016-02-25-a.xctoolchain/usr/lib/swift/macosx
$ sudo ln -s /usr/lib/libobjc.dylib
$ sudo ln -s /usr/lib/libSystem.dylib
The swift build command is working now and the product runs correctly. However, I don't believe that is user-friendly installation process, Apple.

no product after "build success" of a cocoa touch static library project

I have searched so many problem but there is no the same as me.
on Xcode 4.3.2(4.3.1)
I added several files to a new cocoa touch static library project and use iPhone Simulator to build it, then receive build success, but no .a file in products group (the .a file is red in the files list, left of Xcode)
When I change the "iPhone Simulator" to IOS Device, also receive build success, but now I can see .a file is not red and I can find in the product folder^
After I use lipo -info to check the .a file, it shows that it only supports arm7 architecture, thus confirms my first action(no product built in Simulator)^ so the .a file can't be used in my another project(i know it only can be used in simulator by supporting i386 architecture)
Use the command line. Here is a simple script I built a while back, it will even lipo your binaries together for you!
#!/bin/bash
#build the device
echo building for ARM architecture
xcodebuild -sdk iphoneos4.3 "ARCHS=armv6 armv7" build > /dev/null
#build the simulator
echo building for the i386 architecture
xcodebuild -sdk iphonesimulator4.3 "ARCHS=i386 x86_64" "VALID_ARCHS=i386 x86_64" build > /dev/null
#make the folder
mkdir "Fat Binary"
#lipo suck it together
echo lipo binaries together
lipo -output Fat\ Binary/libMyLib.a -create build/Release-iphoneos/liblibMyLib.a build/Release-iphonesimulator/libMyLib.a
echo lipo binary saved at $./Fat Binary/libMyLib.a
echo coping headers
cp -R build/Release-iphoneos/usr "Fat Binary"
echo [COMPLETE]
Just replace occurrences of libMyLib.a with the name of your library.

Xcode 4 - clang error

I'm migrating from Xcode 3.5 to Xcode 4 and
while I'm trying to Archiving my app for AdHoc distribution.
I received this error
Precompile MyApp_Prefix.pch
ProcessPCH /Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/Build/PrecompiledHeaders/MyApp_Prefix-crxrbmeralwexyefvuwvzexquuin/MyApp_Prefix.pch.pth MyApp_Prefix.pch normal armv7 objective-c com.apple.compilers.llvm.clang.1_0.compiler
cd /Users/return/Projects/iphone-MyApp
setenv LANG en_US.US-ASCII
setenv PATH "/Xcode4.2/Platforms/iPhoneOS.platform/Developer/usr/bin:/Xcode4.2/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin"
/Xcode4.2/Platforms/iPhoneOS.platform/Developer/usr/bin/clang -x objective-c-header -arch armv7 -fmessage-length=0 -fdiagnostics-print-source-range-info -fdiagnostics-show-category=id -fdiagnostics-parseable-fixits -std=c99 -Wno-trigraphs -fpascal-strings -O0 -Wreturn-type -Wparentheses -Wswitch -Wno-unused-parameter -Wunused-variable -Wunused-value -Wno-shorten-64-to-32 -DFAVOURITES_ENABLED=0 -isysroot /Xcode4.2/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk -gdwarf-2 -fvisibility=hidden -Wno-sign-conversion -mthumb "-DIBOutlet=__attribute__((iboutlet))" "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" "-DIBAction=void)__attribute__((ibaction)" -miphoneos-version-min=3.0 -iquote "/Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/ArchiveIntermediates/MyApp - Distribution/IntermediateBuildFilesPath/MyApp.build/Distribution-iphoneos/MyApp.build/MyApp-generated-files.hmap" "-I/Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/ArchiveIntermediates/MyApp - Distribution/IntermediateBuildFilesPath/MyApp.build/Distribution-iphoneos/MyApp.build/MyApp-own-target-headers.hmap" "-I/Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/ArchiveIntermediates/MyApp - Distribution/IntermediateBuildFilesPath/MyApp.build/Distribution-iphoneos/MyApp.build/MyApp-all-target-headers.hmap" -iquote "/Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/ArchiveIntermediates/MyApp - Distribution/IntermediateBuildFilesPath/MyApp.build/Distribution-iphoneos/MyApp.build/MyApp-project-headers.hmap" "-I/Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/ArchiveIntermediates/MyApp - Distribution/BuildProductsPath/Distribution-iphoneos/include" "-I”/Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/ArchiveIntermediates/MyApp" -I- "-IDistribution/BuildProductsPath/Distribution-iphoneos/../three20″" "-I“/Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/ArchiveIntermediates/MyApp" -I- "-IDistribution/BuildProductsPath/Distribution-iphoneos/../../three20″" -Ithree20/Build/Products/three20 -I/Xcode4.2/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/usr/include/libxml2 "-I/Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/ArchiveIntermediates/MyApp - Distribution/IntermediateBuildFilesPath/MyApp.build/Distribution-iphoneos/MyApp.build/DerivedSources/armv7" "-I/Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/ArchiveIntermediates/MyApp - Distribution/IntermediateBuildFilesPath/MyApp.build/Distribution-iphoneos/MyApp.build/DerivedSources" "-F/Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/ArchiveIntermediates/MyApp - Distribution/BuildProductsPath/Distribution-iphoneos" -c /Users/return/Projects/iphone-MyApp/MyApp_Prefix.pch -o /Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/Build/PrecompiledHeaders/MyApp_Prefix-crxrbmeralwexyefvuwvzexquuin/MyApp_Prefix.pch.pth -MMD -MT dependencies -MF /Users/return/Library/Developer/Xcode/DerivedData/MyApp-cwtxjgdpsvtoyxcfpytllmzaxceb/Build/PrecompiledHeaders/MyApp_Prefix-crxrbmeralwexyefvuwvzexquuin/MyApp_Prefix.pch.d
**clang: error: '-I-' not supported, please use -iquote instead**
**Command /Xcode4.2/Platforms/iPhoneOS.platform/Developer/usr/bin/clang failed with exit code 1**
Do you know what I should do to fix this?
UPDATE (report result after followed MacMade's suggestions)
So in the Target Build Settings:
I have nothing in Other C flags.
I have nothing in User Header Search Paths
In Header Search Paths, I have:
”$(BUILT_PRODUCTS_DIR)/../three20″
“$(BUILT_PRODUCTS_DIR)/../../three20″
./three20/Build/Products/three20
/usr/include/libxml2
but I'm not sure what to change here.
In Compiler for C/C++/Objective-C setting,
I switched from Apple LLVM compiler to LLVM GCC and get this message:
cc1obj: note: obsolete option -I- used, please use -iquote instead
cc1obj: error: -I- specified twice
cc1obj: note: obsolete option -I- used, please use -iquote instead
UPDATE (report result after followed MacMade's updated suggestions)
So I move:
”$(BUILT_PRODUCTS_DIR)/../three20″
“$(BUILT_PRODUCTS_DIR)/../../three20″
to User Header Search Paths
and it works!!!
(NOTE: I don't move ./three20/Build/Products/three20 because I see
can't find <Three20/Three20.h>
errors while building the project if I do.)
Apparently, you've set custom compiler flags for the include paths.
Go to your target's build settings and check this option:
Other C flags
If you have something in it, you may replace it by the -iquote version.
Otherwise, still in the build settings, check the value of the following options:
Header Search Paths
User Header Search Paths
Try to manipulate these values, if applicable.
Otherwise, you may also continue to use GCC as a fronted, instead of Clang.
You can do this by setting the Compiler for C/C++/Objective-C build setting to LLVM GCC instead of Apple LLVM compiler.
EDIT
Based on your edit, I can see you are using the Three20 library.
Depending on how you include that stuff, you may want to put these search paths to the User Header Search Paths, instead of Header search paths (if you include them with "" instead of <>).
Try to do this for Three20, but leave libxml here...
I tried these solutions. But i couldn't or not working for me.
I solved this problem with this way:
I deleted MuseumTests in targets
When you clicked your project in general tab on left there is targets
You can solve this problem by selecting General tab of AppNameTests and select your app from the drop down list and enable "Allow testing Host Applications APIs"
I just had this problem with an instagram lib, my mistake was that i was importing the files to a target and compiled the other target. It gave me some headaches.
Hi guys we did something that worked...
We had the same problem and it was quite easy to solve...
First you go to terminal type cd
cd (drag the whole folder where your file is in) and press return
after you are inside the folder you have to write:
pod instal and type return
something like that....
Last login: Wed Aug 21 09:19:29 on console
WozMac1:~ KrisBasque$
WozMac1:~ KrisBasque$
WozMac1:~ KrisBasque$
WozMac1:~ KrisBasque$ cd
WozMac1:~ KrisBasque$ cd /Users/KrisBasque/Documents/QUADDRO/medapp
WozMac1:medapp KrisBasque$ pod install
Analyzing dependencies
CocoaPods 0.23.0 is available.
Downloading dependencies
Using AFNetworking (1.3.1)
Installing FMDB (2.1)
Using MBProgressHUD (0.7)
Using PSStackedView (1.0)
Using Reachability (3.1.1)
Installing SDWebImage (3.3)
Using TapkuLibrary (0.2.4)
Installing libwebp (0.3.0-rc7)
Generating Pods project
Integrating client project
WozMac1:medapp KrisBasque$
The way I solved this was my making sure no other implementation files we're linked to your file. Linking interface files is fine though
This error also caused by wrong header import.
For example your class is "yourclass.h", but in wrong way if you import "yourclass.m" it is cause this error.