Skip to content
This repository was archived by the owner on Feb 19, 2020. It is now read-only.

Commit 753ca6f

Browse files
author
Benjamin Scholtysik (Reimold)
authored
Merge pull request #317 from bitstadium/release/4.1.0
Release/4.1.0
2 parents 2f1d36e + f31b475 commit 753ca6f

15 files changed

+131
-23
lines changed

Classes/BITCrashManager.m

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -247,10 +247,6 @@ - (instancetype)initWithAppIdentifier:(NSString *)appIdentifier appEnvironment:(
247247
_settingsFile = [_crashesDir stringByAppendingPathComponent:BITHOCKEY_CRASH_SETTINGS];
248248
_analyzerInProgressFile = [_crashesDir stringByAppendingPathComponent:BITHOCKEY_CRASH_ANALYZER];
249249

250-
if ([_fileManager fileExistsAtPath:_analyzerInProgressFile]) {
251-
NSError *error = nil;
252-
[_fileManager removeItemAtPath:_analyzerInProgressFile error:&error];
253-
}
254250

255251
if (!BITHockeyBundle() && !bit_isRunningInAppExtension()) {
256252
BITHockeyLogWarning(@"[HockeySDK] WARNING: %@ is missing, will send reports automatically!", BITHOCKEYSDK_BUNDLE);
@@ -367,7 +363,7 @@ - (void)cleanCrashReports {
367363
}
368364
}
369365

370-
- (void)persistAttachment:(BITHockeyAttachment *)attachment withFilename:(NSString *)filename {
366+
- (BOOL)persistAttachment:(BITHockeyAttachment *)attachment withFilename:(NSString *)filename {
371367
NSString *attachmentFilename = [filename stringByAppendingString:@".data"];
372368
NSMutableData *data = [[NSMutableData alloc] init];
373369
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
@@ -376,7 +372,7 @@ - (void)persistAttachment:(BITHockeyAttachment *)attachment withFilename:(NSStri
376372

377373
[archiver finishEncoding];
378374

379-
[data writeToFile:attachmentFilename atomically:YES];
375+
return [data writeToFile:attachmentFilename atomically:YES];
380376
}
381377

382378
- (void)persistUserProvidedMetaData:(BITCrashMetaData *)userProvidedMetaData {
@@ -757,6 +753,7 @@ - (void)generateTestCrash {
757753
* @param filename the crash reports temp filename
758754
*/
759755
- (void)storeMetaDataForCrashReportFilename:(NSString *)filename {
756+
BITHockeyLogVerbose(@"VERBOSE: Storing meta data for crash report with filename %@", filename);
760757
NSError *error = NULL;
761758
NSMutableDictionary *metaDict = [NSMutableDictionary dictionaryWithCapacity:4];
762759
NSString *applicationLog = @"";
@@ -771,10 +768,18 @@ - (void)storeMetaDataForCrashReportFilename:(NSString *)filename {
771768
[metaDict setObject:applicationLog forKey:kBITCrashMetaApplicationLog];
772769

773770
if ([self.delegate respondsToSelector:@selector(attachmentForCrashManager:)]) {
771+
BITHockeyLogVerbose(@"VERBOSE: Processing attachment for crash report with filename %@", filename);
774772
BITHockeyAttachment *attachment = [self.delegate attachmentForCrashManager:self];
775773

776774
if (attachment && attachment.hockeyAttachmentData) {
777-
[self persistAttachment:attachment withFilename:[_crashesDir stringByAppendingPathComponent: filename]];
775+
BOOL success = [self persistAttachment:attachment withFilename:[_crashesDir stringByAppendingPathComponent: filename]];
776+
if (!success) {
777+
BITHockeyLogError(@"ERROR: Persisting the crash attachment failed");
778+
} else {
779+
BITHockeyLogVerbose(@"VERBOSE: Crash attachment successfully persisted.");
780+
}
781+
} else {
782+
BITHockeyLogDebug(@"INFO: Crash attachment was nil");
778783
}
779784
}
780785

@@ -783,10 +788,14 @@ - (void)storeMetaDataForCrashReportFilename:(NSString *)filename {
783788
options:0
784789
error:&error];
785790
if (plist) {
786-
[plist writeToFile:[_crashesDir stringByAppendingPathComponent: [filename stringByAppendingPathExtension:@"meta"]] atomically:YES];
791+
BOOL success = [plist writeToFile:[_crashesDir stringByAppendingPathComponent: [filename stringByAppendingPathExtension:@"meta"]] atomically:YES];
792+
if (!success) {
793+
BITHockeyLogError(@"ERROR: Writing crash meta data failed.");
794+
}
787795
} else {
788796
BITHockeyLogError(@"ERROR: Writing crash meta data failed. %@", error);
789797
}
798+
BITHockeyLogVerbose(@"VERBOSE: Storing crash meta data finished.");
790799
}
791800

792801
- (BOOL)handleUserInput:(BITCrashManagerUserInput)userInput withUserProvidedMetaData:(BITCrashMetaData *)userProvidedMetaData {
@@ -837,6 +846,7 @@ - (BOOL)handleUserInput:(BITCrashManagerUserInput)userInput withUserProvidedMeta
837846
* Parse the new crash report and gather additional meta data from the app which will be stored along the crash report
838847
*/
839848
- (void) handleCrashReport {
849+
BITHockeyLogVerbose(@"VERBOSE: Handling crash report");
840850
NSError *error = NULL;
841851

842852
if (!self.plCrashReporter) return;
@@ -845,6 +855,7 @@ - (void) handleCrashReport {
845855
if (![_fileManager fileExistsAtPath:_analyzerInProgressFile]) {
846856
// mark the start of the routine
847857
[_fileManager createFileAtPath:_analyzerInProgressFile contents:nil attributes:nil];
858+
BITHockeyLogVerbose(@"VERBOSE: AnalyzerInProgress file created");
848859

849860
[self saveSettings];
850861

@@ -900,6 +911,8 @@ - (void) handleCrashReport {
900911
[self storeMetaDataForCrashReportFilename:cacheFilename];
901912
}
902913
}
914+
} else {
915+
BITHockeyLogWarning(@"WARNING: AnalyzerInProgress file found, handling crash report skipped");
903916
}
904917

905918
// Purge the report
@@ -988,6 +1001,7 @@ - (void)approveLatestCrashReport {
9881001
}
9891002

9901003
- (void)triggerDelayedProcessing {
1004+
BITHockeyLogVerbose(@"VERBOSE: Triggering delayed crash processing.");
9911005
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(invokeDelayedProcessing) object:nil];
9921006
[self performSelector:@selector(invokeDelayedProcessing) withObject:nil afterDelay:0.5];
9931007
}
@@ -1243,6 +1257,7 @@ - (void)startManager {
12431257
}
12441258

12451259
if (considerReport) {
1260+
BITHockeyLogVerbose(@"INFO: App kill detected, creating crash report.");
12461261
[self createCrashReportForAppKill];
12471262

12481263
_didCrashInLastSession = YES;
@@ -1262,6 +1277,7 @@ - (void)startManager {
12621277
[[NSUserDefaults standardUserDefaults] synchronize];
12631278

12641279
[self triggerDelayedProcessing];
1280+
BITHockeyLogVerbose(@"VERBOSE: CrashManager startManager has finished.");
12651281
}
12661282

12671283
/**

Classes/BITCrashManagerPrivate.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@
9696
- (NSString *)firstNotApprovedCrashReport;
9797

9898
- (void)persistUserProvidedMetaData:(BITCrashMetaData *)userProvidedMetaData;
99-
- (void)persistAttachment:(BITHockeyAttachment *)attachment withFilename:(NSString *)filename;
99+
- (BOOL)persistAttachment:(BITHockeyAttachment *)attachment withFilename:(NSString *)filename;
100100

101101
- (BITHockeyAttachment *)attachmentForCrashReport:(NSString *)filename;
102102

Classes/BITDomain.m

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
@implementation BITDomain
44
@synthesize envelopeTypeName = _envelopeTypeName;
55
@synthesize dataTypeName = _dataTypeName;
6+
@synthesize properties = _properties;
67

78
/// Initializes a new instance of the class.
89
- (instancetype)init {

Classes/BITEventData.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@
44

55
@property (nonatomic, copy, readonly) NSString *envelopeTypeName;
66
@property (nonatomic, copy, readonly) NSString *dataTypeName;
7+
@property (nonatomic, strong) NSDictionary *measurements;
78

89
@end

Classes/BITEventData.m

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,17 @@ @implementation BITEventData
55
@synthesize envelopeTypeName = _envelopeTypeName;
66
@synthesize dataTypeName = _dataTypeName;
77
@synthesize version = _version;
8+
@synthesize properties = _properties;
9+
@synthesize measurements = _measurements;
810

911
/// Initializes a new instance of the class.
1012
- (instancetype)init {
1113
if (self = [super init]) {
1214
_envelopeTypeName = @"Microsoft.ApplicationInsights.Event";
1315
_dataTypeName = @"EventData";
1416
_version = @2;
17+
_properties = [NSDictionary new];
18+
_measurements = [NSDictionary new];
1519
}
1620
return self;
1721
}
@@ -25,6 +29,13 @@ - (NSDictionary *)serializeToDictionary {
2529
if (self.name != nil) {
2630
[dict setObject:self.name forKey:@"name"];
2731
}
32+
if (self.properties !=nil) {
33+
[dict setObject:self.properties forKey:@"properties"];
34+
}
35+
if (self.measurements) {
36+
[dict setObject:self.measurements forKey:@"measurements"];
37+
}
38+
2839
return dict;
2940
}
3041

@@ -36,6 +47,8 @@ - (instancetype)initWithCoder:(NSCoder *)coder {
3647
_envelopeTypeName = [coder decodeObjectForKey:@"self.envelopeTypeName"];
3748
_dataTypeName = [coder decodeObjectForKey:@"self.dataTypeName"];
3849
_version = [coder decodeObjectForKey:@"self.version"];
50+
_properties = [coder decodeObjectForKey:@"self.properties"];
51+
_measurements = [coder decodeObjectForKey:@"self.measurements"];
3952
}
4053
return self;
4154
}
@@ -45,6 +58,8 @@ - (void)encodeWithCoder:(NSCoder *)coder {
4558
[coder encodeObject:self.envelopeTypeName forKey:@"self.envelopeTypeName"];
4659
[coder encodeObject:self.dataTypeName forKey:@"self.dataTypeName"];
4760
[coder encodeObject:self.version forKey:@"self.version"];
61+
[coder encodeObject:self.properties forKey:@"self.properties"];
62+
[coder encodeObject:self.measurements forKey:@"self.measurements"];
4863
}
4964

5065

Classes/BITMetricsManager.h

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,18 @@ NS_ASSUME_NONNULL_BEGIN
4040
*
4141
* @param eventName The event's name as a string.
4242
*/
43-
- (void)trackEventWithName:(NSString *)eventName;
43+
- (void)trackEventWithName:(nonnull NSString *)eventName;
44+
45+
/**
46+
* This method allows to track an event that happened in your app.
47+
* Remember to choose meaningful event names to have the best experience when diagnosing your app
48+
* in the web portal.
49+
*
50+
* @param eventName the name of the event, which should be tracked.
51+
* @param properties key value pairs with additional info about the event.
52+
* @param measurements key value pairs, which contain custom metrics.
53+
*/
54+
- (void)trackEventWithName:(nonnull NSString *)eventName properties:(nullable NSDictionary<NSString *, NSString *> *)properties measurements:(nullable NSDictionary<NSString *, NSNumber *> *)measurements;
4455

4556
@end
4657

Classes/BITMetricsManager.m

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ - (void)trackSessionWithState:(BITSessionState)state {
176176

177177
#pragma mark Events
178178

179-
- (void)trackEventWithName:(NSString *)eventName {
179+
- (void)trackEventWithName:(nonnull NSString *)eventName {
180180
if (!eventName) { return; }
181181
if (self.disabled) {
182182
BITHockeyLogDebug(@"INFO: BITMetricsManager is disabled, therefore this tracking call was ignored.");
@@ -192,6 +192,24 @@ - (void)trackEventWithName:(NSString *)eventName {
192192
});
193193
}
194194

195+
- (void)trackEventWithName:(nonnull NSString *)eventName properties:(nullable NSDictionary<NSString *, NSString *> *)properties measurements:(nullable NSDictionary<NSString *, NSNumber *> *)measurements {
196+
if (!eventName) { return; }
197+
if (self.disabled) {
198+
BITHockeyLogDebug(@"INFO: BITMetricsManager is disabled, therefore this tracking call was ignored.");
199+
return;
200+
}
201+
202+
__weak typeof(self) weakSelf = self;
203+
dispatch_async(self.metricsEventQueue, ^{
204+
typeof(self) strongSelf = weakSelf;
205+
BITEventData *eventData = [BITEventData new];
206+
[eventData setName:eventName];
207+
[eventData setProperties:properties];
208+
[eventData setMeasurements:measurements];
209+
[strongSelf trackDataItem:eventData];
210+
});
211+
}
212+
195213
#pragma mark Track DataItem
196214

197215
- (void)trackDataItem:(BITTelemetryData *)dataItem {

Classes/BITTelemetryData.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ NS_ASSUME_NONNULL_BEGIN
1111

1212
@property (nonatomic, copy) NSNumber *version;
1313
@property (nonatomic, copy) NSString *name;
14+
@property (nonatomic, strong) NSDictionary *properties;
1415

1516
@end
1617

Classes/BITTelemetryData.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ - (instancetype)initWithCoder:(NSCoder *)coder {
1818
if(self) {
1919
_version = [coder decodeObjectForKey:@"self.version"];
2020
_name = [coder decodeObjectForKey:@"self.name"];
21+
_properties = [coder decodeObjectForKey:@"self.properties"];
2122
}
2223
return self;
2324
}
@@ -26,6 +27,7 @@ - (void)encodeWithCoder:(NSCoder *)coder {
2627
[super encodeWithCoder:coder];
2728
[coder encodeObject:self.version forKey:@"self.version"];
2829
[coder encodeObject:self.name forKey:@"self.name"];
30+
[coder encodeObject:self.properties forKey:@"self.properties"];
2931
}
3032

3133
@end

HockeySDK-Source.podspec

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'HockeySDK-Source'
3-
s.version = '4.1.0-beta.2'
3+
s.version = '4.1.0'
44

55
s.summary = 'Collect live crash reports, get feedback from your users, distribute your betas, and analyze your test coverage with HockeyApp.'
66
s.description = <<-DESC
@@ -25,7 +25,7 @@ Pod::Spec.new do |s|
2525
s.frameworks = 'AssetsLibrary', 'CoreGraphics', 'CoreTelephony', 'CoreText', 'MobileCoreServices', 'Photos', 'QuartzCore', 'QuickLook', 'Security', 'SystemConfiguration', 'UIKit'
2626
s.libraries = 'c++', 'z'
2727
s.vendored_frameworks = 'Vendor/CrashReporter.framework'
28-
s.pod_target_xcconfig = {'GCC_PREPROCESSOR_DEFINITIONS' => %{$(inherited) BITHOCKEY_VERSION="@\\"#{s.version}\\"" BITHOCKEY_C_VERSION="\\"#{s.version}\\"" BITHOCKEY_BUILD="@\\"60\\"" BITHOCKEY_C_BUILD="\\"60\\""} }
28+
s.pod_target_xcconfig = {'GCC_PREPROCESSOR_DEFINITIONS' => %{$(inherited) BITHOCKEY_VERSION="@\\"#{s.version}\\"" BITHOCKEY_C_VERSION="\\"#{s.version}\\"" BITHOCKEY_BUILD="@\\"95\\"" BITHOCKEY_C_BUILD="\\"95\\""} }
2929
s.resource_bundle = { 'HockeySDKResources' => ['Resources/*.png', 'Resources/*.lproj'] }
3030
s.preserve_paths = 'Resources', 'Support'
3131
s.private_header_files = 'Classes/*Private.h'

HockeySDK.podspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = 'HockeySDK'
3-
s.version = '4.1.0-beta.2'
3+
s.version = '4.1.0'
44

55
s.summary = 'Collect live crash reports, get feedback from your users, distribute your betas, and analyze your test coverage with HockeyApp.'
66
s.description = <<-DESC

README.md

Lines changed: 39 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22
[![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage)
33
[![Version](http://cocoapod-badges.herokuapp.com/v/HockeySDK/badge.png)](http://cocoadocs.org/docsets/HockeySDK)
44

5-
## Version 4.1.0-beta.2
5+
## Version 4.1.0
66

7-
- [Changelog](http://www.hockeyapp.net/help/sdk/ios/4.1.0-beta.2/docs/docs/Changelog.html)
7+
- [Changelog](http://www.hockeyapp.net/help/sdk/ios/4.1.0/docs/docs/Changelog.html)
88

99
**NOTE:** With the release of HockeySDK 4.0.0-alpha.1 a bug was introduced which lead to the exclusion of the Application Support folder from iCloud and iTunes backups.
1010

11-
If you have been using one of the affected versions (4.0.0-alpha.2, Version 4.0.0-beta.1, 4.0.0, 4.1.0-alpha.1, 4.1.0-alpha.2, or Version 4.1.0-beta.1), please make sure to update to at least version 4.0.1 or 4.1.0-beta.2 of our SDK as soon as you can.
11+
If you have been using one of the affected versions (4.0.0-alpha.2, Version 4.0.0-beta.1, 4.0.0, 4.1.0-alpha.1, 4.1.0-alpha.2, or Version 4.1.0-beta.1), please make sure to update to at least version 4.0.1 of our SDK as soon as you can.
1212

1313
## Introduction
1414

@@ -18,7 +18,7 @@ The following features are currently supported:
1818

1919
1. **Collect crash reports:** If your app crashes, a crash log with the same format as from the Apple Crash Reporter is written to the device's storage. If the user starts the app again, he is asked to submit the crash report to HockeyApp. This works for both beta and live apps, i.e. those submitted to the App Store.
2020

21-
2. **User Metrics:** Understand user behavior to improve your app. Track usage through daily and monthly active users, monitor crash impacted users, as well as customer engagement through session count. If you are part of [Preseason](hockeyapp.net/preseason), you can now track Custom Events in your app, understand user actions and see the aggregates on the HockeyApp portal.
21+
2. **User Metrics:** Understand user behavior to improve your app. Track usage through daily and monthly active users, monitor crash impacted users, as well as customer engagement through session count.You can now track **Custom Events** in your app, understand user actions and see the aggregates on the HockeyApp portal.
2222

2323
3. **Update Ad-Hoc / Enterprise apps:** The app will check with HockeyApp if a new version for your Ad-Hoc or Enterprise build is available. If yes, it will show an alert view to the user and let him see the release notes, the version history and start the installation process right away.
2424

@@ -453,6 +453,39 @@ metricsManager.trackEventWithName(eventName)
453453
- There is currently a limit of 300 unique event names per app per week.
454454
- There is _no_ limit on the number of times an event can happen.
455455

456+
#### 3.7.2 Attaching custom properties and measurements to a custom event
457+
458+
It's possible to attach porperties and/or measurements to a custom event.
459+
460+
- Properties have to be a string.
461+
- Measurements have to be of a numeric type.
462+
463+
**Objective-C**
464+
465+
```objectivec
466+
BITMetricsManager *metricsManager = [BITHockeyManager sharedHockeyManager].metricsManager;
467+
468+
NSDictionary *myProperties = @{@"Property 1" : @"Something",
469+
@"Property 2" : @"Other thing",
470+
@"Property 3" : @"Totally different thing"};
471+
NSDictionary *myMeasurements = @{@"Measurement 1" : @1,
472+
@"Measurement 2" : @2.34,
473+
@"Measurement 3" : @2000000};
474+
475+
[metricsManager trackEventWithName:eventName properties:myProperties measurements:myMeasurements]
476+
```
477+
478+
**Swift**
479+
480+
```swift
481+
let myProperties = ["Property 1": "Something", "Property 2": "Other thing", "Property 3" : "Totally different thing."]
482+
let myMeasurements = ["Measurement 1": 1, "Measurement 2": 2.3, "Measurement 3" : 30000]
483+
484+
let metricsManager = BITHockeyManager.sharedHockeyManager().metricsManager
485+
metricsManager.trackEventWithName(eventName, properties: myProperties, myMeasurements: measurements)
486+
```
487+
488+
456489
<a name="feedback"></a>
457490
### 3.8 Feedback
458491

@@ -524,7 +557,7 @@ To check if data is send properly to HockeyApp and also see some additional SDK
524557
<a id="documentation"></a>
525558
## 4. Documentation
526559
527-
Our documentation can be found on [HockeyApp](http://hockeyapp.net/help/sdk/ios/4.1.0-beta.2/index.html).
560+
Our documentation can be found on [HockeyApp](http://hockeyapp.net/help/sdk/ios/4.1.0/index.html).
528561
529562
<a id="troubleshooting"></a>
530563
## 5.Troubleshooting
@@ -538,7 +571,7 @@ Our documentation can be found on [HockeyApp](http://hockeyapp.net/help/sdk/ios/
538571
Make sure none of the following files are copied into your app bundle, check under app target, `Build Phases`, `Copy Bundle Resources` or in the `.app` bundle after building:
539572
540573
- `HockeySDK.framework` (except if you build a dynamic framework version of the SDK yourself!)
541-
- `de.bitstadium.HockeySDK-iOS-4.1.0-beta.2.docset`
574+
- `de.bitstadium.HockeySDK-iOS-4.1.0.docset`
542575
543576
### Feature are not working as expected
544577

Support/buildnumber.xcconfig

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#include "HockeySDK.xcconfig"
22

3-
BUILD_NUMBER = 94
4-
VERSION_STRING = 4.1.0-beta.2
3+
BUILD_NUMBER = 95
4+
VERSION_STRING = 4.1.0
55
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) $(HOCKEYSDK_GCC_PREPROCESSOR_DEFINITIONS) HOCKEYSDK_CONFIGURATION_$(CONFIGURATION) BITHOCKEY_VERSION="@\""$(VERSION_STRING)"\"" BITHOCKEY_BUILD="@\""$(BUILD_NUMBER)"\"" BITHOCKEY_C_VERSION="\""$(VERSION_STRING)"\"" BITHOCKEY_C_BUILD="\""$(BUILD_NUMBER)"\""
66
BIT_ARM_ARCHS = armv7 armv7s arm64
77
BIT_SIM_ARCHS = x86_64 i386

Support/release.xcconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
#include "buildnumber.xcconfig"
22

33
OTHER_CFLAGS[sdk=iphoneos9.*] = $(HOCKEYSDK_WARNING_FLAGS) -fembed-bitcode
4-
OTHER_CFLAGS[sdk=iphonesimulator9.*] = $(HOCKEYSDK_WARNING_FLAGS)
4+
OTHER_CFLAGS[sdk=iphonesimulator9.*] = $(HOCKEYSDK_WARNING_FLAGS) -fembed-bitcode-marker

0 commit comments

Comments
 (0)