내 프로젝트에 BurstlySDK 및 TestFlightSDK을 추가하고 난 다음 링커 오류가 있어요 리드. TF 접두사가있는 약 10 개의 클래스가 오류 메시지에 언급되어 있습니다. 왜 그런지 알 수 있습니까? 감사합니다은 링커 오류
Burslty 아이폰 OS 통합 가이드에서은 링커 오류
답변
다음 TestFlight SDK 이후
Note: The TestFlight SDK has been bundled with SkyRocket since 2.X
감사 TestFlight SDK를 포함 어딘가에 언급,하지만 어떻게 "TestFlight.h"를 가져 옵니까? 그것은 찾지 못했습니다 –
testFlight.h를 주 프로젝트에 복사 할 수 있지만 .m 파일은 복사 할 수 없습니다. – Injectios
가 급증 SDK와 함께 제공됩니다, 당신은 libTestFlight.a에 연결하지 않아도하지만 당신은 TestFlight을 유지할 필요가 없습니다. h를 사용하고 TestFlight 기능을 사용해야 할 때 클래스에서 해당 헤더를 가져옵니다. TestFlight.h가 없으면 TestFlight SDK를 다운로드 할 수 있습니다. 여기에서 TestFlight SDK를 다운로드 할 수 있습니다 : https://testflightapp.com/sdk/download/
위의 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"
- Burstly가 – Injectios