Skip to content

Commit

Permalink
Merge pull request #446 from adjust/v4222
Browse files Browse the repository at this point in the history
Version 4.22.2
  • Loading branch information
uerceg authored Jul 24, 2020
2 parents 190e4e8 + b6dbe62 commit 4ff99a8
Show file tree
Hide file tree
Showing 24 changed files with 360 additions and 50 deletions.
206 changes: 206 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
on:
create:
tags:
- v*
name: Build framework
jobs:
static:
name: Build static SDK
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- name: Build
run: |
mkdir -p frameworks/static
xcodebuild -target AdjustStatic -configuration Release clean build
mkdir AdjustSdkStatic
mv frameworks/static/* AdjustSdkStatic
zip -ry AdjustSdkStatic.framework.zip AdjustSdkStatic/*
- name: Upload files
uses: actions/upload-artifact@v2
with:
name: static_framework
path: AdjustSdkStatic.framework.zip
tvOS:
name: Build Static tvOS SDK
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- name: Universal tvOS SDK
run: |
mkdir -p frameworks/static_tvos
xcodebuild -configuration Release -target AdjustSdkTv -arch x86_64 -sdk appletvsimulator clean build
xcodebuild -configuration Release -target AdjustSdkTv -arch arm64 -sdk appletvos build
cp -Rv build/Release-appletvos/AdjustSdkTv.framework frameworks/static_tvos
lipo -create -output frameworks/static_tvos/AdjustSdkTv.framework/AdjustSdkTv build/Release-appletvos/AdjustSdkTv.framework/AdjustSdkTv build/Release-appletvsimulator/AdjustSdkTv.framework/AdjustSdkTv
mkdir AdjustSdkTvStatic
mv frameworks/static_tvos/* AdjustSdkTvStatic
zip -ry AdjustSdkTvStatic.framework.zip AdjustSdkTvStatic/*
- name: Upload files
uses: actions/upload-artifact@v2
with:
name: universal_tvos
path: AdjustSdkTvStatic.framework.zip

dynamic_ios_tvos:
name: Build dynamic iOS and tvOS targets with Carthage
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- name: Install Carthage
run: |
brew install carthage
- name: Build dynamic framework
run: |
mv Adjust.xcodeproj/xcshareddata/xcschemes/AdjustSdkIm.xcscheme \
Adjust.xcodeproj/xcshareddata/xcschemes/AdjustSdkWebBridge.xcscheme .
carthage build --no-skip-current
mkdir AdjustSdkDynamic
mv Carthage/Build/iOS/* AdjustSdkDynamic
zip -ry AdjustSdkDynamic.framework.zip AdjustSdkDynamic/*
mkdir AdjustSdkTvDynamic
mv Carthage/Build/tvOS/* AdjustSdkTvDynamic
zip -ry AdjustSdkTvDynamic.framework.zip AdjustSdkTvDynamic/*
- name: Upload iOS
uses: actions/upload-artifact@v2
with:
name: dynamic_ios
path: AdjustSdkDynamic.framework.zip
- name: Upload tvOS
uses: actions/upload-artifact@v2
with:
name: dynamic_tvos
path: AdjustSdkTvDynamic.framework.zip

dynamic_imessage:
name: Build dynamic iMessage target with Carthage
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- name: Install Carthage
run: |
brew install carthage
- name: Build dynamic framework
run: |
mv Adjust.xcodeproj/xcshareddata/xcschemes/*.xcscheme .
mv AdjustSdkIm.xcscheme Adjust.xcodeproj/xcshareddata/xcschemes
carthage build --no-skip-current
mkdir AdjustSdkImDynamic
mv Carthage/Build/iOS/* AdjustSdkImDynamic
zip -ry AdjustSdkIm.framework.zip AdjustSdkImDynamic/*
- name: Upload framework
uses: actions/upload-artifact@v2
with:
name: dynamic_imessage
path: AdjustSdkIm.framework.zip

dynamic_webbridge:
name: Build dynamic WebBridge target with Carthage
runs-on: macOS-latest
steps:
- uses: actions/checkout@v2
- name: Install Carthage
run: |
brew install carthage
- name: Build dynamic framework
run: |
mv Adjust.xcodeproj/xcshareddata/xcschemes/*.xcscheme .
mv AdjustSdkWebBridge.xcscheme Adjust.xcodeproj/xcshareddata/xcschemes
carthage build --no-skip-current
mkdir AdjustSdkWebBridgeDynamic
mv Carthage/Build/iOS/* AdjustSdkWebBridgeDynamic
zip -ry AdjustSdkWebBridge.framework.zip AdjustSdkWebBridgeDynamic/*
- name: Upload framework
uses: actions/upload-artifact@v2
with:
name: dynamic_webbridge
path: AdjustSdkWebBridge.framework.zip

release:
name: Create new release and upload assets
runs-on: ubuntu-latest
needs: [static, tvOS, dynamic_ios_tvos, dynamic_imessage, dynamic_webbridge]
steps:
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Version ${{ github.ref }}
draft: true
prerelease: false

- name: Download all frameworks
uses: actions/download-artifact@v2
with:
path: frameworks

- name: Upload static framework
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: frameworks/static_framework/AdjustSdkStatic.framework.zip
asset_name: AdjustSdkStatic.framework.zip
asset_content_type: application/zip

- name: Upload tvOS framework
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: frameworks/universal_tvos/AdjustSdkTvStatic.framework.zip
asset_name: AdjustSdkTvStatic.framework.zip
asset_content_type: application/zip

- name: Upload dynamic iOS framework
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: frameworks/dynamic_ios/AdjustSdkDynamic.framework.zip
asset_name: AdjustSdkDynamic.framework.zip
asset_content_type: application/zip

- name: Upload dynamic tvOS framework
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: frameworks/dynamic_tvos/AdjustSdkTvDynamic.framework.zip
asset_name: AdjustSdkTvDynamic.framework.zip
asset_content_type: application/zip

- name: Upload dynamic iMessage framework
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: frameworks/dynamic_imessage/AdjustSdkIm.framework.zip
asset_name: AdjustSdkIm.framework.zip
asset_content_type: application/zip

- name: Upload dynamic WebBridge framework
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: frameworks/dynamic_webbridge/AdjustSdkWebBridge.framework.zip
asset_name: AdjustSdkWebBridge.framework.zip
asset_content_type: application/zip

4 changes: 2 additions & 2 deletions Adjust.podspec
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
Pod::Spec.new do |s|
s.name = "Adjust"
s.version = "4.22.1"
s.version = "4.22.2"
s.summary = "This is the iOS SDK of adjust. You can read more about it at http://adjust.com."
s.homepage = "https://github.com/adjust/ios_sdk"
s.license = { :type => 'MIT', :file => 'MIT-LICENSE' }
s.author = { "Christian Wellenbrock" => "welle@adjust.com" }
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.22.1" }
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.22.2" }
s.ios.deployment_target = '6.0'
s.tvos.deployment_target = '9.0'
s.framework = 'SystemConfiguration'
Expand Down
2 changes: 2 additions & 0 deletions Adjust/ADJActivityHandler.h
Original file line number Diff line number Diff line change
Expand Up @@ -127,3 +127,5 @@
- (void)resetSessionPartnerParametersI:(ADJActivityHandler *)selfI;

@end

extern NSString * const ADJiAdPackageKey;
49 changes: 37 additions & 12 deletions Adjust/ADJActivityHandler.m
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
#import "ADJSdkClickHandler.h"
#import "ADJUserDefaults.h"

NSString * const ADJiAdPackageKey = @"iad3";

typedef void (^activityHandlerBlockI)(ADJActivityHandler * activityHandler);

static NSString * const kActivityStateFilename = @"AdjustIoActivityState";
Expand Down Expand Up @@ -109,6 +111,7 @@ typedef NS_ENUM(NSInteger, AdjADClientError) {
AdjADClientErrorLimitAdTracking = 1,
AdjADClientErrorMissingData = 2,
AdjADClientErrorCorruptResponse = 3,
AdjCustomErrorTimeout = 100,
};

#pragma mark -
Expand Down Expand Up @@ -400,14 +403,19 @@ - (void)setAttributionDetails:(NSDictionary *)attributionDetails
// - AdjADClientErrorUnknown
// - AdjADClientErrorMissingData
// - AdjADClientErrorCorruptResponse
// - AdjCustomErrorTimeout
// apply following retry logic:
// - 1st retry after 5 seconds
// - 2nd retry after 2 seconds
// - 3rd retry after 2 seconds
switch (error.code) {
case AdjADClientErrorUnknown:
case AdjADClientErrorMissingData:
case AdjADClientErrorCorruptResponse: {
case AdjADClientErrorCorruptResponse:
case AdjCustomErrorTimeout: {

[self saveiAdErrorCode:error.code];

int64_t iAdRetryDelay = 0;
switch (self.iAdRetriesLeft) {
case 2:
Expand All @@ -420,7 +428,7 @@ - (void)setAttributionDetails:(NSDictionary *)attributionDetails
self.iAdRetriesLeft = self.iAdRetriesLeft - 1;
dispatch_time_t retryTime = dispatch_time(DISPATCH_TIME_NOW, iAdRetryDelay);
dispatch_after(retryTime, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
[self checkForiAd];
[self checkForiAdI:self];
});
return;
}
Expand Down Expand Up @@ -469,6 +477,31 @@ - (void)setAttributionDetails:(NSDictionary *)attributionDetails
}];
}

- (void)saveiAdErrorCode:(NSInteger)code {
NSString *codeKey;
switch (code) {
case AdjADClientErrorUnknown:
codeKey = @"AdjADClientErrorUnknown";
break;
case AdjADClientErrorMissingData:
codeKey = @"AdjADClientErrorMissingData";
break;
case AdjADClientErrorCorruptResponse:
codeKey = @"AdjADClientErrorCorruptResponse";
break;
case AdjCustomErrorTimeout:
codeKey = @"AdjCustomErrorTimeout";
break;
default:
codeKey = @"";
break;
}

if (![codeKey isEqualToString:@""]) {
[ADJUserDefaults saveiAdErrorKey:codeKey];
}
}

- (void)sendIad3ClickPackage:(ADJActivityHandler *)selfI
attributionDetails:(NSDictionary *)attributionDetails
{
Expand Down Expand Up @@ -498,7 +531,7 @@ - (void)sendIad3ClickPackage:(ADJActivityHandler *)selfI

clickBuilder.attributionDetails = attributionDetails;

ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"iad3"];
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:ADJiAdPackageKey];
[selfI.sdkClickHandler sendSdkClick:clickPackage];
}

Expand Down Expand Up @@ -1376,16 +1409,8 @@ - (void)setEnabledI:(ADJActivityHandler *)selfI enabled:(BOOL)enabled {
unPausingMessage:@"Resuming handlers due to SDK being enabled"];
}

- (void)checkForiAd {
[ADJUtil launchInQueue:self.internalQueue
selfInject:self
block:^(ADJActivityHandler *selfI) {
[selfI checkForiAdI:selfI];
}];
}

- (void)checkForiAdI:(ADJActivityHandler *)selfI {
[[UIDevice currentDevice] adjCheckForiAd:selfI];
[[UIDevice currentDevice] adjCheckForiAd:selfI queue:selfI.internalQueue];
}

- (void)setOfflineModeI:(ADJActivityHandler *)selfI
Expand Down
2 changes: 1 addition & 1 deletion Adjust/ADJAdditions/UIDevice+ADJAdditions.h
Original file line number Diff line number Diff line change
Expand Up @@ -20,5 +20,5 @@
- (NSString *)adjDeviceName;
- (NSString *)adjCreateUuid;
- (NSString *)adjVendorId;
- (void)adjCheckForiAd:(ADJActivityHandler *)activityHandler;
- (void)adjCheckForiAd:(ADJActivityHandler *)activityHandler queue:(dispatch_queue_t)queue;
@end
Loading

0 comments on commit 4ff99a8

Please sign in to comment.