[iOS] Updated flurry to 11.1

https://jira.mail.ru/browse/MAPSME-15106
This commit is contained in:
Alexander Boriskov 2020-12-07 11:33:11 +03:00 committed by Alexander Boriskov
parent 30044eb60c
commit c10dffc2f1
16 changed files with 8156 additions and 7933 deletions

View file

@ -46,7 +46,6 @@ NSInteger convertToAlohalyticsChannel(StatisticsChannel cnannel) {
withAppVersion:[AppInfo sharedInfo].bundleVersion];
[sessionBuilder withDataSaleOptOut:true];
[Flurry startSession:@(FLURRY_KEY) withSessionBuilder:sessionBuilder];
[Flurry logAllPageViewsForTarget:application.windows.firstObject.rootViewController];
}
[Alohalytics setup:@[@(ALOHALYTICS_URL), [NSString stringWithFormat:@"%@/%@", @(ALOHALYTICS_URL), @"realtime"]]

View file

@ -12,7 +12,7 @@ pod 'AppsFlyerFramework', '4.9.0'
pod 'Pushwoosh', '5.16.0'
pod 'FBSDKCoreKit', '5.15.1'
pod 'FBSDKLoginKit', '5.15.1'
pod 'Flurry-iOS-SDK/FlurrySDK', '10.1'
pod 'Flurry-iOS-SDK/FlurrySDK', '11.1'
pod 'mopub-ios-sdk', '5.12'
pod 'MoPub-FacebookAudienceNetwork-Adapters', '5.9.0'
pod 'Firebase/Crashlytics', '6.26.0'

View file

@ -56,7 +56,7 @@ PODS:
- GoogleUtilities/Environment (~> 6.6)
- GoogleUtilities/UserDefaults (~> 6.6)
- PromisesObjC (~> 1.2)
- Flurry-iOS-SDK/FlurrySDK (10.1.0)
- Flurry-iOS-SDK/FlurrySDK (11.1.0)
- GoogleAppMeasurement (6.6.0):
- GoogleUtilities/AppDelegateSwizzler (~> 6.0)
- GoogleUtilities/MethodSwizzler (~> 6.0)
@ -126,7 +126,7 @@ DEPENDENCIES:
- FBSDKLoginKit (= 5.15.1)
- Firebase/Analytics (= 6.26.0)
- Firebase/Crashlytics (= 6.26.0)
- Flurry-iOS-SDK/FlurrySDK (= 10.1)
- Flurry-iOS-SDK/FlurrySDK (= 11.1)
- MoPub-FacebookAudienceNetwork-Adapters (= 5.9.0)
- mopub-ios-sdk (= 5.12)
- Pushwoosh (= 5.16.0)
@ -169,7 +169,7 @@ SPEC CHECKSUMS:
FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850
FirebaseCrashlytics: a87cce5746d3335995bd18b1b60d073cd05a6920
FirebaseInstallations: 6f5f680e65dc374397a483c32d1799ba822a395b
Flurry-iOS-SDK: be6bfad47f3b3c15a38b5e396935ef74512f1c38
Flurry-iOS-SDK: 88c0399d6d276325dc9f74f6183c1070e6c3f21e
GoogleAppMeasurement: 67458367830514fb20fd9e233496f1eef9d90185
GoogleDataTransport: 9a8a16f79feffc7f42096743de2a7c4815e84020
GoogleDataTransportCCTSupport: 489c1265d2c85b68187a83a911913d190012158d
@ -180,6 +180,6 @@ SPEC CHECKSUMS:
PromisesObjC: b48e0338dbbac2207e611750777895f7a5811b75
Pushwoosh: 6cba171e52f3f7b8ccd280f492a5831deac2f594
PODFILE CHECKSUM: 8a9705a6477e83ec21530a12f6522770e57f6ca4
PODFILE CHECKSUM: 6a5506aaa77abf026437e209f61e422241c8e153
COCOAPODS: 1.8.3
COCOAPODS: 1.9.3

View file

@ -8,7 +8,7 @@
#import <UIKit/UIKit.h>
#if !TARGET_OS_WATCH
#import <StoreKit/StoreKit.h>
@class SKPaymentTransaction;
#endif
#if TARGET_OS_TV
@class JSContext;
@ -16,6 +16,18 @@
#import "FlurrySessionBuilder.h"
/*!
* @brief Enum for payment transaction state
*/
typedef enum {
FlurryPaymentTransactionStatePurchasing = 0,
FlurryPaymentTransactionStateSuccess = 1,
FlurryPaymentTransactionStateFailure = 2,
FlurryPaymentTransactionStateRestored = 3,
FlurryPaymentTransactionStateDeferred = 4
} FlurryPaymentTransactionState;
typedef enum {
FlurryEventFailed = 0,
FlurryEventRecorded,
@ -810,10 +822,12 @@ typedef enum {
+ (void) logPaymentTransaction:(nonnull SKPaymentTransaction *)transaction
statusCallback:(nullable void(^)(FlurryTransactionRecordStatus))statusCallback;
/*!
* @brief Records Apple store IAP transaction params and user defined transaction params manually.
* @since 10.0.0
*
* @deprecated since 11.0.0.
* @param transactionId a string Id for this IAP transaction
* @param productId a string Id for this IAP transaction product
* @param quantity a string representation of quantity of items purchased
@ -834,7 +848,33 @@ typedef enum {
productName:(nonnull NSString *)productName
transactionState:(nonnull NSString *)transactionState
userDefinedParams:(nullable NSDictionary*)transactionParams
statusCallback:(nullable void(^)(FlurryTransactionRecordStatus))statusCallback;
statusCallback:(nullable void(^)(FlurryTransactionRecordStatus))statusCallback __attribute__((deprecated("use +logFlurryPaymentTransactionParamsWithTransactionId:productId:quantity:price:currency:productName:transactionState:userDefinedParams:statusCallback:")));
/*!
* @brief Records Apple store IAP transaction params and user defined transaction params manually.
* @since 11.0.0
*
* @param transactionId a string Id for this IAP transaction
* @param productId a string Id for this IAP transaction product
* @param quantity an integer representation of quantity of items purchased
* @param price a float representation of price of the item
* @param currency a string representation of currency of the transaction
* @param productName a string representation of product name
* @param transactionState an enum to convert transaction state to integer: 0:Purchasing, 1:Success, 2:Failure, 3:Restored, 4:Deferred
* @param transactionParams a dictionary of user defined transaction params to record
* @param statusCallback a callback gettign called when the status of ID that is associated with the event
*
*/
+ (void) logFlurryPaymentTransactionParamsWithTransactionId:(nonnull NSString *)transactionId
productId:(nonnull NSString *)productId
quantity:(nonnull NSUInteger*)quantity
price:(nonnull NSDecimalNumber*)price
currency:(nonnull NSString *)currency
productName:(nonnull NSString *)productName
transactionState:(FlurryPaymentTransactionState)transactionState
userDefinedParams:(nullable NSDictionary *)transactionParams
statusCallback:(nullable void(^)(FlurryTransactionRecordStatus))statusCallback;
#pragma mark - Timed Event Logging
@ -1112,89 +1152,6 @@ typedef enum {
+ (void)leaveBreadcrumb:(nonnull NSString*)breadcrumb;
//@}
#pragma mark - Page view methods
#if !TARGET_OS_TV
/** @name Page View Methods
* Count page views.
*/
//@{
/*!
* @brief Automatically track page views on a @c UINavigationController or @c UITabBarController.
* @since 4.3
*
* @deprecated since 10.0.0.
* This method will be removed in a future version of the SDK.
*
* This method increments the page view count for a session based on traversing a UINavigationController
* or UITabBarController. The page view count is only a counter for the number of transitions in your
* app. It does not associate a name with the page count. To associate a name with a count of occurences
* see #logEvent:.
*
* @note If you need to release passed target, you should call counterpart method + (void)stopLogPageViewsForTarget:(id)target before;
*
* @see #logPageView for details on explictly incrementing page view count.
*
* @code
* -(void) trackViewsFromTabBar:(UITabBarController*) tabBar
{
[Flurry logAllPageViewsForTarget:tabBar];
}
* @endcode
*
* @param target The navigation or tab bar controller.
*/
+ (void)logAllPageViewsForTarget:(nullable id)target __attribute__ ((deprecated));
/*!
* @brief Stops logging page views on previously observed with logAllPageViewsForTarget: @c UINavigationController or @c UITabBarController.
* @since 4.3
*
* @deprecated since 10.0.0.
* This method will be removed in a future version of the SDK.
*
* Call this method before instance of @c UINavigationController or @c UITabBarController observed with logAllPageViewsForTarget: is released.
*
* @code
* -(void) dealloc
{
[Flurry stopLogPageViewsForTarget:_tabBarController];
[_tabBarController release];
[super dealloc];
}
* @endcode
*
* @param target The navigation or tab bar controller.
*/
+ (void)stopLogPageViewsForTarget:(nullable id)target __attribute__ ((deprecated));
/*!
* @brief Explicitly track a page view during a session.
* @since 2.7
*
* @deprecated since 10.0.0.
* This method will be removed in a future version of the SDK.
*
* This method increments the page view count for a session when invoked. It does not associate a name
* with the page count. To associate a name with a count of occurences see #logEvent:.
*
* @see #logAllPageViews for details on automatically incrementing page view count based on user
* traversing navigation or tab bar controller.
*
* @code
* -(void) trackView
{
[Flurry logPageView];
}
* @endcode
*
*/
+ (void)logPageView __attribute__ ((deprecated));
//@}
#endif
#pragma mark - TVML JSContext
#if TARGET_OS_TV

View file

@ -24,6 +24,7 @@
*
* @param consentStrings NSDictionary* <NSString*,NSString*> => <consent sting format , consent string>.
*
* @note The values for ConsentStrings should be of correct base64url-encoded representation.
* @note ConsentStrings must be provided if "isGDPRScope" is set to YES for the consent information to be valid
*
*/

View file

@ -0,0 +1,50 @@
//
// FlurrySKAdNetwork.h
// SingularAdvertiserSampleApp
//
// Created by Hunter Hays on 7/22/20.
//
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface FlurrySKAdNetwork : NSObject
typedef NS_ENUM(NSUInteger, FlurryConversionValueEventType) {
NoEvent = 0, //0000
Registration = 1, //0001
Login, //0010
Subscription, //0100
InAppPurchase // 1000
};
/*!
*@brief Call this api to allow Flurry to set your conversion value.
* The final conversion value is a decimal number between 0-63.
* The conversion value is calculated from a 6 bit binary number.
* The first two bits represent days of user retention from 0-3 days
* The last four bits represent a true false state indicating if the user has completed the post install event.
* @since 11.0.0
*
*
* @param event Event name using the FlurryConversionValueEventType defined above.
*
*/
+ (void) flurryUpdateConversionValueWithEvent: (FlurryConversionValueEventType) event API_AVAILABLE(ios(14.0));
/*!
*@brief Call this api to send your conversion value to Flurry. You must calculate the conversion value yourself.
*
* @since 11.0.0
*
*
* @param conversionValue The conversion value is a decimal number between 0-63.
*/
+ (void) flurryUpdateConversionValue: (NSInteger) conversionValue API_AVAILABLE(ios(14.0));
@end
NS_ASSUME_NONNULL_END

View file

@ -0,0 +1,125 @@
//
// FlurryUserProperties.h
// Flurry
//
// Created by Hunter Hays on 4/11/19.
// Copyright © 2019 Oath Inc. All rights reserved.
//
/*
* Standard User Property: Preferred Currency.
* Standard User Property: Currency Preference.
* Follow ISO 4217: https://en.wikipedia.org/wiki/ISO_4217
* E.g., "USD", "EUR", "JPY", "CNY", ...
*/
extern NSString * _Nonnull const FlurryPropertyCurrencyPreference;
/*
* Standard User Property: Purchaser.
* E.g., "true" or "false"
*/
extern NSString * _Nonnull const FlurryPropertyPurchaser;
/*
* Standard User Property: Registered user.
* E.g., "true" or "false"
*/
extern NSString * _Nonnull const FlurryPropertyRegisteredUser;
/*
* Standard User Property: Subscriber.
* E.g., "true" or "false"
*/
extern NSString * _Nonnull const FlurryPropertySubscriber;
@interface FlurryUserProperties : NSObject
/*!
*@brief Exactly set or replace any state for the property.
* An empty NSArray clears the property state.
* @since 10.0.0
*
*
* @param propertyName property name
* @param propertyValues list of property values
*/
+ (void) set:(nonnull NSString*) propertyName values:(nonnull NSArray*) propertyValues;
/*!
*@brief Exactly set or replace any state for the property.
* This api allows passing in a single NSString value.
* @since 10.0.0
*
*
* @param propertyName property name
* @param propertyValue single property value
*/
+ (void) set:(nonnull NSString*) propertyName value:(nonnull NSString*) propertyValue;
/*!
* @brief Extend or create a property
* Adding values already included in the state has no effect and does not error.
* @since 10.0.0
*
*
* @param propertyName property name
* @param propertyValues list of property values
*/
+ (void) add:(nonnull NSString*) propertyName values:(nonnull NSArray*) propertyValues;
/*!
* @brief Extend or create a property
* Adding values already included in the state has no effect and does not error.
* @since 10.0.0
*
*
* @param propertyName property name
* @param propertyValue single property value
*/
+ (void) add:(nonnull NSString*) propertyName value:(nonnull NSString*) propertyValue;
/*!
* @brief Reduce any property.
* Removing values not already included in the state has no effect and does not error
* @since 10.0.0
*
*
* @param propertyName property name
* @param propertyValues list of property values
*/
+ (void) remove:(nonnull NSString*) propertyName values:(nonnull NSArray*) propertyValues;
/*!
* @brief Reduce any property.
* Removing values not already included in the state has no effect and does not error
* @since 10.0.0
*
*
* @param propertyName property name
* @param propertyValue single property value
*/
+ (void) remove:(nonnull NSString*) propertyName value:(nonnull NSString*) propertyValue;
/*!
* @brief Removes all property values for the property
* @since 10.0.0
*
*
* @param propertyName property name
*/
+ (void) remove:(nonnull NSString*) propertyName;
/*!
* @brief Exactly set, or replace if any previously exists, any state for the property to a single true state.
* Implies that value is boolean and should only be flagged or removed.
* @since 10.0.0
*
*
* @param propertyName property name
*/
+ (void) flag:(nonnull NSString*) propertyName;
@end

View file

@ -61,7 +61,7 @@ To use FlurrySDK for Apple Watch 2.x Extension:
```ruby
target 'Your Apple Watch 2.x Extension Target' do
platform :watchos, '2.0'
pod 'Flurry-iOS-SDK/FlurrySDK'
pod 'Flurry-iOS-SDK/FlurryWatchOSSDK'
end
```

View file

@ -56,7 +56,7 @@ PODS:
- GoogleUtilities/Environment (~> 6.6)
- GoogleUtilities/UserDefaults (~> 6.6)
- PromisesObjC (~> 1.2)
- Flurry-iOS-SDK/FlurrySDK (10.1.0)
- Flurry-iOS-SDK/FlurrySDK (11.1.0)
- GoogleAppMeasurement (6.6.0):
- GoogleUtilities/AppDelegateSwizzler (~> 6.0)
- GoogleUtilities/MethodSwizzler (~> 6.0)
@ -126,7 +126,7 @@ DEPENDENCIES:
- FBSDKLoginKit (= 5.15.1)
- Firebase/Analytics (= 6.26.0)
- Firebase/Crashlytics (= 6.26.0)
- Flurry-iOS-SDK/FlurrySDK (= 10.1)
- Flurry-iOS-SDK/FlurrySDK (= 11.1)
- MoPub-FacebookAudienceNetwork-Adapters (= 5.9.0)
- mopub-ios-sdk (= 5.12)
- Pushwoosh (= 5.16.0)
@ -169,7 +169,7 @@ SPEC CHECKSUMS:
FirebaseCoreDiagnosticsInterop: 296e2c5f5314500a850ad0b83e9e7c10b011a850
FirebaseCrashlytics: a87cce5746d3335995bd18b1b60d073cd05a6920
FirebaseInstallations: 6f5f680e65dc374397a483c32d1799ba822a395b
Flurry-iOS-SDK: be6bfad47f3b3c15a38b5e396935ef74512f1c38
Flurry-iOS-SDK: 88c0399d6d276325dc9f74f6183c1070e6c3f21e
GoogleAppMeasurement: 67458367830514fb20fd9e233496f1eef9d90185
GoogleDataTransport: 9a8a16f79feffc7f42096743de2a7c4815e84020
GoogleDataTransportCCTSupport: 489c1265d2c85b68187a83a911913d190012158d
@ -180,6 +180,6 @@ SPEC CHECKSUMS:
PromisesObjC: b48e0338dbbac2207e611750777895f7a5811b75
Pushwoosh: 6cba171e52f3f7b8ccd280f492a5831deac2f594
PODFILE CHECKSUM: 8a9705a6477e83ec21530a12f6522770e57f6ca4
PODFILE CHECKSUM: 6a5506aaa77abf026437e209f61e422241c8e153
COCOAPODS: 1.8.3
COCOAPODS: 1.9.3

File diff suppressed because it is too large Load diff

View file

@ -15,7 +15,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>10.1.0</string>
<string>11.1.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>

View file

@ -13,7 +13,9 @@
#import "Flurry.h"
#import "FlurrySessionBuilder.h"
#import "FlurryConsent.h"
#import "FlurryUserProperties.h"
#import "FlurryCCPA.h"
#import "FlurrySKAdNetwork.h"
FOUNDATION_EXPORT double Flurry_iOS_SDKVersionNumber;
FOUNDATION_EXPORT const unsigned char Flurry_iOS_SDKVersionString[];

View file

@ -1,7 +1,7 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Flurry-iOS-SDK
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Flurry-iOS-SDK/Flurry"
OTHER_LDFLAGS = $(inherited) -l"Flurry_10.1.0" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit"
OTHER_LDFLAGS = $(inherited) -l"Flurry_11.1.0" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View file

@ -1,7 +1,7 @@
CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Flurry-iOS-SDK
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1
LIBRARY_SEARCH_PATHS = $(inherited) "${PODS_ROOT}/Flurry-iOS-SDK/Flurry"
OTHER_LDFLAGS = $(inherited) -l"Flurry_10.1.0" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit"
OTHER_LDFLAGS = $(inherited) -l"Flurry_11.1.0" -framework "Foundation" -framework "Security" -framework "SystemConfiguration" -framework "UIKit"
PODS_BUILD_DIR = ${BUILD_DIR}
PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)
PODS_ROOT = ${SRCROOT}

View file

@ -46,8 +46,8 @@ install_framework()
fi
# Use filter instead of exclude so missing patterns don't throw errors.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${destination}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${destination}"
local basename
basename="$(basename -s .framework "$1")"
@ -84,27 +84,29 @@ install_framework()
# Copies and strips a vendored dSYM
install_dsym() {
local source="$1"
warn_missing_arch=${2:-true}
if [ -r "$source" ]; then
# Copy the dSYM into a the targets temp dir.
# Copy the dSYM into the targets temp dir.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${source}\" \"${DERIVED_FILES_DIR}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${source}" "${DERIVED_FILES_DIR}"
local basename
basename="$(basename -s .framework.dSYM "$source")"
binary="${DERIVED_FILES_DIR}/${basename}.framework.dSYM/Contents/Resources/DWARF/${basename}"
basename="$(basename -s .dSYM "$source")"
binary_name="$(ls "$source/Contents/Resources/DWARF")"
binary="${DERIVED_FILES_DIR}/${basename}.dSYM/Contents/Resources/DWARF/${binary_name}"
# Strip invalid architectures so "fat" simulator / device frameworks work on device
if [[ "$(file "$binary")" == *"Mach-O "*"dSYM companion"* ]]; then
strip_invalid_archs "$binary"
strip_invalid_archs "$binary" "$warn_missing_arch"
fi
if [[ $STRIP_BINARY_RETVAL == 1 ]]; then
# Move the stripped file into its final destination.
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.framework.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
echo "rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter \"- CVS/\" --filter \"- .svn/\" --filter \"- .git/\" --filter \"- .hg/\" --filter \"- Headers\" --filter \"- PrivateHeaders\" --filter \"- Modules\" \"${DERIVED_FILES_DIR}/${basename}.framework.dSYM\" \"${DWARF_DSYM_FOLDER_PATH}\""
rsync --delete -av "${RSYNC_PROTECT_TMP_FILES[@]}" --links --filter "- CVS/" --filter "- .svn/" --filter "- .git/" --filter "- .hg/" --filter "- Headers" --filter "- PrivateHeaders" --filter "- Modules" "${DERIVED_FILES_DIR}/${basename}.dSYM" "${DWARF_DSYM_FOLDER_PATH}"
else
# The dSYM was not stripped at all, in this case touch a fake folder so the input/output paths from Xcode do not reexecute this script because the file is missing.
touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.framework.dSYM"
touch "${DWARF_DSYM_FOLDER_PATH}/${basename}.dSYM"
fi
fi
}
@ -135,13 +137,16 @@ code_sign_if_enabled() {
# Strip invalid architectures
strip_invalid_archs() {
binary="$1"
warn_missing_arch=${2:-true}
# Get architectures for current target binary
binary_archs="$(lipo -info "$binary" | rev | cut -d ':' -f1 | awk '{$1=$1;print}' | rev)"
# Intersect them with the architectures we are building for
intersected_archs="$(echo ${ARCHS[@]} ${binary_archs[@]} | tr ' ' '\n' | sort | uniq -d)"
# If there are no archs supported by this binary then warn the user
if [[ -z "$intersected_archs" ]]; then
echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
if [[ "$warn_missing_arch" == "true" ]]; then
echo "warning: [CP] Vendored binary '$binary' contains architectures ($binary_archs) none of which match the current build architectures ($ARCHS)."
fi
STRIP_BINARY_RETVAL=0
return
fi
@ -159,6 +164,37 @@ strip_invalid_archs() {
STRIP_BINARY_RETVAL=1
}
install_artifact() {
artifact="$1"
base="$(basename "$artifact")"
case $base in
*.framework)
install_framework "$artifact"
;;
*.dSYM)
# Suppress arch warnings since XCFrameworks will include many dSYM files
install_dsym "$artifact" "false"
;;
*.bcsymbolmap)
install_bcsymbolmap "$artifact"
;;
*)
echo "error: Unrecognized artifact "$artifact""
;;
esac
}
copy_artifacts() {
file_list="$1"
while read artifact; do
install_artifact "$artifact"
done <$file_list
}
ARTIFACT_LIST_FILE="${BUILT_PRODUCTS_DIR}/cocoapods-artifacts-${CONFIGURATION}.txt"
if [ -r "${ARTIFACT_LIST_FILE}" ]; then
copy_artifacts "${ARTIFACT_LIST_FILE}"
fi
if [[ "$CONFIGURATION" == "Debug" ]]; then
install_framework "${BUILT_PRODUCTS_DIR}/FBSDKCoreKit/FBSDKCoreKit.framework"