2013-09-24 1 views
0

내 프로젝트에 BurstlySDK 및 TestFlightSDK을 추가하고 난 다음 링커 오류가 있어요 리드. TF 접두사가있는 약 10 개의 클래스가 오류 메시지에 언급되어 있습니다. 왜 그런지 알 수 있습니까? 감사합니다은 링커 오류

Burslty 아이폰 OS 통합 가이드에서
+1

- Burstly가 – Injectios

답변

1

다음 TestFlight SDK 이후

Note: The TestFlight SDK has been bundled with SkyRocket since 2.X 

http://quickstart.burstly.com/ios-release-notes

+0

감사 TestFlight SDK를 포함 어딘가에 언급,하지만 어떻게 "TestFlight.h"를 가져 옵니까? 그것은 찾지 못했습니다 –

+0

testFlight.h를 주 프로젝트에 복사 할 수 있지만 .m 파일은 복사 할 수 없습니다. – Injectios

2

가 급증 SDK와 함께 제공됩니다, 당신은 libTestFlight.a에 연결하지 않아도하지만 당신은 TestFlight을 유지할 필요가 없습니다. h를 사용하고 TestFlight 기능을 사용해야 할 때 클래스에서 해당 헤더를 가져옵니다. TestFlight.h가 없으면 TestFlight SDK를 다운로드 할 수 있습니다. 여기에서 TestFlight SDK를 다운로드 할 수 있습니다 : https://testflightapp.com/sdk/download/

1

위의 Alex M이 말한 것처럼 강력하게 지원하는 것이 좋습니다. Burstly가 SkyRocket SDK보다 TestFlight SDK를 유지 관리하는 데 더 많은 리소스를 사용하고 있다는 느낌을 받기 때문에 긴장했습니다. 틀림없이,이 직감은 내 상상의 산물 일지 모르지만 나는 그것을 흔들 수 없었다.

그래서 대신이 스크립트를 작성했습니다. libBurstly.a에서 중복 된 심볼을 제거하고 충돌없이 링크 될 수있는 libBurstly-noTestFlight.a를 출력합니다. 경로는 현재 프로젝트에 대해 하드 코딩되어 있으므로 사용하려면 자체 프로젝트에 맞게 스크립트를 수정해야합니다. 내가하지 틀리지 경우

#!/bin/bash 

# I install this script as $(SRCROOT)/scripts/strip_tf_duplicate_symbols, and 
# run it from $(SRCROOT). 
# It looks for libBurstly.a under $(SRCROOT)/Vendors/BurstlySDK. 
# Sorry about the hard-coded paths. I didn't design this to be used in other projects. 

if [ -d ./Vendors/BurstlySDK ] 
then 
    echo "Preparing to strip duplicate symbols from libBurstly.a..." 
else 
    echo "Creates Vendors/BurstlySDK/libBurstly-noTestFlight.a with duplicate symbols removed." 
    echo "Usage: run ./scripts/strip_tf_duplicate_symbols from the Xcode project root" 
    exit 
fi 

cd Vendors/BurstlySDK 

echo "Breaking fat libBurstly.a into separate armv7 and i386 libraries..." 
xcrun -sdk iphoneos lipo -thin armv7 libBurstly.a -output libBurstly-armv7.a 
xcrun -sdk iphoneos lipo -thin armv7s libBurstly.a -output libBurstly-armv7s.a 
xcrun -sdk iphoneos lipo -thin i386 libBurstly.a -output libBurstly-i386.a 

echo "Extracting .o files into architecture-specific subdirectories..." 
mkdir -p libBurstly-armv7 libBurstly-armv7s libBurstly-i386 
cd libBurstly-i386 
ar -x ../libBurstly-i386.a 
cd .. 
cd libBurstly-armv7 
ar -x ../libBurstly-armv7.a 
cd .. 
cd libBurstly-armv7s 
ar -x ../libBurstly-armv7s.a 
cd .. 

echo "Removing .o files with duplicate symbols..." 
rm */TF_OpenUDID.o 
rm */TFMessagePack.o 
rm */TestFlight.o 
rm */TFReachability.o 
rm */TFNetworkManager.o 
rm */TFMemoryMonitor.o 
rm */TFDeviceInfo.o 
rm */TFCrypto.o 
rm */TFApplicationInformation.o 


echo "Repacking architecture-specific .a files..." 
cd libBurstly-i386 
xcrun -sdk iphoneos libtool -static -o ../libBurstly-i386.a *.o 
cd .. 
cd libBurstly-armv7 
xcrun -sdk iphoneos libtool -static -o ../libBurstly-armv7.a *.o 
cd .. 
cd libBurstly-armv7s 
xcrun -sdk iphoneos libtool -static -o ../libBurstly-armv7s.a *.o 
cd .. 

echo "Recombining thin files into libBurstly-noTestFlight.a" 
xcrun -sdk iphoneos lipo -create libBurstly-i386.a libBurstly-armv7.a libBurstly-armv7s.a -output libBurstly-noTestFlight.a 

echo "Cleaning up..." 
rm -rf libBurstly-armv7 libBurstly-armv7s libBurstly-i386 

ls -1 libBurstly-noTestFlight.a 
echo "Done"