Skip to content

Commit 4ff99a8

Browse files
authored
Merge pull request #446 from adjust/v4222
Version 4.22.2
2 parents 190e4e8 + b6dbe62 commit 4ff99a8

24 files changed

+360
-50
lines changed

.github/workflows/build.yaml

Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
on:
2+
create:
3+
tags:
4+
- v*
5+
name: Build framework
6+
jobs:
7+
static:
8+
name: Build static SDK
9+
runs-on: macOS-latest
10+
steps:
11+
- uses: actions/checkout@v2
12+
- name: Build
13+
run: |
14+
mkdir -p frameworks/static
15+
xcodebuild -target AdjustStatic -configuration Release clean build
16+
17+
mkdir AdjustSdkStatic
18+
mv frameworks/static/* AdjustSdkStatic
19+
zip -ry AdjustSdkStatic.framework.zip AdjustSdkStatic/*
20+
- name: Upload files
21+
uses: actions/upload-artifact@v2
22+
with:
23+
name: static_framework
24+
path: AdjustSdkStatic.framework.zip
25+
tvOS:
26+
name: Build Static tvOS SDK
27+
runs-on: macOS-latest
28+
steps:
29+
- uses: actions/checkout@v2
30+
- name: Universal tvOS SDK
31+
run: |
32+
mkdir -p frameworks/static_tvos
33+
xcodebuild -configuration Release -target AdjustSdkTv -arch x86_64 -sdk appletvsimulator clean build
34+
xcodebuild -configuration Release -target AdjustSdkTv -arch arm64 -sdk appletvos build
35+
cp -Rv build/Release-appletvos/AdjustSdkTv.framework frameworks/static_tvos
36+
lipo -create -output frameworks/static_tvos/AdjustSdkTv.framework/AdjustSdkTv build/Release-appletvos/AdjustSdkTv.framework/AdjustSdkTv build/Release-appletvsimulator/AdjustSdkTv.framework/AdjustSdkTv
37+
38+
mkdir AdjustSdkTvStatic
39+
mv frameworks/static_tvos/* AdjustSdkTvStatic
40+
zip -ry AdjustSdkTvStatic.framework.zip AdjustSdkTvStatic/*
41+
- name: Upload files
42+
uses: actions/upload-artifact@v2
43+
with:
44+
name: universal_tvos
45+
path: AdjustSdkTvStatic.framework.zip
46+
47+
dynamic_ios_tvos:
48+
name: Build dynamic iOS and tvOS targets with Carthage
49+
runs-on: macOS-latest
50+
steps:
51+
- uses: actions/checkout@v2
52+
- name: Install Carthage
53+
run: |
54+
brew install carthage
55+
- name: Build dynamic framework
56+
run: |
57+
mv Adjust.xcodeproj/xcshareddata/xcschemes/AdjustSdkIm.xcscheme \
58+
Adjust.xcodeproj/xcshareddata/xcschemes/AdjustSdkWebBridge.xcscheme .
59+
carthage build --no-skip-current
60+
61+
mkdir AdjustSdkDynamic
62+
mv Carthage/Build/iOS/* AdjustSdkDynamic
63+
zip -ry AdjustSdkDynamic.framework.zip AdjustSdkDynamic/*
64+
65+
mkdir AdjustSdkTvDynamic
66+
mv Carthage/Build/tvOS/* AdjustSdkTvDynamic
67+
zip -ry AdjustSdkTvDynamic.framework.zip AdjustSdkTvDynamic/*
68+
- name: Upload iOS
69+
uses: actions/upload-artifact@v2
70+
with:
71+
name: dynamic_ios
72+
path: AdjustSdkDynamic.framework.zip
73+
- name: Upload tvOS
74+
uses: actions/upload-artifact@v2
75+
with:
76+
name: dynamic_tvos
77+
path: AdjustSdkTvDynamic.framework.zip
78+
79+
dynamic_imessage:
80+
name: Build dynamic iMessage target with Carthage
81+
runs-on: macOS-latest
82+
steps:
83+
- uses: actions/checkout@v2
84+
- name: Install Carthage
85+
run: |
86+
brew install carthage
87+
- name: Build dynamic framework
88+
run: |
89+
mv Adjust.xcodeproj/xcshareddata/xcschemes/*.xcscheme .
90+
mv AdjustSdkIm.xcscheme Adjust.xcodeproj/xcshareddata/xcschemes
91+
92+
carthage build --no-skip-current
93+
94+
mkdir AdjustSdkImDynamic
95+
mv Carthage/Build/iOS/* AdjustSdkImDynamic
96+
zip -ry AdjustSdkIm.framework.zip AdjustSdkImDynamic/*
97+
- name: Upload framework
98+
uses: actions/upload-artifact@v2
99+
with:
100+
name: dynamic_imessage
101+
path: AdjustSdkIm.framework.zip
102+
103+
dynamic_webbridge:
104+
name: Build dynamic WebBridge target with Carthage
105+
runs-on: macOS-latest
106+
steps:
107+
- uses: actions/checkout@v2
108+
- name: Install Carthage
109+
run: |
110+
brew install carthage
111+
- name: Build dynamic framework
112+
run: |
113+
mv Adjust.xcodeproj/xcshareddata/xcschemes/*.xcscheme .
114+
mv AdjustSdkWebBridge.xcscheme Adjust.xcodeproj/xcshareddata/xcschemes
115+
116+
carthage build --no-skip-current
117+
mkdir AdjustSdkWebBridgeDynamic
118+
mv Carthage/Build/iOS/* AdjustSdkWebBridgeDynamic
119+
zip -ry AdjustSdkWebBridge.framework.zip AdjustSdkWebBridgeDynamic/*
120+
- name: Upload framework
121+
uses: actions/upload-artifact@v2
122+
with:
123+
name: dynamic_webbridge
124+
path: AdjustSdkWebBridge.framework.zip
125+
126+
release:
127+
name: Create new release and upload assets
128+
runs-on: ubuntu-latest
129+
needs: [static, tvOS, dynamic_ios_tvos, dynamic_imessage, dynamic_webbridge]
130+
steps:
131+
- name: Create Release
132+
id: create_release
133+
uses: actions/create-release@v1
134+
env:
135+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
136+
with:
137+
tag_name: ${{ github.ref }}
138+
release_name: Version ${{ github.ref }}
139+
draft: true
140+
prerelease: false
141+
142+
- name: Download all frameworks
143+
uses: actions/download-artifact@v2
144+
with:
145+
path: frameworks
146+
147+
- name: Upload static framework
148+
uses: actions/upload-release-asset@v1
149+
env:
150+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
151+
with:
152+
upload_url: ${{ steps.create_release.outputs.upload_url }}
153+
asset_path: frameworks/static_framework/AdjustSdkStatic.framework.zip
154+
asset_name: AdjustSdkStatic.framework.zip
155+
asset_content_type: application/zip
156+
157+
- name: Upload tvOS framework
158+
uses: actions/upload-release-asset@v1
159+
env:
160+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
161+
with:
162+
upload_url: ${{ steps.create_release.outputs.upload_url }}
163+
asset_path: frameworks/universal_tvos/AdjustSdkTvStatic.framework.zip
164+
asset_name: AdjustSdkTvStatic.framework.zip
165+
asset_content_type: application/zip
166+
167+
- name: Upload dynamic iOS framework
168+
uses: actions/upload-release-asset@v1
169+
env:
170+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
171+
with:
172+
upload_url: ${{ steps.create_release.outputs.upload_url }}
173+
asset_path: frameworks/dynamic_ios/AdjustSdkDynamic.framework.zip
174+
asset_name: AdjustSdkDynamic.framework.zip
175+
asset_content_type: application/zip
176+
177+
- name: Upload dynamic tvOS framework
178+
uses: actions/upload-release-asset@v1
179+
env:
180+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
181+
with:
182+
upload_url: ${{ steps.create_release.outputs.upload_url }}
183+
asset_path: frameworks/dynamic_tvos/AdjustSdkTvDynamic.framework.zip
184+
asset_name: AdjustSdkTvDynamic.framework.zip
185+
asset_content_type: application/zip
186+
187+
- name: Upload dynamic iMessage framework
188+
uses: actions/upload-release-asset@v1
189+
env:
190+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
191+
with:
192+
upload_url: ${{ steps.create_release.outputs.upload_url }}
193+
asset_path: frameworks/dynamic_imessage/AdjustSdkIm.framework.zip
194+
asset_name: AdjustSdkIm.framework.zip
195+
asset_content_type: application/zip
196+
197+
- name: Upload dynamic WebBridge framework
198+
uses: actions/upload-release-asset@v1
199+
env:
200+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
201+
with:
202+
upload_url: ${{ steps.create_release.outputs.upload_url }}
203+
asset_path: frameworks/dynamic_webbridge/AdjustSdkWebBridge.framework.zip
204+
asset_name: AdjustSdkWebBridge.framework.zip
205+
asset_content_type: application/zip
206+

Adjust.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
Pod::Spec.new do |s|
22
s.name = "Adjust"
3-
s.version = "4.22.1"
3+
s.version = "4.22.2"
44
s.summary = "This is the iOS SDK of adjust. You can read more about it at http://adjust.com."
55
s.homepage = "https://github.com/adjust/ios_sdk"
66
s.license = { :type => 'MIT', :file => 'MIT-LICENSE' }
77
s.author = { "Christian Wellenbrock" => "[email protected]" }
8-
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.22.1" }
8+
s.source = { :git => "https://github.com/adjust/ios_sdk.git", :tag => "v4.22.2" }
99
s.ios.deployment_target = '6.0'
1010
s.tvos.deployment_target = '9.0'
1111
s.framework = 'SystemConfiguration'

Adjust/ADJActivityHandler.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,3 +127,5 @@
127127
- (void)resetSessionPartnerParametersI:(ADJActivityHandler *)selfI;
128128

129129
@end
130+
131+
extern NSString * const ADJiAdPackageKey;

Adjust/ADJActivityHandler.m

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
#import "ADJSdkClickHandler.h"
2222
#import "ADJUserDefaults.h"
2323

24+
NSString * const ADJiAdPackageKey = @"iad3";
25+
2426
typedef void (^activityHandlerBlockI)(ADJActivityHandler * activityHandler);
2527

2628
static NSString * const kActivityStateFilename = @"AdjustIoActivityState";
@@ -109,6 +111,7 @@ typedef NS_ENUM(NSInteger, AdjADClientError) {
109111
AdjADClientErrorLimitAdTracking = 1,
110112
AdjADClientErrorMissingData = 2,
111113
AdjADClientErrorCorruptResponse = 3,
114+
AdjCustomErrorTimeout = 100,
112115
};
113116

114117
#pragma mark -
@@ -400,14 +403,19 @@ - (void)setAttributionDetails:(NSDictionary *)attributionDetails
400403
// - AdjADClientErrorUnknown
401404
// - AdjADClientErrorMissingData
402405
// - AdjADClientErrorCorruptResponse
406+
// - AdjCustomErrorTimeout
403407
// apply following retry logic:
404408
// - 1st retry after 5 seconds
405409
// - 2nd retry after 2 seconds
406410
// - 3rd retry after 2 seconds
407411
switch (error.code) {
408412
case AdjADClientErrorUnknown:
409413
case AdjADClientErrorMissingData:
410-
case AdjADClientErrorCorruptResponse: {
414+
case AdjADClientErrorCorruptResponse:
415+
case AdjCustomErrorTimeout: {
416+
417+
[self saveiAdErrorCode:error.code];
418+
411419
int64_t iAdRetryDelay = 0;
412420
switch (self.iAdRetriesLeft) {
413421
case 2:
@@ -420,7 +428,7 @@ - (void)setAttributionDetails:(NSDictionary *)attributionDetails
420428
self.iAdRetriesLeft = self.iAdRetriesLeft - 1;
421429
dispatch_time_t retryTime = dispatch_time(DISPATCH_TIME_NOW, iAdRetryDelay);
422430
dispatch_after(retryTime, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
423-
[self checkForiAd];
431+
[self checkForiAdI:self];
424432
});
425433
return;
426434
}
@@ -469,6 +477,31 @@ - (void)setAttributionDetails:(NSDictionary *)attributionDetails
469477
}];
470478
}
471479

480+
- (void)saveiAdErrorCode:(NSInteger)code {
481+
NSString *codeKey;
482+
switch (code) {
483+
case AdjADClientErrorUnknown:
484+
codeKey = @"AdjADClientErrorUnknown";
485+
break;
486+
case AdjADClientErrorMissingData:
487+
codeKey = @"AdjADClientErrorMissingData";
488+
break;
489+
case AdjADClientErrorCorruptResponse:
490+
codeKey = @"AdjADClientErrorCorruptResponse";
491+
break;
492+
case AdjCustomErrorTimeout:
493+
codeKey = @"AdjCustomErrorTimeout";
494+
break;
495+
default:
496+
codeKey = @"";
497+
break;
498+
}
499+
500+
if (![codeKey isEqualToString:@""]) {
501+
[ADJUserDefaults saveiAdErrorKey:codeKey];
502+
}
503+
}
504+
472505
- (void)sendIad3ClickPackage:(ADJActivityHandler *)selfI
473506
attributionDetails:(NSDictionary *)attributionDetails
474507
{
@@ -498,7 +531,7 @@ - (void)sendIad3ClickPackage:(ADJActivityHandler *)selfI
498531

499532
clickBuilder.attributionDetails = attributionDetails;
500533

501-
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:@"iad3"];
534+
ADJActivityPackage *clickPackage = [clickBuilder buildClickPackage:ADJiAdPackageKey];
502535
[selfI.sdkClickHandler sendSdkClick:clickPackage];
503536
}
504537

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

1379-
- (void)checkForiAd {
1380-
[ADJUtil launchInQueue:self.internalQueue
1381-
selfInject:self
1382-
block:^(ADJActivityHandler *selfI) {
1383-
[selfI checkForiAdI:selfI];
1384-
}];
1385-
}
1386-
13871412
- (void)checkForiAdI:(ADJActivityHandler *)selfI {
1388-
[[UIDevice currentDevice] adjCheckForiAd:selfI];
1413+
[[UIDevice currentDevice] adjCheckForiAd:selfI queue:selfI.internalQueue];
13891414
}
13901415

13911416
- (void)setOfflineModeI:(ADJActivityHandler *)selfI

Adjust/ADJAdditions/UIDevice+ADJAdditions.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,5 @@
2020
- (NSString *)adjDeviceName;
2121
- (NSString *)adjCreateUuid;
2222
- (NSString *)adjVendorId;
23-
- (void)adjCheckForiAd:(ADJActivityHandler *)activityHandler;
23+
- (void)adjCheckForiAd:(ADJActivityHandler *)activityHandler queue:(dispatch_queue_t)queue;
2424
@end

0 commit comments

Comments
 (0)