Merge branch 'release/2.5.1'

This commit is contained in:
Andreas Linde 2012-08-14 14:19:40 +02:00
commit b44f28719d
9 changed files with 91 additions and 43 deletions

View File

@ -93,6 +93,7 @@ static NSString *kBITCrashManagerStatus = @"BITCrashManagerStatus";
NSURLConnection *_urlConnection; NSURLConnection *_urlConnection;
BOOL _sendingInProgress; BOOL _sendingInProgress;
BOOL _isSetup;
} }

View File

@ -75,6 +75,7 @@
_delegate = nil; _delegate = nil;
_showAlwaysButton = NO; _showAlwaysButton = NO;
_isSetup = NO;
_crashIdenticalCurrentVersion = YES; _crashIdenticalCurrentVersion = YES;
_urlConnection = nil; _urlConnection = nil;
@ -117,7 +118,7 @@
[_fileManager removeItemAtPath:_analyzerInProgressFile error:&error]; [_fileManager removeItemAtPath:_analyzerInProgressFile error:&error];
} }
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startManager) name:BITHockeyNetworkDidBecomeReachableNotification object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(invokeDelayedProcessing) name:BITHockeyNetworkDidBecomeReachableNotification object:nil];
if (!BITHockeyBundle()) { if (!BITHockeyBundle()) {
NSLog(@"WARNING: %@ is missing, will send reports automatically!", BITHOCKEYSDK_BUNDLE); NSLog(@"WARNING: %@ is missing, will send reports automatically!", BITHOCKEYSDK_BUNDLE);
@ -422,6 +423,7 @@
- (void)startManager { - (void)startManager {
if (_crashManagerStatus == BITCrashManagerStatusDisabled) return; if (_crashManagerStatus == BITCrashManagerStatusDisabled) return;
if (!_isSetup) {
PLCrashReporter *crashReporter = [PLCrashReporter sharedReporter]; PLCrashReporter *crashReporter = [PLCrashReporter sharedReporter];
NSError *error = NULL; NSError *error = NULL;
@ -431,9 +433,19 @@
[self handleCrashReport]; [self handleCrashReport];
} }
// PLCrashReporter is throwing an NSException if it is being enabled again
// even though it already is enabled
@try {
// Enable the Crash Reporter // Enable the Crash Reporter
if (![crashReporter enableCrashReporterAndReturnError: &error]) if (![crashReporter enableCrashReporterAndReturnError: &error])
NSLog(@"WARNING: Could not enable crash reporter: %@", [error localizedDescription]); NSLog(@"WARNING: Could not enable crash reporter: %@", [error localizedDescription]);
}
@catch (NSException * e) {
NSLog(@"WARNING: %@", [e reason]);
}
_isSetup = YES;
}
[self performSelector:@selector(invokeDelayedProcessing) withObject:nil afterDelay:0.5]; [self performSelector:@selector(invokeDelayedProcessing) withObject:nil afterDelay:0.5];
} }

View File

@ -36,7 +36,7 @@
@interface BITHockeyManager () @interface BITHockeyManager ()
- (BOOL)shouldUseLiveIdenfitier; - (BOOL)shouldUseLiveIdentifier;
- (void)configureJMC; - (void)configureJMC;
@ -117,7 +117,7 @@
_delegate = delegate; _delegate = delegate;
[_appIdentifier release]; [_appIdentifier release];
if ([self shouldUseLiveIdenfitier]) { if ([self shouldUseLiveIdentifier]) {
_appIdentifier = [liveIdentifier copy]; _appIdentifier = [liveIdentifier copy];
} }
else { else {
@ -178,10 +178,10 @@
#pragma mark - Private Instance Methods #pragma mark - Private Instance Methods
- (BOOL)shouldUseLiveIdenfitier { - (BOOL)shouldUseLiveIdentifier {
BOOL delegateResult = NO; BOOL delegateResult = NO;
if ([_delegate respondsToSelector:@selector(shouldUseLiveIdenfitier)]) { if ([_delegate respondsToSelector:@selector(shouldUseLiveIdentifier)]) {
delegateResult = [(NSObject <BITHockeyManagerDelegate>*)_delegate shouldUseLiveIdenfitier]; delegateResult = [(NSObject <BITHockeyManagerDelegate>*)_delegate shouldUseLiveIdentifier];
} }
return (delegateResult) || (_appStoreEnvironment); return (delegateResult) || (_appStoreEnvironment);
@ -201,7 +201,7 @@
BITHockeyLog(@"Setup UpdateManager"); BITHockeyLog(@"Setup UpdateManager");
_updateManager = [[BITUpdateManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironemt:_appStoreEnvironment]; _updateManager = [[BITUpdateManager alloc] initWithAppIdentifier:_appIdentifier isAppStoreEnvironemt:_appStoreEnvironment];
_crashManager.delegate = _delegate; _updateManager.delegate = _delegate;
// Only if JMC is part of the project // Only if JMC is part of the project
if ([[self class] isJMCPresent]) { if ([[self class] isJMCPresent]) {

View File

@ -46,13 +46,13 @@
the App Store. the App Store.
Example: Example:
- (BOOL)shouldUseLiveIdenfitier { - (BOOL)shouldUseLiveIdentifier {
#ifdef (CONFIGURATION_Release) #ifdef (CONFIGURATION_Release)
return YES; return YES;
#endif #endif
return NO; return NO;
} }
*/ */
- (BOOL)shouldUseLiveIdenfitier; - (BOOL)shouldUseLiveIdentifier;
@end @end

View File

@ -6,7 +6,7 @@ Pod::Spec.new do |s|
s.summary = 'Distribute beta apps and collect crash reports with HockeyApp.' s.summary = 'Distribute beta apps and collect crash reports with HockeyApp.'
s.homepage = 'http://hockeyapp.net/' s.homepage = 'http://hockeyapp.net/'
s.author = { 'Andreas Linde' => 'mail@andreaslinde.de', 'Thomas Dohmke' => "thomas@dohmke.de" } s.author = { 'Andreas Linde' => 'mail@andreaslinde.de', 'Thomas Dohmke' => "thomas@dohmke.de" }
s.source = { :git => 'https://github.com/bitstadium/HockeySDK-iOS', :tag => '2.5.0' } s.source = { :git => 'https://github.com/bitstadium/HockeySDK-iOS.git', :tag => '2.5.1' }
s.description = 'HockeyApp is a server to distribute beta apps and collect crash reports. ' \ s.description = 'HockeyApp is a server to distribute beta apps and collect crash reports. ' \
'It improves the testing process dramatically and can be used for both beta ' \ 'It improves the testing process dramatically and can be used for both beta ' \
@ -18,18 +18,23 @@ Pod::Spec.new do |s|
s.source_files = 'Classes' s.source_files = 'Classes'
s.requires_arc = false s.requires_arc = false
s.resources = 'Resources/HockeySDKResources.bundle' s.preserve_paths = 'Resources', 'Support', 'Vendor'
s.frameworks = 'QuartzCore', 'SystemConfiguration', 'CrashReporter', 'CoreGraphics.framework', 'UIKit.framework' s.frameworks = 'QuartzCore', 'SystemConfiguration', 'CrashReporter', 'CoreGraphics', 'UIKit'
s.xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => '"$(BUILT_PRODUCTS_DIR)/Pods/Frameworks"' } s.xcconfig = { 'FRAMEWORK_SEARCH_PATHS' => '"$(PODS_ROOT)/HockeySDK/Vendor"',
'GCC_PREPROCESSOR_DEFINITIONS' => %{BITHOCKEY_VERSION="@\\"#{s.version}\\""} }
def s.post_install(target_installer) def s.post_install(target_installer)
# Add a copy build phase and make it copy the CrashReporter.framework to the shared BUILT_PRODUCTS_DIR, puts "\nGenerating HockeySDK resources bundle\n".yellow if config.verbose?
# so that both the Pods project and the user's project will pick it up. Dir.chdir File.join(config.project_pods_root, 'HockeySDK/Support') do
phase = target_installer.target.buildPhases.add(Xcodeproj::Project::PBXCopyFilesBuildPhase, 'dstPath' => 'Pods/Frameworks') command = "xcodebuild -project HockeySDK.xcodeproj -target HockeySDKResources CONFIGURATION_BUILD_DIR=../Resources"
file = target_installer.project.main_group.files.new('path' => 'HockeySDK/Vendor/CrashReporter.framework') command << " 2>&1 > /dev/null" unless config.verbose?
phase.files << file.buildFiles.new unless system(command)
phases = target_installer.target.attributes['buildPhases'] raise ::Pod::Informative, "Failed to generate HockeySDK resources bundle"
phases.delete(phase.uuid) end
phases.insert(1, phase.uuid) end
File.open(File.join(config.project_pods_root, target_installer.target_definition.copy_resources_script_name), 'a') do |file|
file.puts "install_resource 'HockeySDK/Resources/HockeySDKResources.bundle'"
end
end end
end end

View File

@ -38,7 +38,19 @@ This documentation provides integrated help in Xcode for all public APIs and a s
## Changelog ## Changelog
### Version 2.5 ### Version 2.5.1
- General:
- [BUGFIX] Typo in delegate `shouldUseLiveIdentifier` of `BITHockeyManagerDelegate`
- [BUGFIX] Default updateManager delegate wasn't set
- Crash Reporting:
- [BUGFIX] Crash when developer sends the notification `BITHockeyNetworkDidBecomeReachableNotification`
### Version 2.5.0
- General: - General:

View File

@ -1,3 +1,3 @@
BUILD_NUMBER = 1 BUILD_NUMBER = 2
VERSION_STRING = 2.5.0 VERSION_STRING = 2.5.1
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BITHOCKEY_VERSION="@\"2.5.0\"" GCC_PREPROCESSOR_DEFINITIONS = $(inherited) BITHOCKEY_VERSION="@\"2.5.1\""

View File

@ -1,3 +1,15 @@
## Version 2.5.1
- General:
- [BUGFIX] Typo in delegate `shouldUseLiveIdentifier` of `BITHockeyManagerDelegate`
- [BUGFIX] Default updateManager delegate wasn't set
- Crash Reporting:
- [BUGFIX] Crash when developer sends the notification `BITHockeyNetworkDidBecomeReachableNotification`
## Version 2.5 ## Version 2.5
- General: - General:

View File

@ -100,6 +100,12 @@ Now follow the steps described in our [setup guide](http://support.hockeyapp.net
After you have finished the setup guide make sure everything works as expected and then delete the out commented lines from above. After you have finished the setup guide make sure everything works as expected and then delete the out commented lines from above.
## Troubleshooting
### ld: warning: directory not found for option '....QuincyKit.....'
This warning means there is still a `Framework Search Path` pointing to the folder of the old SDK. Open the `Project Navigator` (⌘+1) and go to the tab `Build Settings`. In the search field enter the name of the folder mentioned in the warning (for example "QuincyKit") . If the search finds something in `Framework Search Paths` you should double click that entry and remove the line which points to the old folder.
## Advanced Migration ## Advanced Migration
If you used any optional API calls, for example adding a custom description to a crash report, migrating those would exceed the scope of this guide. Please have a look at the [API documentation](https://github.com/bitstadium/HockeySDK-iOS/downloads). If you used any optional API calls, for example adding a custom description to a crash report, migrating those would exceed the scope of this guide. Please have a look at the [API documentation](https://github.com/bitstadium/HockeySDK-iOS/downloads).