mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-17 03:40:18 +00:00
Remove NSString and UIImage categories, so the static library doesn't require the linker flag -all_load
The flag shouldn't be required, and worked in the demo project absolutely fine. But from now to then there was an Xcode bug that made it required again and some non reproducible scenarios where reported by users where it doesn't work without the flag. To fix this for always and forever, we don't use categories any more.
This commit is contained in:
parent
7827524e04
commit
6967748148
44
Classes/BITHockeyHelper.h
Normal file
44
Classes/BITHockeyHelper.h
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
/*
|
||||||
|
* Author: Andreas Linde <mail@andreaslinde.de>
|
||||||
|
*
|
||||||
|
* Copyright (c) 2012 HockeyApp, Bit Stadium GmbH.
|
||||||
|
* All rights reserved.
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person
|
||||||
|
* obtaining a copy of this software and associated documentation
|
||||||
|
* files (the "Software"), to deal in the Software without
|
||||||
|
* restriction, including without limitation the rights to use,
|
||||||
|
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the
|
||||||
|
* Software is furnished to do so, subject to the following
|
||||||
|
* conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
|
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
|
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#import <Foundation/Foundation.h>
|
||||||
|
#import <UIKit/UIKit.h>
|
||||||
|
|
||||||
|
/* NSString helpers */
|
||||||
|
NSString *bit_URLEncodedString(NSString *inputString);
|
||||||
|
NSString *bit_URLDecodedString(NSString *inputString);
|
||||||
|
NSComparisonResult bit_versionCompare(NSString *stringA, NSString *stringB);
|
||||||
|
|
||||||
|
/* UIImage helpers */
|
||||||
|
UIImage *bit_roundedCornerImage(UIImage *inputImage, NSInteger cornerSize, NSInteger borderSize);
|
||||||
|
UIImage *bit_imageToFitSize(UIImage *inputImage, CGSize fitSize, BOOL honorScaleFactor);
|
||||||
|
UIImage *bit_reflectedImageWithHeight(UIImage *inputImage, NSUInteger height, float fromAlpha, float toAlpha);
|
||||||
|
|
||||||
|
UIImage *bit_initWithContentsOfResolutionIndependentFile(NSString * path) NS_RETURNS_RETAINED;
|
||||||
|
UIImage *bit_imageWithContentsOfResolutionIndependentFile(NSString * path);
|
||||||
|
UIImage *bit_imageNamed(NSString *imageName, NSString *bundleName);
|
||||||
@ -1,148 +1,91 @@
|
|||||||
//
|
/*
|
||||||
// UIImage+BITHockeyAdditions.m
|
* Author: Andreas Linde <mail@andreaslinde.de>
|
||||||
//
|
*
|
||||||
// Created by Peter Steinberger on 10.01.11.
|
* Copyright (c) 2012 HockeyApp, Bit Stadium GmbH.
|
||||||
// Copyright (c) 2011-2012 Peter Steinberger.
|
* All rights reserved.
|
||||||
// Copyright (c) 2012 HockeyApp, Bit Stadium GmbH.
|
*
|
||||||
// All rights reserved.
|
* Permission is hereby granted, free of charge, to any person
|
||||||
//
|
* obtaining a copy of this software and associated documentation
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
* files (the "Software"), to deal in the Software without
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
* restriction, including without limitation the rights to use,
|
||||||
// in the Software without restriction, including without limitation the rights
|
* copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
* copies of the Software, and to permit persons to whom the
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
* Software is furnished to do so, subject to the following
|
||||||
// furnished to do so, subject to the following conditions:
|
* conditions:
|
||||||
//
|
*
|
||||||
// The above copyright notice and this permission notice shall be included in
|
* The above copyright notice and this permission notice shall be
|
||||||
// all copies or substantial portions of the Software.
|
* included in all copies or substantial portions of the Software.
|
||||||
//
|
*
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
// THE SOFTWARE.
|
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||||
|
* OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
#import "UIImage+BITHockeyAdditions.h"
|
|
||||||
|
|
||||||
// Private helper methods
|
#import "BITHockeyHelper.h"
|
||||||
@interface UIImage (BITHockeyAdditionsPrivate)
|
|
||||||
- (void)bit_addRoundedRectToPath:(CGRect)rect context:(CGContextRef)context ovalWidth:(CGFloat)ovalWidth ovalHeight:(CGFloat)ovalHeight;
|
|
||||||
@end
|
|
||||||
|
|
||||||
@implementation UIImage (BITHockeyAdditions)
|
#pragma mark NSString helpers
|
||||||
|
|
||||||
static CGContextRef MyOpenBitmapContext(int pixelsWide, int pixelsHigh);
|
NSString *bit_URLEncodedString(NSString *inputString) {
|
||||||
static CGImageRef CreateGradientImage(int pixelsWide, int pixelsHigh, float fromAlpha, float toAlpha);
|
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
|
||||||
|
(CFStringRef)inputString,
|
||||||
// Returns true if the image has an alpha layer
|
NULL,
|
||||||
- (BOOL)hasAlpha {
|
CFSTR("!*'();:@&=+$,/?%#[]"),
|
||||||
CGImageAlphaInfo alpha = CGImageGetAlphaInfo(self.CGImage);
|
kCFStringEncodingUTF8);
|
||||||
return (alpha == kCGImageAlphaFirst ||
|
[result autorelease];
|
||||||
alpha == kCGImageAlphaLast ||
|
return result;
|
||||||
alpha == kCGImageAlphaPremultipliedFirst ||
|
|
||||||
alpha == kCGImageAlphaPremultipliedLast);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns a copy of the given image, adding an alpha channel if it doesn't already have one
|
NSString *bit_URLDecodedString(NSString *inputString) {
|
||||||
- (UIImage *)imageWithAlpha {
|
NSString *result = (NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
|
||||||
if ([self hasAlpha]) {
|
(CFStringRef)inputString,
|
||||||
return self;
|
CFSTR(""),
|
||||||
|
kCFStringEncodingUTF8);
|
||||||
|
[result autorelease];
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
CGImageRef imageRef = self.CGImage;
|
NSComparisonResult bit_versionCompare(NSString *stringA, NSString *stringB) {
|
||||||
size_t width = CGImageGetWidth(imageRef) * self.scale;
|
// Extract plain version number from self
|
||||||
size_t height = CGImageGetHeight(imageRef) * self.scale;
|
NSString *plainSelf = stringA;
|
||||||
|
NSRange letterRange = [plainSelf rangeOfCharacterFromSet: [NSCharacterSet letterCharacterSet]];
|
||||||
|
if (letterRange.length)
|
||||||
|
plainSelf = [plainSelf substringToIndex: letterRange.location];
|
||||||
|
|
||||||
// The bitsPerComponent and bitmapInfo values are hard-coded to prevent an "unsupported parameter combination" error
|
// Extract plain version number from other
|
||||||
CGContextRef offscreenContext = CGBitmapContextCreate(NULL,
|
NSString *plainOther = stringB;
|
||||||
width,
|
letterRange = [plainOther rangeOfCharacterFromSet: [NSCharacterSet letterCharacterSet]];
|
||||||
height,
|
if (letterRange.length)
|
||||||
8,
|
plainOther = [plainOther substringToIndex: letterRange.location];
|
||||||
0,
|
|
||||||
CGImageGetColorSpace(imageRef),
|
|
||||||
kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedFirst);
|
|
||||||
|
|
||||||
// Draw the image into the context and retrieve the new image, which will now have an alpha layer
|
// Compare plain versions
|
||||||
CGContextDrawImage(offscreenContext, CGRectMake(0, 0, width, height), imageRef);
|
NSComparisonResult result = [plainSelf compare:plainOther options:NSNumericSearch];
|
||||||
CGImageRef imageRefWithAlpha = CGBitmapContextCreateImage(offscreenContext);
|
|
||||||
UIImage *imageWithAlpha = [UIImage imageWithCGImage:imageRefWithAlpha];
|
|
||||||
|
|
||||||
// Clean up
|
// If plain versions are equal, compare full versions
|
||||||
CGContextRelease(offscreenContext);
|
if (result == NSOrderedSame)
|
||||||
CGImageRelease(imageRefWithAlpha);
|
result = [stringA compare:stringB options:NSNumericSearch];
|
||||||
|
|
||||||
return imageWithAlpha;
|
// Done
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creates a copy of this image with rounded corners
|
|
||||||
// If borderSize is non-zero, a transparent border of the given size will also be added
|
|
||||||
// Original author: Björn Sållarp. Used with permission. See: http://blog.sallarp.com/iphone-uiimage-round-corners/
|
|
||||||
- (UIImage *)bit_roundedCornerImage:(NSInteger)cornerSize borderSize:(NSInteger)borderSize {
|
|
||||||
// If the image does not have an alpha layer, add one
|
|
||||||
|
|
||||||
UIImage *roundedImage = nil;
|
#pragma mark UIImage private helpers
|
||||||
UIGraphicsBeginImageContextWithOptions(self.size, NO, 0.0); // 0.0 for scale means "correct scale for device's main screen".
|
|
||||||
CGImageRef sourceImg = CGImageCreateWithImageInRect([self CGImage], CGRectMake(0, 0, self.size.width * self.scale, self.size.height * self.scale)); // cropping happens here.
|
|
||||||
|
|
||||||
// Create a clipping path with rounded corners
|
static void bit_addRoundedRectToPath(CGRect rect, CGContextRef context, CGFloat ovalWidth, CGFloat ovalHeight);
|
||||||
CGContextRef context = UIGraphicsGetCurrentContext();
|
static CGContextRef bit_MyOpenBitmapContext(int pixelsWide, int pixelsHigh);
|
||||||
CGContextBeginPath(context);
|
static CGImageRef bit_CreateGradientImage(int pixelsWide, int pixelsHigh, float fromAlpha, float toAlpha);
|
||||||
[self addRoundedRectToPath:CGRectMake(borderSize, borderSize, self.size.width - borderSize * 2, self.size.height - borderSize * 2)
|
static BOOL bit_hasAlpha(UIImage *inputImage);
|
||||||
context:context
|
UIImage *bit_imageWithAlpha(UIImage *inputImage);
|
||||||
ovalWidth:cornerSize
|
|
||||||
ovalHeight:cornerSize];
|
|
||||||
CGContextClosePath(context);
|
|
||||||
CGContextClip(context);
|
|
||||||
|
|
||||||
roundedImage = [UIImage imageWithCGImage:sourceImg scale:0.0 orientation:self.imageOrientation]; // create cropped UIImage.
|
|
||||||
[roundedImage drawInRect:CGRectMake(0, 0, self.size.width, self.size.height)]; // the actual scaling happens here, and orientation is taken care of automatically.
|
|
||||||
CGImageRelease(sourceImg);
|
|
||||||
roundedImage = UIGraphicsGetImageFromCurrentImageContext();
|
|
||||||
UIGraphicsEndImageContext();
|
|
||||||
|
|
||||||
if (!roundedImage) {
|
|
||||||
// Try older method.
|
|
||||||
UIImage *image = [self imageWithAlpha];
|
|
||||||
|
|
||||||
// Build a context that's the same dimensions as the new size
|
|
||||||
CGContextRef context = CGBitmapContextCreate(NULL,
|
|
||||||
image.size.width,
|
|
||||||
image.size.height,
|
|
||||||
CGImageGetBitsPerComponent(image.CGImage),
|
|
||||||
0,
|
|
||||||
CGImageGetColorSpace(image.CGImage),
|
|
||||||
CGImageGetBitmapInfo(image.CGImage));
|
|
||||||
|
|
||||||
// Create a clipping path with rounded corners
|
|
||||||
CGContextBeginPath(context);
|
|
||||||
[self addRoundedRectToPath:CGRectMake(borderSize, borderSize, image.size.width - borderSize * 2, image.size.height - borderSize * 2)
|
|
||||||
context:context
|
|
||||||
ovalWidth:cornerSize
|
|
||||||
ovalHeight:cornerSize];
|
|
||||||
CGContextClosePath(context);
|
|
||||||
CGContextClip(context);
|
|
||||||
|
|
||||||
// Draw the image to the context; the clipping path will make anything outside the rounded rect transparent
|
|
||||||
CGContextDrawImage(context, CGRectMake(0, 0, image.size.width, image.size.height), image.CGImage);
|
|
||||||
|
|
||||||
// Create a CGImage from the context
|
|
||||||
CGImageRef clippedImage = CGBitmapContextCreateImage(context);
|
|
||||||
CGContextRelease(context);
|
|
||||||
|
|
||||||
// Create a UIImage from the CGImage
|
|
||||||
roundedImage = [UIImage imageWithCGImage:clippedImage];
|
|
||||||
CGImageRelease(clippedImage);
|
|
||||||
}
|
|
||||||
return roundedImage;
|
|
||||||
}
|
|
||||||
|
|
||||||
#pragma mark - Private helper methods
|
|
||||||
|
|
||||||
// Adds a rectangular path to the given context and rounds its corners by the given extents
|
// Adds a rectangular path to the given context and rounds its corners by the given extents
|
||||||
// Original author: Björn Sållarp. Used with permission. See: http://blog.sallarp.com/iphone-uiimage-round-corners/
|
// Original author: Björn Sållarp. Used with permission. See: http://blog.sallarp.com/iphone-uiimage-round-corners/
|
||||||
- (void)addRoundedRectToPath:(CGRect)rect context:(CGContextRef)context ovalWidth:(CGFloat)ovalWidth ovalHeight:(CGFloat)ovalHeight {
|
void bit_addRoundedRectToPath(CGRect rect, CGContextRef context, CGFloat ovalWidth, CGFloat ovalHeight) {
|
||||||
if (ovalWidth == 0 || ovalHeight == 0) {
|
if (ovalWidth == 0 || ovalHeight == 0) {
|
||||||
CGContextAddRect(context, rect);
|
CGContextAddRect(context, rect);
|
||||||
return;
|
return;
|
||||||
@ -161,77 +104,7 @@ static CGImageRef CreateGradientImage(int pixelsWide, int pixelsHigh, float from
|
|||||||
CGContextRestoreGState(context);
|
CGContextRestoreGState(context);
|
||||||
}
|
}
|
||||||
|
|
||||||
- (UIImage *)bit_imageToFitSize:(CGSize)fitSize honorScaleFactor:(BOOL)honorScaleFactor
|
CGImageRef bit_CreateGradientImage(int pixelsWide, int pixelsHigh, float fromAlpha, float toAlpha) {
|
||||||
{
|
|
||||||
float imageScaleFactor = 1.0;
|
|
||||||
if (honorScaleFactor) {
|
|
||||||
if ([self respondsToSelector:@selector(scale)]) {
|
|
||||||
imageScaleFactor = [self scale];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
float sourceWidth = [self size].width * imageScaleFactor;
|
|
||||||
float sourceHeight = [self size].height * imageScaleFactor;
|
|
||||||
float targetWidth = fitSize.width;
|
|
||||||
float targetHeight = fitSize.height;
|
|
||||||
|
|
||||||
// Calculate aspect ratios
|
|
||||||
float sourceRatio = sourceWidth / sourceHeight;
|
|
||||||
float targetRatio = targetWidth / targetHeight;
|
|
||||||
|
|
||||||
// Determine what side of the source image to use for proportional scaling
|
|
||||||
BOOL scaleWidth = (sourceRatio <= targetRatio);
|
|
||||||
// Deal with the case of just scaling proportionally to fit, without cropping
|
|
||||||
scaleWidth = !scaleWidth;
|
|
||||||
|
|
||||||
// Proportionally scale source image
|
|
||||||
float scalingFactor, scaledWidth, scaledHeight;
|
|
||||||
if (scaleWidth) {
|
|
||||||
scalingFactor = 1.0 / sourceRatio;
|
|
||||||
scaledWidth = targetWidth;
|
|
||||||
scaledHeight = round(targetWidth * scalingFactor);
|
|
||||||
} else {
|
|
||||||
scalingFactor = sourceRatio;
|
|
||||||
scaledWidth = round(targetHeight * scalingFactor);
|
|
||||||
scaledHeight = targetHeight;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Calculate compositing rectangles
|
|
||||||
CGRect sourceRect, destRect;
|
|
||||||
sourceRect = CGRectMake(0, 0, sourceWidth, sourceHeight);
|
|
||||||
destRect = CGRectMake(0, 0, scaledWidth, scaledHeight);
|
|
||||||
|
|
||||||
// Create appropriately modified image.
|
|
||||||
UIImage *image = nil;
|
|
||||||
UIGraphicsBeginImageContextWithOptions(destRect.size, NO, honorScaleFactor ? 0.0 : 1.0); // 0.0 for scale means "correct scale for device's main screen".
|
|
||||||
CGImageRef sourceImg = CGImageCreateWithImageInRect([self CGImage], sourceRect); // cropping happens here.
|
|
||||||
image = [UIImage imageWithCGImage:sourceImg scale:0.0 orientation:self.imageOrientation]; // create cropped UIImage.
|
|
||||||
[image drawInRect:destRect]; // the actual scaling happens here, and orientation is taken care of automatically.
|
|
||||||
CGImageRelease(sourceImg);
|
|
||||||
image = UIGraphicsGetImageFromCurrentImageContext();
|
|
||||||
UIGraphicsEndImageContext();
|
|
||||||
|
|
||||||
if (!image) {
|
|
||||||
// Try older method.
|
|
||||||
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
|
|
||||||
CGContextRef context = CGBitmapContextCreate(NULL, scaledWidth, scaledHeight, 8, (fitSize.width * 4),
|
|
||||||
colorSpace, kCGImageAlphaPremultipliedLast);
|
|
||||||
CGImageRef sourceImg = CGImageCreateWithImageInRect([self CGImage], sourceRect);
|
|
||||||
CGContextDrawImage(context, destRect, sourceImg);
|
|
||||||
CGImageRelease(sourceImg);
|
|
||||||
CGImageRef finalImage = CGBitmapContextCreateImage(context);
|
|
||||||
CGContextRelease(context);
|
|
||||||
CGColorSpaceRelease(colorSpace);
|
|
||||||
image = [UIImage imageWithCGImage:finalImage];
|
|
||||||
CGImageRelease(finalImage);
|
|
||||||
}
|
|
||||||
|
|
||||||
return image;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CGImageRef CreateGradientImage(int pixelsWide, int pixelsHigh, float fromAlpha, float toAlpha) {
|
|
||||||
CGImageRef theCGImage = NULL;
|
CGImageRef theCGImage = NULL;
|
||||||
|
|
||||||
// gradient is always black-white and the mask must be in the gray colorspace
|
// gradient is always black-white and the mask must be in the gray colorspace
|
||||||
@ -266,7 +139,7 @@ CGImageRef CreateGradientImage(int pixelsWide, int pixelsHigh, float fromAlpha,
|
|||||||
return theCGImage;
|
return theCGImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
CGContextRef MyOpenBitmapContext(int pixelsWide, int pixelsHigh) {
|
CGContextRef bit_MyOpenBitmapContext(int pixelsWide, int pixelsHigh) {
|
||||||
CGSize size = CGSizeMake(pixelsWide, pixelsHigh);
|
CGSize size = CGSizeMake(pixelsWide, pixelsHigh);
|
||||||
if (UIGraphicsBeginImageContextWithOptions != NULL) {
|
if (UIGraphicsBeginImageContextWithOptions != NULL) {
|
||||||
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
|
UIGraphicsBeginImageContextWithOptions(size, NO, 0.0);
|
||||||
@ -278,25 +151,137 @@ CGContextRef MyOpenBitmapContext(int pixelsWide, int pixelsHigh) {
|
|||||||
return UIGraphicsGetCurrentContext();
|
return UIGraphicsGetCurrentContext();
|
||||||
}
|
}
|
||||||
|
|
||||||
- (UIImage *)bit_reflectedImageWithHeight:(NSUInteger)height fromAlpha:(float)fromAlpha toAlpha:(float)toAlpha {
|
|
||||||
|
// Returns true if the image has an alpha layer
|
||||||
|
BOOL bit_hasAlpha(UIImage *inputImage) {
|
||||||
|
CGImageAlphaInfo alpha = CGImageGetAlphaInfo(inputImage.CGImage);
|
||||||
|
return (alpha == kCGImageAlphaFirst ||
|
||||||
|
alpha == kCGImageAlphaLast ||
|
||||||
|
alpha == kCGImageAlphaPremultipliedFirst ||
|
||||||
|
alpha == kCGImageAlphaPremultipliedLast);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Returns a copy of the given image, adding an alpha channel if it doesn't already have one
|
||||||
|
UIImage *bit_imageWithAlpha(UIImage *inputImage) {
|
||||||
|
if (bit_hasAlpha(inputImage)) {
|
||||||
|
return inputImage;
|
||||||
|
}
|
||||||
|
|
||||||
|
CGImageRef imageRef = inputImage.CGImage;
|
||||||
|
size_t width = CGImageGetWidth(imageRef) * inputImage.scale;
|
||||||
|
size_t height = CGImageGetHeight(imageRef) * inputImage.scale;
|
||||||
|
|
||||||
|
// The bitsPerComponent and bitmapInfo values are hard-coded to prevent an "unsupported parameter combination" error
|
||||||
|
CGContextRef offscreenContext = CGBitmapContextCreate(NULL,
|
||||||
|
width,
|
||||||
|
height,
|
||||||
|
8,
|
||||||
|
0,
|
||||||
|
CGImageGetColorSpace(imageRef),
|
||||||
|
kCGBitmapByteOrderDefault | kCGImageAlphaPremultipliedFirst);
|
||||||
|
|
||||||
|
// Draw the image into the context and retrieve the new image, which will now have an alpha layer
|
||||||
|
CGContextDrawImage(offscreenContext, CGRectMake(0, 0, width, height), imageRef);
|
||||||
|
CGImageRef imageRefWithAlpha = CGBitmapContextCreateImage(offscreenContext);
|
||||||
|
UIImage *imageWithAlpha = [UIImage imageWithCGImage:imageRefWithAlpha];
|
||||||
|
|
||||||
|
// Clean up
|
||||||
|
CGContextRelease(offscreenContext);
|
||||||
|
CGImageRelease(imageRefWithAlpha);
|
||||||
|
|
||||||
|
return imageWithAlpha;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#pragma mark UIImage helpers
|
||||||
|
|
||||||
|
UIImage *bit_imageToFitSize(UIImage *inputImage, CGSize fitSize, BOOL honorScaleFactor) {
|
||||||
|
float imageScaleFactor = 1.0;
|
||||||
|
if (honorScaleFactor) {
|
||||||
|
if ([inputImage respondsToSelector:@selector(scale)]) {
|
||||||
|
imageScaleFactor = [inputImage scale];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
float sourceWidth = [inputImage size].width * imageScaleFactor;
|
||||||
|
float sourceHeight = [inputImage size].height * imageScaleFactor;
|
||||||
|
float targetWidth = fitSize.width;
|
||||||
|
float targetHeight = fitSize.height;
|
||||||
|
|
||||||
|
// Calculate aspect ratios
|
||||||
|
float sourceRatio = sourceWidth / sourceHeight;
|
||||||
|
float targetRatio = targetWidth / targetHeight;
|
||||||
|
|
||||||
|
// Determine what side of the source image to use for proportional scaling
|
||||||
|
BOOL scaleWidth = (sourceRatio <= targetRatio);
|
||||||
|
// Deal with the case of just scaling proportionally to fit, without cropping
|
||||||
|
scaleWidth = !scaleWidth;
|
||||||
|
|
||||||
|
// Proportionally scale source image
|
||||||
|
float scalingFactor, scaledWidth, scaledHeight;
|
||||||
|
if (scaleWidth) {
|
||||||
|
scalingFactor = 1.0 / sourceRatio;
|
||||||
|
scaledWidth = targetWidth;
|
||||||
|
scaledHeight = round(targetWidth * scalingFactor);
|
||||||
|
} else {
|
||||||
|
scalingFactor = sourceRatio;
|
||||||
|
scaledWidth = round(targetHeight * scalingFactor);
|
||||||
|
scaledHeight = targetHeight;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate compositing rectangles
|
||||||
|
CGRect sourceRect, destRect;
|
||||||
|
sourceRect = CGRectMake(0, 0, sourceWidth, sourceHeight);
|
||||||
|
destRect = CGRectMake(0, 0, scaledWidth, scaledHeight);
|
||||||
|
|
||||||
|
// Create appropriately modified image.
|
||||||
|
UIImage *image = nil;
|
||||||
|
UIGraphicsBeginImageContextWithOptions(destRect.size, NO, honorScaleFactor ? 0.0 : 1.0); // 0.0 for scale means "correct scale for device's main screen".
|
||||||
|
CGImageRef sourceImg = CGImageCreateWithImageInRect([inputImage CGImage], sourceRect); // cropping happens here.
|
||||||
|
image = [UIImage imageWithCGImage:sourceImg scale:0.0 orientation:inputImage.imageOrientation]; // create cropped UIImage.
|
||||||
|
[image drawInRect:destRect]; // the actual scaling happens here, and orientation is taken care of automatically.
|
||||||
|
CGImageRelease(sourceImg);
|
||||||
|
image = UIGraphicsGetImageFromCurrentImageContext();
|
||||||
|
UIGraphicsEndImageContext();
|
||||||
|
|
||||||
|
if (!image) {
|
||||||
|
// Try older method.
|
||||||
|
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
|
||||||
|
CGContextRef context = CGBitmapContextCreate(NULL, scaledWidth, scaledHeight, 8, (fitSize.width * 4),
|
||||||
|
colorSpace, kCGImageAlphaPremultipliedLast);
|
||||||
|
CGImageRef sourceImg = CGImageCreateWithImageInRect([inputImage CGImage], sourceRect);
|
||||||
|
CGContextDrawImage(context, destRect, sourceImg);
|
||||||
|
CGImageRelease(sourceImg);
|
||||||
|
CGImageRef finalImage = CGBitmapContextCreateImage(context);
|
||||||
|
CGContextRelease(context);
|
||||||
|
CGColorSpaceRelease(colorSpace);
|
||||||
|
image = [UIImage imageWithCGImage:finalImage];
|
||||||
|
CGImageRelease(finalImage);
|
||||||
|
}
|
||||||
|
|
||||||
|
return image;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UIImage *bit_reflectedImageWithHeight(UIImage *inputImage, NSUInteger height, float fromAlpha, float toAlpha) {
|
||||||
if(height == 0)
|
if(height == 0)
|
||||||
return nil;
|
return nil;
|
||||||
|
|
||||||
// create a bitmap graphics context the size of the image
|
// create a bitmap graphics context the size of the image
|
||||||
CGContextRef mainViewContentContext = MyOpenBitmapContext(self.size.width, height);
|
CGContextRef mainViewContentContext = bit_MyOpenBitmapContext(inputImage.size.width, height);
|
||||||
|
|
||||||
// create a 2 bit CGImage containing a gradient that will be used for masking the
|
// create a 2 bit CGImage containing a gradient that will be used for masking the
|
||||||
// main view content to create the 'fade' of the reflection. The CGImageCreateWithMask
|
// main view content to create the 'fade' of the reflection. The CGImageCreateWithMask
|
||||||
// function will stretch the bitmap image as required, so we can create a 1 pixel wide gradient
|
// function will stretch the bitmap image as required, so we can create a 1 pixel wide gradient
|
||||||
CGImageRef gradientMaskImage = CreateGradientImage(1, height, fromAlpha, toAlpha);
|
CGImageRef gradientMaskImage = bit_CreateGradientImage(1, height, fromAlpha, toAlpha);
|
||||||
|
|
||||||
// create an image by masking the bitmap of the mainView content with the gradient view
|
// create an image by masking the bitmap of the mainView content with the gradient view
|
||||||
// then release the pre-masked content bitmap and the gradient bitmap
|
// then release the pre-masked content bitmap and the gradient bitmap
|
||||||
CGContextClipToMask(mainViewContentContext, CGRectMake(0.0, 0.0, self.size.width, height), gradientMaskImage);
|
CGContextClipToMask(mainViewContentContext, CGRectMake(0.0, 0.0, inputImage.size.width, height), gradientMaskImage);
|
||||||
CGImageRelease(gradientMaskImage);
|
CGImageRelease(gradientMaskImage);
|
||||||
|
|
||||||
// draw the image into the bitmap context
|
// draw the image into the bitmap context
|
||||||
CGContextDrawImage(mainViewContentContext, CGRectMake(0, 0, self.size.width, self.size.height), self.CGImage);
|
CGContextDrawImage(mainViewContentContext, CGRectMake(0, 0, inputImage.size.width, inputImage.size.height), inputImage.CGImage);
|
||||||
|
|
||||||
// convert the finished reflection image to a UIImage
|
// convert the finished reflection image to a UIImage
|
||||||
UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext(); // returns autoreleased
|
UIImage *theImage = UIGraphicsGetImageFromCurrentImageContext(); // returns autoreleased
|
||||||
@ -305,7 +290,8 @@ CGContextRef MyOpenBitmapContext(int pixelsWide, int pixelsHigh) {
|
|||||||
return theImage;
|
return theImage;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (id)bit_initWithContentsOfResolutionIndependentFile:(NSString *)path {
|
|
||||||
|
UIImage *bit_initWithContentsOfResolutionIndependentFile(NSString * path) {
|
||||||
if ([UIScreen instancesRespondToSelector:@selector(scale)] && (int)[[UIScreen mainScreen] scale] == 2.0) {
|
if ([UIScreen instancesRespondToSelector:@selector(scale)] && (int)[[UIScreen mainScreen] scale] == 2.0) {
|
||||||
NSString *path2x = [[path stringByDeletingLastPathComponent]
|
NSString *path2x = [[path stringByDeletingLastPathComponent]
|
||||||
stringByAppendingPathComponent:[NSString stringWithFormat:@"%@@2x.%@",
|
stringByAppendingPathComponent:[NSString stringWithFormat:@"%@@2x.%@",
|
||||||
@ -313,26 +299,85 @@ CGContextRef MyOpenBitmapContext(int pixelsWide, int pixelsHigh) {
|
|||||||
[path pathExtension]]];
|
[path pathExtension]]];
|
||||||
|
|
||||||
if ([[NSFileManager defaultManager] fileExistsAtPath:path2x]) {
|
if ([[NSFileManager defaultManager] fileExistsAtPath:path2x]) {
|
||||||
return [self initWithContentsOfFile:path2x];
|
return [[UIImage alloc] initWithContentsOfFile:path2x];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return [self initWithContentsOfFile:path];
|
return [[UIImage alloc] initWithContentsOfFile:path];
|
||||||
}
|
}
|
||||||
|
|
||||||
+ (UIImage*)bit_imageWithContentsOfResolutionIndependentFile:(NSString *)path {
|
|
||||||
|
UIImage *bit_imageWithContentsOfResolutionIndependentFile(NSString *path) {
|
||||||
#ifndef __clang_analyzer__
|
#ifndef __clang_analyzer__
|
||||||
// clang alayzer in 4.2b3 thinks here's a leak, which is not the case.
|
// clang alayzer in 4.2b3 thinks here's a leak, which is not the case.
|
||||||
return [[[UIImage alloc] bit_initWithContentsOfResolutionIndependentFile:path] autorelease];
|
UIImage *newImage = bit_initWithContentsOfResolutionIndependentFile(path);
|
||||||
|
return [newImage autorelease];
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
+ (UIImage *)bit_imageNamed:(NSString *)imageName bundle:(NSString *)bundleName {
|
UIImage *bit_imageNamed(NSString *imageName, NSString *bundleName) {
|
||||||
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
|
NSString *resourcePath = [[NSBundle mainBundle] resourcePath];
|
||||||
NSString *bundlePath = [resourcePath stringByAppendingPathComponent:bundleName];
|
NSString *bundlePath = [resourcePath stringByAppendingPathComponent:bundleName];
|
||||||
NSString *imagePath = [bundlePath stringByAppendingPathComponent:imageName];
|
NSString *imagePath = [bundlePath stringByAppendingPathComponent:imageName];
|
||||||
return [UIImage bit_imageWithContentsOfResolutionIndependentFile:imagePath];
|
return bit_imageWithContentsOfResolutionIndependentFile(imagePath);
|
||||||
}
|
}
|
||||||
|
|
||||||
@end
|
|
||||||
|
|
||||||
|
// Creates a copy of this image with rounded corners
|
||||||
|
// If borderSize is non-zero, a transparent border of the given size will also be added
|
||||||
|
// Original author: Björn Sållarp. Used with permission. See: http://blog.sallarp.com/iphone-uiimage-round-corners/
|
||||||
|
UIImage *bit_roundedCornerImage(UIImage *inputImage, NSInteger cornerSize, NSInteger borderSize) {
|
||||||
|
// If the image does not have an alpha layer, add one
|
||||||
|
|
||||||
|
UIImage *roundedImage = nil;
|
||||||
|
UIGraphicsBeginImageContextWithOptions(inputImage.size, NO, 0.0); // 0.0 for scale means "correct scale for device's main screen".
|
||||||
|
CGImageRef sourceImg = CGImageCreateWithImageInRect([inputImage CGImage], CGRectMake(0, 0, inputImage.size.width * inputImage.scale, inputImage.size.height * inputImage.scale)); // cropping happens here.
|
||||||
|
|
||||||
|
// Create a clipping path with rounded corners
|
||||||
|
CGContextRef context = UIGraphicsGetCurrentContext();
|
||||||
|
CGContextBeginPath(context);
|
||||||
|
bit_addRoundedRectToPath(CGRectMake(borderSize, borderSize, inputImage.size.width - borderSize * 2, inputImage.size.height - borderSize * 2), context, cornerSize, cornerSize);
|
||||||
|
CGContextClosePath(context);
|
||||||
|
CGContextClip(context);
|
||||||
|
|
||||||
|
roundedImage = [UIImage imageWithCGImage:sourceImg scale:0.0 orientation:inputImage.imageOrientation]; // create cropped UIImage.
|
||||||
|
[roundedImage drawInRect:CGRectMake(0, 0, inputImage.size.width, inputImage.size.height)]; // the actual scaling happens here, and orientation is taken care of automatically.
|
||||||
|
CGImageRelease(sourceImg);
|
||||||
|
roundedImage = UIGraphicsGetImageFromCurrentImageContext();
|
||||||
|
UIGraphicsEndImageContext();
|
||||||
|
|
||||||
|
if (!roundedImage) {
|
||||||
|
// Try older method.
|
||||||
|
UIImage *image = bit_imageWithAlpha(inputImage);
|
||||||
|
|
||||||
|
// Build a context that's the same dimensions as the new size
|
||||||
|
CGContextRef context = CGBitmapContextCreate(NULL,
|
||||||
|
image.size.width,
|
||||||
|
image.size.height,
|
||||||
|
CGImageGetBitsPerComponent(image.CGImage),
|
||||||
|
0,
|
||||||
|
CGImageGetColorSpace(image.CGImage),
|
||||||
|
CGImageGetBitmapInfo(image.CGImage));
|
||||||
|
|
||||||
|
// Create a clipping path with rounded corners
|
||||||
|
CGContextBeginPath(context);
|
||||||
|
bit_addRoundedRectToPath(CGRectMake(borderSize, borderSize, image.size.width - borderSize * 2, image.size.height - borderSize * 2), context, cornerSize, cornerSize);
|
||||||
|
CGContextClosePath(context);
|
||||||
|
CGContextClip(context);
|
||||||
|
|
||||||
|
// Draw the image to the context; the clipping path will make anything outside the rounded rect transparent
|
||||||
|
CGContextDrawImage(context, CGRectMake(0, 0, image.size.width, image.size.height), image.CGImage);
|
||||||
|
|
||||||
|
// Create a CGImage from the context
|
||||||
|
CGImageRef clippedImage = CGBitmapContextCreateImage(context);
|
||||||
|
CGContextRelease(context);
|
||||||
|
|
||||||
|
// Create a UIImage from the CGImage
|
||||||
|
roundedImage = [UIImage imageWithCGImage:clippedImage];
|
||||||
|
CGImageRelease(clippedImage);
|
||||||
|
}
|
||||||
|
|
||||||
|
return roundedImage;
|
||||||
|
}
|
||||||
@ -33,13 +33,12 @@
|
|||||||
#import <mach-o/ldsyms.h>
|
#import <mach-o/ldsyms.h>
|
||||||
#import "HockeySDK.h"
|
#import "HockeySDK.h"
|
||||||
#import "HockeySDKPrivate.h"
|
#import "HockeySDKPrivate.h"
|
||||||
|
#import "BITHockeyHelper.h"
|
||||||
|
|
||||||
#import "BITUpdateManagerPrivate.h"
|
#import "BITUpdateManagerPrivate.h"
|
||||||
#import "BITUpdateViewControllerPrivate.h"
|
#import "BITUpdateViewControllerPrivate.h"
|
||||||
#import "BITAppVersionMetaInfo.h"
|
#import "BITAppVersionMetaInfo.h"
|
||||||
|
|
||||||
#import "NSString+BITHockeyAdditions.h"
|
|
||||||
#import "UIImage+BITHockeyAdditions.h"
|
|
||||||
|
|
||||||
|
|
||||||
// API defines - do not change
|
// API defines - do not change
|
||||||
@ -98,7 +97,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)encodedAppIdentifier {
|
- (NSString *)encodedAppIdentifier {
|
||||||
return (_appIdentifier ? [_appIdentifier bit_URLEncodedString] : [[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"] bit_URLEncodedString]);
|
return (_appIdentifier ? bit_URLEncodedString(_appIdentifier) : bit_URLEncodedString([[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleIdentifier"]));
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)getDevicePlatform {
|
- (NSString *)getDevicePlatform {
|
||||||
@ -277,7 +276,7 @@
|
|||||||
- (void)checkUpdateAvailable {
|
- (void)checkUpdateAvailable {
|
||||||
// check if there is an update available
|
// check if there is an update available
|
||||||
if (self.compareVersionType == BITUpdateComparisonResultGreater) {
|
if (self.compareVersionType == BITUpdateComparisonResultGreater) {
|
||||||
self.updateAvailable = ([self.newestAppVersion.version bit_versionCompare:self.currentAppVersion] == NSOrderedDescending);
|
self.updateAvailable = (bit_versionCompare(self.newestAppVersion.version, self.currentAppVersion) == NSOrderedDescending);
|
||||||
} else {
|
} else {
|
||||||
self.updateAvailable = ([self.newestAppVersion.version compare:self.currentAppVersion] != NSOrderedSame);
|
self.updateAvailable = ([self.newestAppVersion.version compare:self.currentAppVersion] != NSOrderedSame);
|
||||||
}
|
}
|
||||||
@ -558,13 +557,13 @@
|
|||||||
CGRect frame = [visibleWindow frame];
|
CGRect frame = [visibleWindow frame];
|
||||||
|
|
||||||
self.blockingView = [[[UIView alloc] initWithFrame:frame] autorelease];
|
self.blockingView = [[[UIView alloc] initWithFrame:frame] autorelease];
|
||||||
UIImageView *backgroundView = [[[UIImageView alloc] initWithImage:[UIImage bit_imageNamed:@"bg.png" bundle:BITHOCKEYSDK_BUNDLE]] autorelease];
|
UIImageView *backgroundView = [[[UIImageView alloc] initWithImage:bit_imageNamed(@"bg.png", BITHOCKEYSDK_BUNDLE)] autorelease];
|
||||||
backgroundView.contentMode = UIViewContentModeScaleAspectFill;
|
backgroundView.contentMode = UIViewContentModeScaleAspectFill;
|
||||||
backgroundView.frame = frame;
|
backgroundView.frame = frame;
|
||||||
[self.blockingView addSubview:backgroundView];
|
[self.blockingView addSubview:backgroundView];
|
||||||
|
|
||||||
if (image != nil) {
|
if (image != nil) {
|
||||||
UIImageView *imageView = [[[UIImageView alloc] initWithImage:[UIImage bit_imageNamed:image bundle:BITHOCKEYSDK_BUNDLE]] autorelease];
|
UIImageView *imageView = [[[UIImageView alloc] initWithImage:bit_imageNamed(image, BITHOCKEYSDK_BUNDLE)] autorelease];
|
||||||
imageView.contentMode = UIViewContentModeCenter;
|
imageView.contentMode = UIViewContentModeCenter;
|
||||||
imageView.frame = frame;
|
imageView.frame = frame;
|
||||||
[self.blockingView addSubview:imageView];
|
[self.blockingView addSubview:imageView];
|
||||||
@ -697,8 +696,8 @@
|
|||||||
NSMutableString *parameter = [NSMutableString stringWithFormat:@"api/2/apps/%@", [self encodedAppIdentifier]];
|
NSMutableString *parameter = [NSMutableString stringWithFormat:@"api/2/apps/%@", [self encodedAppIdentifier]];
|
||||||
|
|
||||||
[parameter appendFormat:@"?format=json&authorize=yes&app_version=%@&udid=%@&sdk=%@&sdk_version=%@&uuid=%@",
|
[parameter appendFormat:@"?format=json&authorize=yes&app_version=%@&udid=%@&sdk=%@&sdk_version=%@&uuid=%@",
|
||||||
[[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"] bit_URLEncodedString],
|
bit_URLEncodedString([[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]),
|
||||||
(_isAppStoreEnvironment ? @"appstore" : [[self deviceIdentifier] bit_URLEncodedString]),
|
(_isAppStoreEnvironment ? @"appstore" : bit_URLEncodedString([self deviceIdentifier])),
|
||||||
BITHOCKEY_NAME,
|
BITHOCKEY_NAME,
|
||||||
BITHOCKEY_VERSION,
|
BITHOCKEY_VERSION,
|
||||||
_uuid
|
_uuid
|
||||||
@ -797,8 +796,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
NSMutableString *parameter = [NSMutableString stringWithFormat:@"api/2/apps/%@?format=json&udid=%@&sdk=%@&sdk_version=%@&uuid=%@",
|
NSMutableString *parameter = [NSMutableString stringWithFormat:@"api/2/apps/%@?format=json&udid=%@&sdk=%@&sdk_version=%@&uuid=%@",
|
||||||
[[self encodedAppIdentifier] bit_URLEncodedString],
|
bit_URLEncodedString([self encodedAppIdentifier]),
|
||||||
(_isAppStoreEnvironment ? @"appstore" : [[self deviceIdentifier] bit_URLEncodedString]),
|
(_isAppStoreEnvironment ? @"appstore" : bit_URLEncodedString([self deviceIdentifier])),
|
||||||
BITHOCKEY_NAME,
|
BITHOCKEY_NAME,
|
||||||
BITHOCKEY_VERSION,
|
BITHOCKEY_VERSION,
|
||||||
_uuid];
|
_uuid];
|
||||||
@ -806,12 +805,12 @@
|
|||||||
// add additional statistics if user didn't disable flag
|
// add additional statistics if user didn't disable flag
|
||||||
if (_sendUsageData) {
|
if (_sendUsageData) {
|
||||||
[parameter appendFormat:@"&app_version=%@&os=iOS&os_version=%@&device=%@&lang=%@&first_start_at=%@&usage_time=%@",
|
[parameter appendFormat:@"&app_version=%@&os=iOS&os_version=%@&device=%@&lang=%@&first_start_at=%@&usage_time=%@",
|
||||||
[[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"] bit_URLEncodedString],
|
bit_URLEncodedString([[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"]),
|
||||||
[[[UIDevice currentDevice] systemVersion] bit_URLEncodedString],
|
bit_URLEncodedString([[UIDevice currentDevice] systemVersion]),
|
||||||
[[self getDevicePlatform] bit_URLEncodedString],
|
bit_URLEncodedString([self getDevicePlatform]),
|
||||||
[[[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0] bit_URLEncodedString],
|
bit_URLEncodedString([[[NSBundle mainBundle] preferredLocalizations] objectAtIndex:0]),
|
||||||
[[self installationDateString] bit_URLEncodedString],
|
bit_URLEncodedString([self installationDateString]),
|
||||||
[[self currentUsageString] bit_URLEncodedString]
|
bit_URLEncodedString([self currentUsageString])
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -857,7 +856,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
NSString *hockeyAPIURL = [NSString stringWithFormat:@"%@api/2/apps/%@?format=plist%@", _updateURL, [self encodedAppIdentifier], extraParameter];
|
NSString *hockeyAPIURL = [NSString stringWithFormat:@"%@api/2/apps/%@?format=plist%@", _updateURL, [self encodedAppIdentifier], extraParameter];
|
||||||
NSString *iOSUpdateURL = [NSString stringWithFormat:@"itms-services://?action=download-manifest&url=%@", [hockeyAPIURL bit_URLEncodedString]];
|
NSString *iOSUpdateURL = [NSString stringWithFormat:@"itms-services://?action=download-manifest&url=%@", bit_URLEncodedString(hockeyAPIURL)];
|
||||||
|
|
||||||
BITHockeyLog(@"INFO: API Server Call: %@, calling iOS with %@", hockeyAPIURL, iOSUpdateURL);
|
BITHockeyLog(@"INFO: API Server Call: %@, calling iOS with %@", hockeyAPIURL, iOSUpdateURL);
|
||||||
BOOL success = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iOSUpdateURL]];
|
BOOL success = [[UIApplication sharedApplication] openURL:[NSURL URLWithString:iOSUpdateURL]];
|
||||||
@ -1050,7 +1049,7 @@
|
|||||||
BOOL result = NO;
|
BOOL result = NO;
|
||||||
|
|
||||||
for (BITAppVersionMetaInfo *appVersion in self.appVersions) {
|
for (BITAppVersionMetaInfo *appVersion in self.appVersions) {
|
||||||
if ([appVersion.version isEqualToString:self.currentAppVersion] || [appVersion.version bit_versionCompare:self.currentAppVersion] == NSOrderedAscending) {
|
if ([appVersion.version isEqualToString:self.currentAppVersion] || bit_versionCompare(appVersion.version, self.currentAppVersion) == NSOrderedAscending) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -29,9 +29,8 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#import <QuartzCore/QuartzCore.h>
|
#import <QuartzCore/QuartzCore.h>
|
||||||
#import "NSString+BITHockeyAdditions.h"
|
#import "BITHockeyHelper.h"
|
||||||
#import "BITAppVersionMetaInfo.h"
|
#import "BITAppVersionMetaInfo.h"
|
||||||
#import "UIImage+BITHockeyAdditions.h"
|
|
||||||
#import "PSAppStoreHeader.h"
|
#import "PSAppStoreHeader.h"
|
||||||
#import "PSWebTableViewCell.h"
|
#import "PSWebTableViewCell.h"
|
||||||
#import "PSStoreButton.h"
|
#import "PSStoreButton.h"
|
||||||
@ -98,7 +97,7 @@
|
|||||||
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0);
|
UIGraphicsBeginImageContextWithOptions(image.size, NO, 0.0);
|
||||||
|
|
||||||
[image drawAtPoint:CGPointZero];
|
[image drawAtPoint:CGPointZero];
|
||||||
UIImage *iconGradient = [UIImage bit_imageNamed:@"IconGradient.png" bundle:BITHOCKEYSDK_BUNDLE];
|
UIImage *iconGradient = bit_imageNamed(@"IconGradient.png", BITHOCKEYSDK_BUNDLE);
|
||||||
[iconGradient drawInRect:CGRectMake(0, 0, image.size.width, image.size.height) blendMode:kCGBlendModeNormal alpha:0.5];
|
[iconGradient drawInRect:CGRectMake(0, 0, image.size.width, image.size.height) blendMode:kCGBlendModeNormal alpha:0.5];
|
||||||
|
|
||||||
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
|
UIImage *result = UIGraphicsGetImageFromCurrentImageContext();
|
||||||
@ -155,7 +154,7 @@
|
|||||||
[footerButton setTitle:BITHockeyLocalizedString(@"UpdateShowPreviousVersions") forState:UIControlStateNormal];
|
[footerButton setTitle:BITHockeyLocalizedString(@"UpdateShowPreviousVersions") forState:UIControlStateNormal];
|
||||||
[footerButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
|
[footerButton setTitleColor:[UIColor blackColor] forState:UIControlStateNormal];
|
||||||
[footerButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
|
[footerButton setTitleColor:[UIColor whiteColor] forState:UIControlStateHighlighted];
|
||||||
[footerButton setBackgroundImage:[UIImage bit_imageNamed:@"buttonHighlight.png" bundle:BITHOCKEYSDK_BUNDLE] forState:UIControlStateHighlighted];
|
[footerButton setBackgroundImage:bit_imageNamed(@"buttonHighlight.png", BITHOCKEYSDK_BUNDLE) forState:UIControlStateHighlighted];
|
||||||
footerButton.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
|
footerButton.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleTopMargin;
|
||||||
[footerButton addTarget:self action:@selector(showPreviousVersionAction) forControlEvents:UIControlEventTouchUpInside];
|
[footerButton addTarget:self action:@selector(showPreviousVersionAction) forControlEvents:UIControlEventTouchUpInside];
|
||||||
footerButton.frame = CGRectMake(0, kMinPreviousVersionButtonHeight-44, self.view.frame.size.width, 44);
|
footerButton.frame = CGRectMake(0, kMinPreviousVersionButtonHeight-44, self.view.frame.size.width, 44);
|
||||||
|
|||||||
@ -1,34 +0,0 @@
|
|||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
// Copyright (c) 2012 HockeyApp, Bit Stadium GmbH.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
#import <Foundation/Foundation.h>
|
|
||||||
|
|
||||||
@interface NSString (BITHockeyAdditions)
|
|
||||||
|
|
||||||
- (NSString *)bit_URLEncodedString;
|
|
||||||
- (NSString *)bit_URLDecodedString;
|
|
||||||
|
|
||||||
- (NSComparisonResult)bit_versionCompare:(NSString *)other;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@ -1,72 +0,0 @@
|
|||||||
//
|
|
||||||
// Created by Jon Crosby on 10/19/07.
|
|
||||||
// Copyright 2007 Kaboomerang LLC. All rights reserved.
|
|
||||||
// Copyright (c) 2012 HockeyApp, Bit Stadium GmbH.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
|
|
||||||
#import "NSString+BITHockeyAdditions.h"
|
|
||||||
|
|
||||||
@implementation NSString (BITHockeyAdditions)
|
|
||||||
|
|
||||||
- (NSString *)bit_URLEncodedString {
|
|
||||||
NSString *result = (NSString *)CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
|
|
||||||
(CFStringRef)self,
|
|
||||||
NULL,
|
|
||||||
CFSTR("!*'();:@&=+$,/?%#[]"),
|
|
||||||
kCFStringEncodingUTF8);
|
|
||||||
[result autorelease];
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSString*)bit_URLDecodedString {
|
|
||||||
NSString *result = (NSString *)CFURLCreateStringByReplacingPercentEscapesUsingEncoding(kCFAllocatorDefault,
|
|
||||||
(CFStringRef)self,
|
|
||||||
CFSTR(""),
|
|
||||||
kCFStringEncodingUTF8);
|
|
||||||
[result autorelease];
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (NSComparisonResult)bit_versionCompare:(NSString *)other {
|
|
||||||
// Extract plain version number from self
|
|
||||||
NSString *plainSelf = self;
|
|
||||||
NSRange letterRange = [plainSelf rangeOfCharacterFromSet: [NSCharacterSet letterCharacterSet]];
|
|
||||||
if (letterRange.length)
|
|
||||||
plainSelf = [plainSelf substringToIndex: letterRange.location];
|
|
||||||
|
|
||||||
// Extract plain version number from other
|
|
||||||
NSString *plainOther = other;
|
|
||||||
letterRange = [plainOther rangeOfCharacterFromSet: [NSCharacterSet letterCharacterSet]];
|
|
||||||
if (letterRange.length)
|
|
||||||
plainOther = [plainOther substringToIndex: letterRange.location];
|
|
||||||
|
|
||||||
// Compare plain versions
|
|
||||||
NSComparisonResult result = [plainSelf compare:plainOther options:NSNumericSearch];
|
|
||||||
|
|
||||||
// If plain versions are equal, compare full versions
|
|
||||||
if (result == NSOrderedSame)
|
|
||||||
result = [self compare:other options:NSNumericSearch];
|
|
||||||
|
|
||||||
// Done
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
@end
|
|
||||||
@ -21,7 +21,7 @@
|
|||||||
// THE SOFTWARE.
|
// THE SOFTWARE.
|
||||||
|
|
||||||
#import "PSAppStoreHeader.h"
|
#import "PSAppStoreHeader.h"
|
||||||
#import "UIImage+BITHockeyAdditions.h"
|
#import "BITHockeyHelper.h"
|
||||||
#import "HockeySDKPrivate.h"
|
#import "HockeySDKPrivate.h"
|
||||||
|
|
||||||
|
|
||||||
@ -149,14 +149,14 @@
|
|||||||
[iconImage_ release];
|
[iconImage_ release];
|
||||||
|
|
||||||
// scale, make borders and reflection
|
// scale, make borders and reflection
|
||||||
iconImage_ = [anIconImage bit_imageToFitSize:CGSizeMake(kImageHeight, kImageHeight) honorScaleFactor:YES];
|
iconImage_ = bit_imageToFitSize(anIconImage, CGSizeMake(kImageHeight, kImageHeight), YES);
|
||||||
iconImage_ = [[iconImage_ bit_roundedCornerImage:kImageBorderRadius borderSize:0.0] retain];
|
iconImage_ = [bit_roundedCornerImage(iconImage_, kImageBorderRadius, 0.0) retain];
|
||||||
|
|
||||||
// create reflected image
|
// create reflected image
|
||||||
[reflectedImage_ release];
|
[reflectedImage_ release];
|
||||||
reflectedImage_ = nil;
|
reflectedImage_ = nil;
|
||||||
if (anIconImage) {
|
if (anIconImage) {
|
||||||
reflectedImage_ = [[iconImage_ bit_reflectedImageWithHeight:kReflectionHeight fromAlpha:0.5 toAlpha:0.0] retain];
|
reflectedImage_ = [bit_reflectedImageWithHeight(iconImage_, kReflectionHeight, 0.5, 0.0) retain];
|
||||||
}
|
}
|
||||||
[self setNeedsDisplay];
|
[self setNeedsDisplay];
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,39 +0,0 @@
|
|||||||
//
|
|
||||||
// UIImage+BITHockeyAdditions.h
|
|
||||||
//
|
|
||||||
// Created by Peter Steinberger on 10.01.11.
|
|
||||||
// Copyright (c) 2011-2012 Peter Steinberger.
|
|
||||||
// Copyright (c) 2012 HockeyApp, Bit Stadium GmbH.
|
|
||||||
// All rights reserved.
|
|
||||||
//
|
|
||||||
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
||||||
// of this software and associated documentation files (the "Software"), to deal
|
|
||||||
// in the Software without restriction, including without limitation the rights
|
|
||||||
// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
||||||
// copies of the Software, and to permit persons to whom the Software is
|
|
||||||
// furnished to do so, subject to the following conditions:
|
|
||||||
//
|
|
||||||
// The above copyright notice and this permission notice shall be included in
|
|
||||||
// all copies or substantial portions of the Software.
|
|
||||||
//
|
|
||||||
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
||||||
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
||||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
||||||
// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
||||||
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
||||||
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
||||||
// THE SOFTWARE.
|
|
||||||
|
|
||||||
#import <UIKit/UIKit.h>
|
|
||||||
|
|
||||||
@interface UIImage (BITHockeyAdditions)
|
|
||||||
|
|
||||||
- (UIImage *)bit_roundedCornerImage:(NSInteger)cornerSize borderSize:(NSInteger)borderSize;
|
|
||||||
- (UIImage *)bit_imageToFitSize:(CGSize)fitSize honorScaleFactor:(BOOL)honorScaleFactor;
|
|
||||||
- (UIImage *)bit_reflectedImageWithHeight:(NSUInteger)height fromAlpha:(float)fromAlpha toAlpha:(float)toAlpha;
|
|
||||||
|
|
||||||
- (id)bit_initWithContentsOfResolutionIndependentFile:(NSString *)path NS_RETURNS_RETAINED;
|
|
||||||
+ (UIImage *)bit_imageWithContentsOfResolutionIndependentFile:(NSString *)path;
|
|
||||||
+ (UIImage *)bit_imageNamed:(NSString *)imageName bundle:(NSString *)bundleName;
|
|
||||||
|
|
||||||
@end
|
|
||||||
@ -31,11 +31,9 @@
|
|||||||
1E59545715B6C41300A03429 /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB45A148D7BF50015DEDC /* BITAppVersionMetaInfo.m */; };
|
1E59545715B6C41300A03429 /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB45A148D7BF50015DEDC /* BITAppVersionMetaInfo.m */; };
|
||||||
1E59545C15B6C41300A03429 /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB464148D7BF50015DEDC /* BITCrashManager.m */; };
|
1E59545C15B6C41300A03429 /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB464148D7BF50015DEDC /* BITCrashManager.m */; };
|
||||||
1E59545D15B6C41300A03429 /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB466148D7BF50015DEDC /* BITHockeyManager.m */; };
|
1E59545D15B6C41300A03429 /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB466148D7BF50015DEDC /* BITHockeyManager.m */; };
|
||||||
1E59545E15B6C41300A03429 /* NSString+BITHockeyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB468148D7BF50015DEDC /* NSString+BITHockeyAdditions.m */; };
|
|
||||||
1E59545F15B6C41300A03429 /* PSAppStoreHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46A148D7BF50015DEDC /* PSAppStoreHeader.m */; };
|
1E59545F15B6C41300A03429 /* PSAppStoreHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46A148D7BF50015DEDC /* PSAppStoreHeader.m */; };
|
||||||
1E59546015B6C41300A03429 /* PSStoreButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46C148D7BF50015DEDC /* PSStoreButton.m */; };
|
1E59546015B6C41300A03429 /* PSStoreButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46C148D7BF50015DEDC /* PSStoreButton.m */; };
|
||||||
1E59546115B6C41300A03429 /* PSWebTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46E148D7BF50015DEDC /* PSWebTableViewCell.m */; };
|
1E59546115B6C41300A03429 /* PSWebTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46E148D7BF50015DEDC /* PSWebTableViewCell.m */; };
|
||||||
1E59546215B6C41300A03429 /* UIImage+BITHockeyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB470148D7BF50015DEDC /* UIImage+BITHockeyAdditions.m */; };
|
|
||||||
1E59546315B6C41300A03429 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E40BCB815A3494400BD64D9 /* BITCrashReportTextFormatter.m */; };
|
1E59546315B6C41300A03429 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E40BCB815A3494400BD64D9 /* BITCrashReportTextFormatter.m */; };
|
||||||
1E59546615B6C41300A03429 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E400561D148D79B500EB22B9 /* Foundation.framework */; };
|
1E59546615B6C41300A03429 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E400561D148D79B500EB22B9 /* Foundation.framework */; };
|
||||||
1E59546715B6C41300A03429 /* CrashReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */; };
|
1E59546715B6C41300A03429 /* CrashReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */; };
|
||||||
@ -45,7 +43,6 @@
|
|||||||
1E59547015B6C41300A03429 /* PSAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */; };
|
1E59547015B6C41300A03429 /* PSAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */; };
|
||||||
1E59547115B6C41300A03429 /* PSStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46B148D7BF50015DEDC /* PSStoreButton.h */; };
|
1E59547115B6C41300A03429 /* PSStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46B148D7BF50015DEDC /* PSStoreButton.h */; };
|
||||||
1E59547215B6C41300A03429 /* PSWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */; };
|
1E59547215B6C41300A03429 /* PSWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */; };
|
||||||
1E59547315B6C41300A03429 /* UIImage+BITHockeyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46F148D7BF50015DEDC /* UIImage+BITHockeyAdditions.h */; };
|
|
||||||
1E59547515B6C41300A03429 /* BITCrashManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E40BCB415A3487500BD64D9 /* BITCrashManagerDelegate.h */; settings = {ATTRIBUTES = (); }; };
|
1E59547515B6C41300A03429 /* BITCrashManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E40BCB415A3487500BD64D9 /* BITCrashManagerDelegate.h */; settings = {ATTRIBUTES = (); }; };
|
||||||
1E59547615B6C41300A03429 /* BITCrashReportTextFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E40BCB715A3494400BD64D9 /* BITCrashReportTextFormatter.h */; };
|
1E59547615B6C41300A03429 /* BITCrashReportTextFormatter.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E40BCB715A3494400BD64D9 /* BITCrashReportTextFormatter.h */; };
|
||||||
1E59547815B6C41300A03429 /* HockeySDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E71509A15B5C76F004E88FF /* HockeySDK.h */; settings = {ATTRIBUTES = (); }; };
|
1E59547815B6C41300A03429 /* HockeySDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E71509A15B5C76F004E88FF /* HockeySDK.h */; settings = {ATTRIBUTES = (); }; };
|
||||||
@ -59,18 +56,15 @@
|
|||||||
1E5954CD15B6F24A00A03429 /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB45A148D7BF50015DEDC /* BITAppVersionMetaInfo.m */; };
|
1E5954CD15B6F24A00A03429 /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB45A148D7BF50015DEDC /* BITAppVersionMetaInfo.m */; };
|
||||||
1E5954D215B6F24A00A03429 /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB464148D7BF50015DEDC /* BITCrashManager.m */; };
|
1E5954D215B6F24A00A03429 /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB464148D7BF50015DEDC /* BITCrashManager.m */; };
|
||||||
1E5954D315B6F24A00A03429 /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB466148D7BF50015DEDC /* BITHockeyManager.m */; };
|
1E5954D315B6F24A00A03429 /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB466148D7BF50015DEDC /* BITHockeyManager.m */; };
|
||||||
1E5954D415B6F24A00A03429 /* NSString+BITHockeyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB468148D7BF50015DEDC /* NSString+BITHockeyAdditions.m */; };
|
|
||||||
1E5954D515B6F24A00A03429 /* PSAppStoreHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46A148D7BF50015DEDC /* PSAppStoreHeader.m */; };
|
1E5954D515B6F24A00A03429 /* PSAppStoreHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46A148D7BF50015DEDC /* PSAppStoreHeader.m */; };
|
||||||
1E5954D615B6F24A00A03429 /* PSStoreButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46C148D7BF50015DEDC /* PSStoreButton.m */; };
|
1E5954D615B6F24A00A03429 /* PSStoreButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46C148D7BF50015DEDC /* PSStoreButton.m */; };
|
||||||
1E5954D715B6F24A00A03429 /* PSWebTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46E148D7BF50015DEDC /* PSWebTableViewCell.m */; };
|
1E5954D715B6F24A00A03429 /* PSWebTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46E148D7BF50015DEDC /* PSWebTableViewCell.m */; };
|
||||||
1E5954D815B6F24A00A03429 /* UIImage+BITHockeyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB470148D7BF50015DEDC /* UIImage+BITHockeyAdditions.m */; };
|
|
||||||
1E5954D915B6F24A00A03429 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E40BCB815A3494400BD64D9 /* BITCrashReportTextFormatter.m */; };
|
1E5954D915B6F24A00A03429 /* BITCrashReportTextFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E40BCB815A3494400BD64D9 /* BITCrashReportTextFormatter.m */; };
|
||||||
1E5954DC15B6F24A00A03429 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E400561D148D79B500EB22B9 /* Foundation.framework */; };
|
1E5954DC15B6F24A00A03429 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E400561D148D79B500EB22B9 /* Foundation.framework */; };
|
||||||
1E5954DD15B6F24A00A03429 /* CrashReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */; };
|
1E5954DD15B6F24A00A03429 /* CrashReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */; };
|
||||||
1E59558D15B6FDA500A03429 /* PSAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */; };
|
1E59558D15B6FDA500A03429 /* PSAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */; };
|
||||||
1E59558E15B6FDA500A03429 /* PSStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46B148D7BF50015DEDC /* PSStoreButton.h */; };
|
1E59558E15B6FDA500A03429 /* PSStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46B148D7BF50015DEDC /* PSStoreButton.h */; };
|
||||||
1E59558F15B6FDA500A03429 /* PSWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */; };
|
1E59558F15B6FDA500A03429 /* PSWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */; };
|
||||||
1E59559015B6FDA500A03429 /* UIImage+BITHockeyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46F148D7BF50015DEDC /* UIImage+BITHockeyAdditions.h */; };
|
|
||||||
1E59559215B6FDA500A03429 /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB459148D7BF50015DEDC /* BITAppVersionMetaInfo.h */; };
|
1E59559215B6FDA500A03429 /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB459148D7BF50015DEDC /* BITAppVersionMetaInfo.h */; };
|
||||||
1E59559415B6FDA500A03429 /* BITUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB45D148D7BF50015DEDC /* BITUpdateManager.h */; settings = {ATTRIBUTES = (); }; };
|
1E59559415B6FDA500A03429 /* BITUpdateManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB45D148D7BF50015DEDC /* BITUpdateManager.h */; settings = {ATTRIBUTES = (); }; };
|
||||||
1E59559815B6FDA500A03429 /* BITCrashManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E40BCB415A3487500BD64D9 /* BITCrashManagerDelegate.h */; settings = {ATTRIBUTES = (); }; };
|
1E59559815B6FDA500A03429 /* BITCrashManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E40BCB415A3487500BD64D9 /* BITCrashManagerDelegate.h */; settings = {ATTRIBUTES = (); }; };
|
||||||
@ -104,16 +98,11 @@
|
|||||||
1E5955E715B751FB00A03429 /* BITUpdateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5955E615B751FB00A03429 /* BITUpdateViewController.m */; };
|
1E5955E715B751FB00A03429 /* BITUpdateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5955E615B751FB00A03429 /* BITUpdateViewController.m */; };
|
||||||
1E5955E815B751FB00A03429 /* BITUpdateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5955E615B751FB00A03429 /* BITUpdateViewController.m */; };
|
1E5955E815B751FB00A03429 /* BITUpdateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5955E615B751FB00A03429 /* BITUpdateViewController.m */; };
|
||||||
1E5955E915B751FB00A03429 /* BITUpdateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5955E615B751FB00A03429 /* BITUpdateViewController.m */; };
|
1E5955E915B751FB00A03429 /* BITUpdateViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 1E5955E615B751FB00A03429 /* BITUpdateViewController.m */; };
|
||||||
1E5955EB15B7538B00A03429 /* NSString+BITHockeyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EA15B7538B00A03429 /* NSString+BITHockeyAdditions.h */; };
|
|
||||||
1E5955EC15B7538B00A03429 /* NSString+BITHockeyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EA15B7538B00A03429 /* NSString+BITHockeyAdditions.h */; };
|
|
||||||
1E5955ED15B7538B00A03429 /* NSString+BITHockeyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EA15B7538B00A03429 /* NSString+BITHockeyAdditions.h */; };
|
|
||||||
1E5955EF15B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EE15B7752200A03429 /* BITUpdateManagerDelegate.h */; };
|
1E5955EF15B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EE15B7752200A03429 /* BITUpdateManagerDelegate.h */; };
|
||||||
1E5955F015B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EE15B7752200A03429 /* BITUpdateManagerDelegate.h */; };
|
1E5955F015B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EE15B7752200A03429 /* BITUpdateManagerDelegate.h */; };
|
||||||
1E5955F115B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EE15B7752200A03429 /* BITUpdateManagerDelegate.h */; };
|
1E5955F115B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EE15B7752200A03429 /* BITUpdateManagerDelegate.h */; };
|
||||||
1E5955F215B77F5100A03429 /* NSString+BITHockeyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EA15B7538B00A03429 /* NSString+BITHockeyAdditions.h */; };
|
|
||||||
1E5955F315B77F5600A03429 /* PSAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */; };
|
1E5955F315B77F5600A03429 /* PSAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */; };
|
||||||
1E5955F415B77F5E00A03429 /* PSWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */; };
|
1E5955F415B77F5E00A03429 /* PSWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */; };
|
||||||
1E5955F515B77F6000A03429 /* UIImage+BITHockeyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46F148D7BF50015DEDC /* UIImage+BITHockeyAdditions.h */; };
|
|
||||||
1E5955F615B77F6500A03429 /* HockeySDKPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955A015B70F6900A03429 /* HockeySDKPrivate.h */; };
|
1E5955F615B77F6500A03429 /* HockeySDKPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955A015B70F6900A03429 /* HockeySDKPrivate.h */; };
|
||||||
1E5955F715B77F7600A03429 /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EE15B7752200A03429 /* BITUpdateManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
1E5955F715B77F7600A03429 /* BITUpdateManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955EE15B7752200A03429 /* BITUpdateManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
1E5955F815B77F7C00A03429 /* BITUpdateViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955E215B751ED00A03429 /* BITUpdateViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
1E5955F815B77F7C00A03429 /* BITUpdateViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955E215B751ED00A03429 /* BITUpdateViewController.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
@ -123,6 +112,12 @@
|
|||||||
1E5955FD15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */; };
|
1E5955FD15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */; };
|
||||||
1E5955FE15B787D600A03429 /* BITHockeyManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
1E5955FE15B787D600A03429 /* BITHockeyManagerDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */; settings = {ATTRIBUTES = (Public, ); }; };
|
||||||
1E71509B15B5C76F004E88FF /* HockeySDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E71509A15B5C76F004E88FF /* HockeySDK.h */; settings = {ATTRIBUTES = (); }; };
|
1E71509B15B5C76F004E88FF /* HockeySDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 1E71509A15B5C76F004E88FF /* HockeySDK.h */; settings = {ATTRIBUTES = (); }; };
|
||||||
|
1EB6046D15EF6B3200F69880 /* BITHockeyHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EB6046B15EF6B3200F69880 /* BITHockeyHelper.h */; };
|
||||||
|
1EB6046E15EF6B3200F69880 /* BITHockeyHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EB6046B15EF6B3200F69880 /* BITHockeyHelper.h */; };
|
||||||
|
1EB6046F15EF6B3200F69880 /* BITHockeyHelper.h in Headers */ = {isa = PBXBuildFile; fileRef = 1EB6046B15EF6B3200F69880 /* BITHockeyHelper.h */; };
|
||||||
|
1EB6047015EF6B3200F69880 /* BITHockeyHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EB6046C15EF6B3200F69880 /* BITHockeyHelper.m */; };
|
||||||
|
1EB6047115EF6B3200F69880 /* BITHockeyHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EB6046C15EF6B3200F69880 /* BITHockeyHelper.m */; };
|
||||||
|
1EB6047215EF6B3200F69880 /* BITHockeyHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = 1EB6046C15EF6B3200F69880 /* BITHockeyHelper.m */; };
|
||||||
E400561E148D79B500EB22B9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E400561D148D79B500EB22B9 /* Foundation.framework */; };
|
E400561E148D79B500EB22B9 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E400561D148D79B500EB22B9 /* Foundation.framework */; };
|
||||||
E41EB471148D7BF50015DEDC /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB459148D7BF50015DEDC /* BITAppVersionMetaInfo.h */; };
|
E41EB471148D7BF50015DEDC /* BITAppVersionMetaInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB459148D7BF50015DEDC /* BITAppVersionMetaInfo.h */; };
|
||||||
E41EB472148D7BF50015DEDC /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB45A148D7BF50015DEDC /* BITAppVersionMetaInfo.m */; };
|
E41EB472148D7BF50015DEDC /* BITAppVersionMetaInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB45A148D7BF50015DEDC /* BITAppVersionMetaInfo.m */; };
|
||||||
@ -130,15 +125,12 @@
|
|||||||
E41EB47C148D7BF50015DEDC /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB464148D7BF50015DEDC /* BITCrashManager.m */; };
|
E41EB47C148D7BF50015DEDC /* BITCrashManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB464148D7BF50015DEDC /* BITCrashManager.m */; };
|
||||||
E41EB47D148D7BF50015DEDC /* BITHockeyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB465148D7BF50015DEDC /* BITHockeyManager.h */; };
|
E41EB47D148D7BF50015DEDC /* BITHockeyManager.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB465148D7BF50015DEDC /* BITHockeyManager.h */; };
|
||||||
E41EB47E148D7BF50015DEDC /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB466148D7BF50015DEDC /* BITHockeyManager.m */; };
|
E41EB47E148D7BF50015DEDC /* BITHockeyManager.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB466148D7BF50015DEDC /* BITHockeyManager.m */; };
|
||||||
E41EB480148D7BF50015DEDC /* NSString+BITHockeyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB468148D7BF50015DEDC /* NSString+BITHockeyAdditions.m */; };
|
|
||||||
E41EB481148D7BF50015DEDC /* PSAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */; };
|
E41EB481148D7BF50015DEDC /* PSAppStoreHeader.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */; };
|
||||||
E41EB482148D7BF50015DEDC /* PSAppStoreHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46A148D7BF50015DEDC /* PSAppStoreHeader.m */; };
|
E41EB482148D7BF50015DEDC /* PSAppStoreHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46A148D7BF50015DEDC /* PSAppStoreHeader.m */; };
|
||||||
E41EB483148D7BF50015DEDC /* PSStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46B148D7BF50015DEDC /* PSStoreButton.h */; };
|
E41EB483148D7BF50015DEDC /* PSStoreButton.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46B148D7BF50015DEDC /* PSStoreButton.h */; };
|
||||||
E41EB484148D7BF50015DEDC /* PSStoreButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46C148D7BF50015DEDC /* PSStoreButton.m */; };
|
E41EB484148D7BF50015DEDC /* PSStoreButton.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46C148D7BF50015DEDC /* PSStoreButton.m */; };
|
||||||
E41EB485148D7BF50015DEDC /* PSWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */; };
|
E41EB485148D7BF50015DEDC /* PSWebTableViewCell.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */; };
|
||||||
E41EB486148D7BF50015DEDC /* PSWebTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46E148D7BF50015DEDC /* PSWebTableViewCell.m */; };
|
E41EB486148D7BF50015DEDC /* PSWebTableViewCell.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB46E148D7BF50015DEDC /* PSWebTableViewCell.m */; };
|
||||||
E41EB487148D7BF50015DEDC /* UIImage+BITHockeyAdditions.h in Headers */ = {isa = PBXBuildFile; fileRef = E41EB46F148D7BF50015DEDC /* UIImage+BITHockeyAdditions.h */; };
|
|
||||||
E41EB488148D7BF50015DEDC /* UIImage+BITHockeyAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = E41EB470148D7BF50015DEDC /* UIImage+BITHockeyAdditions.m */; };
|
|
||||||
E41EB48C148D7C4E0015DEDC /* CrashReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */; };
|
E41EB48C148D7C4E0015DEDC /* CrashReporter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */; };
|
||||||
/* End PBXBuildFile section */
|
/* End PBXBuildFile section */
|
||||||
|
|
||||||
@ -213,11 +205,12 @@
|
|||||||
1E5955D515B72ED500A03429 /* BITUpdateManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BITUpdateManager.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
1E5955D515B72ED500A03429 /* BITUpdateManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BITUpdateManager.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||||
1E5955E215B751ED00A03429 /* BITUpdateViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateViewController.h; sourceTree = "<group>"; };
|
1E5955E215B751ED00A03429 /* BITUpdateViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateViewController.h; sourceTree = "<group>"; };
|
||||||
1E5955E615B751FB00A03429 /* BITUpdateViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITUpdateViewController.m; sourceTree = "<group>"; };
|
1E5955E615B751FB00A03429 /* BITUpdateViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITUpdateViewController.m; sourceTree = "<group>"; };
|
||||||
1E5955EA15B7538B00A03429 /* NSString+BITHockeyAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSString+BITHockeyAdditions.h"; sourceTree = "<group>"; };
|
|
||||||
1E5955EE15B7752200A03429 /* BITUpdateManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateManagerDelegate.h; sourceTree = "<group>"; };
|
1E5955EE15B7752200A03429 /* BITUpdateManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITUpdateManagerDelegate.h; sourceTree = "<group>"; };
|
||||||
1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyManagerDelegate.h; sourceTree = "<group>"; };
|
1E5955FA15B7877A00A03429 /* BITHockeyManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyManagerDelegate.h; sourceTree = "<group>"; };
|
||||||
1E66CA9115D4100500F35BED /* buildnumber.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = buildnumber.xcconfig; sourceTree = "<group>"; };
|
1E66CA9115D4100500F35BED /* buildnumber.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = buildnumber.xcconfig; sourceTree = "<group>"; };
|
||||||
1E71509A15B5C76F004E88FF /* HockeySDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HockeySDK.h; sourceTree = "<group>"; };
|
1E71509A15B5C76F004E88FF /* HockeySDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HockeySDK.h; sourceTree = "<group>"; };
|
||||||
|
1EB6046B15EF6B3200F69880 /* BITHockeyHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyHelper.h; sourceTree = "<group>"; };
|
||||||
|
1EB6046C15EF6B3200F69880 /* BITHockeyHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyHelper.m; sourceTree = "<group>"; };
|
||||||
1EDA60CF15C2C1450032D10B /* HockeySDK-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HockeySDK-Info.plist"; sourceTree = "<group>"; };
|
1EDA60CF15C2C1450032D10B /* HockeySDK-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "HockeySDK-Info.plist"; sourceTree = "<group>"; };
|
||||||
E400561A148D79B500EB22B9 /* libHockeySDK-iphoneos.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libHockeySDK-iphoneos.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
E400561A148D79B500EB22B9 /* libHockeySDK-iphoneos.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libHockeySDK-iphoneos.a"; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
E400561D148D79B500EB22B9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
E400561D148D79B500EB22B9 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
|
||||||
@ -227,15 +220,12 @@
|
|||||||
E41EB464148D7BF50015DEDC /* BITCrashManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BITCrashManager.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
E41EB464148D7BF50015DEDC /* BITCrashManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; lineEnding = 0; path = BITCrashManager.m; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.objc; };
|
||||||
E41EB465148D7BF50015DEDC /* BITHockeyManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyManager.h; sourceTree = "<group>"; };
|
E41EB465148D7BF50015DEDC /* BITHockeyManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BITHockeyManager.h; sourceTree = "<group>"; };
|
||||||
E41EB466148D7BF50015DEDC /* BITHockeyManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyManager.m; sourceTree = "<group>"; };
|
E41EB466148D7BF50015DEDC /* BITHockeyManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BITHockeyManager.m; sourceTree = "<group>"; };
|
||||||
E41EB468148D7BF50015DEDC /* NSString+BITHockeyAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSString+BITHockeyAdditions.m"; sourceTree = "<group>"; };
|
|
||||||
E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSAppStoreHeader.h; sourceTree = "<group>"; };
|
E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSAppStoreHeader.h; sourceTree = "<group>"; };
|
||||||
E41EB46A148D7BF50015DEDC /* PSAppStoreHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSAppStoreHeader.m; sourceTree = "<group>"; };
|
E41EB46A148D7BF50015DEDC /* PSAppStoreHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSAppStoreHeader.m; sourceTree = "<group>"; };
|
||||||
E41EB46B148D7BF50015DEDC /* PSStoreButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSStoreButton.h; sourceTree = "<group>"; };
|
E41EB46B148D7BF50015DEDC /* PSStoreButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSStoreButton.h; sourceTree = "<group>"; };
|
||||||
E41EB46C148D7BF50015DEDC /* PSStoreButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSStoreButton.m; sourceTree = "<group>"; };
|
E41EB46C148D7BF50015DEDC /* PSStoreButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSStoreButton.m; sourceTree = "<group>"; };
|
||||||
E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSWebTableViewCell.h; sourceTree = "<group>"; };
|
E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PSWebTableViewCell.h; sourceTree = "<group>"; };
|
||||||
E41EB46E148D7BF50015DEDC /* PSWebTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSWebTableViewCell.m; sourceTree = "<group>"; };
|
E41EB46E148D7BF50015DEDC /* PSWebTableViewCell.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PSWebTableViewCell.m; sourceTree = "<group>"; };
|
||||||
E41EB46F148D7BF50015DEDC /* UIImage+BITHockeyAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+BITHockeyAdditions.h"; sourceTree = "<group>"; };
|
|
||||||
E41EB470148D7BF50015DEDC /* UIImage+BITHockeyAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+BITHockeyAdditions.m"; sourceTree = "<group>"; };
|
|
||||||
E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CrashReporter.framework; path = ../Vendor/CrashReporter.framework; sourceTree = "<group>"; };
|
E41EB48B148D7C4E0015DEDC /* CrashReporter.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CrashReporter.framework; path = ../Vendor/CrashReporter.framework; sourceTree = "<group>"; };
|
||||||
E4E7335A148D7A5A00763A39 /* LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; name = LICENSE.txt; path = ../LICENSE.txt; sourceTree = "<group>"; };
|
E4E7335A148D7A5A00763A39 /* LICENSE.txt */ = {isa = PBXFileReference; lastKnownFileType = text; name = LICENSE.txt; path = ../LICENSE.txt; sourceTree = "<group>"; };
|
||||||
E4E7335B148D7A5A00763A39 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = text; name = README.md; path = ../README.md; sourceTree = "<group>"; };
|
E4E7335B148D7A5A00763A39 /* README.md */ = {isa = PBXFileReference; lastKnownFileType = text; name = README.md; path = ../README.md; sourceTree = "<group>"; };
|
||||||
@ -396,16 +386,14 @@
|
|||||||
E41EB48A148D7C150015DEDC /* Helper */ = {
|
E41EB48A148D7C150015DEDC /* Helper */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
1E5955EA15B7538B00A03429 /* NSString+BITHockeyAdditions.h */,
|
|
||||||
E41EB468148D7BF50015DEDC /* NSString+BITHockeyAdditions.m */,
|
|
||||||
E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */,
|
E41EB469148D7BF50015DEDC /* PSAppStoreHeader.h */,
|
||||||
E41EB46A148D7BF50015DEDC /* PSAppStoreHeader.m */,
|
E41EB46A148D7BF50015DEDC /* PSAppStoreHeader.m */,
|
||||||
E41EB46B148D7BF50015DEDC /* PSStoreButton.h */,
|
E41EB46B148D7BF50015DEDC /* PSStoreButton.h */,
|
||||||
E41EB46C148D7BF50015DEDC /* PSStoreButton.m */,
|
E41EB46C148D7BF50015DEDC /* PSStoreButton.m */,
|
||||||
E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */,
|
E41EB46D148D7BF50015DEDC /* PSWebTableViewCell.h */,
|
||||||
E41EB46E148D7BF50015DEDC /* PSWebTableViewCell.m */,
|
E41EB46E148D7BF50015DEDC /* PSWebTableViewCell.m */,
|
||||||
E41EB46F148D7BF50015DEDC /* UIImage+BITHockeyAdditions.h */,
|
1EB6046B15EF6B3200F69880 /* BITHockeyHelper.h */,
|
||||||
E41EB470148D7BF50015DEDC /* UIImage+BITHockeyAdditions.m */,
|
1EB6046C15EF6B3200F69880 /* BITHockeyHelper.m */,
|
||||||
);
|
);
|
||||||
name = Helper;
|
name = Helper;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@ -428,12 +416,10 @@
|
|||||||
1E5955F615B77F6500A03429 /* HockeySDKPrivate.h in Headers */,
|
1E5955F615B77F6500A03429 /* HockeySDKPrivate.h in Headers */,
|
||||||
1E01118115BB6311007002AC /* BITUpdateManagerPrivate.h in Headers */,
|
1E01118115BB6311007002AC /* BITUpdateManagerPrivate.h in Headers */,
|
||||||
1E01118215BB6314007002AC /* BITCrashManagerPrivate.h in Headers */,
|
1E01118215BB6314007002AC /* BITCrashManagerPrivate.h in Headers */,
|
||||||
1E5955F215B77F5100A03429 /* NSString+BITHockeyAdditions.h in Headers */,
|
|
||||||
1E01118D15BB83FB007002AC /* BITUpdateViewControllerPrivate.h in Headers */,
|
1E01118D15BB83FB007002AC /* BITUpdateViewControllerPrivate.h in Headers */,
|
||||||
1E5955F315B77F5600A03429 /* PSAppStoreHeader.h in Headers */,
|
1E5955F315B77F5600A03429 /* PSAppStoreHeader.h in Headers */,
|
||||||
1E5954B615B6E17700A03429 /* PSStoreButton.h in Headers */,
|
1E5954B615B6E17700A03429 /* PSStoreButton.h in Headers */,
|
||||||
1E5955F415B77F5E00A03429 /* PSWebTableViewCell.h in Headers */,
|
1E5955F415B77F5E00A03429 /* PSWebTableViewCell.h in Headers */,
|
||||||
1E5955F515B77F6000A03429 /* UIImage+BITHockeyAdditions.h in Headers */,
|
|
||||||
1E5954B815B6E19C00A03429 /* BITAppVersionMetaInfo.h in Headers */,
|
1E5954B815B6E19C00A03429 /* BITAppVersionMetaInfo.h in Headers */,
|
||||||
1E59548715B6C51100A03429 /* BITCrashReportTextFormatter.h in Headers */,
|
1E59548715B6C51100A03429 /* BITCrashReportTextFormatter.h in Headers */,
|
||||||
);
|
);
|
||||||
@ -451,14 +437,13 @@
|
|||||||
1E59547015B6C41300A03429 /* PSAppStoreHeader.h in Headers */,
|
1E59547015B6C41300A03429 /* PSAppStoreHeader.h in Headers */,
|
||||||
1E59547115B6C41300A03429 /* PSStoreButton.h in Headers */,
|
1E59547115B6C41300A03429 /* PSStoreButton.h in Headers */,
|
||||||
1E59547215B6C41300A03429 /* PSWebTableViewCell.h in Headers */,
|
1E59547215B6C41300A03429 /* PSWebTableViewCell.h in Headers */,
|
||||||
1E59547315B6C41300A03429 /* UIImage+BITHockeyAdditions.h in Headers */,
|
|
||||||
1E59547615B6C41300A03429 /* BITCrashReportTextFormatter.h in Headers */,
|
1E59547615B6C41300A03429 /* BITCrashReportTextFormatter.h in Headers */,
|
||||||
1E5955A215B70F6900A03429 /* HockeySDKPrivate.h in Headers */,
|
1E5955A215B70F6900A03429 /* HockeySDKPrivate.h in Headers */,
|
||||||
1E5955D315B72E5400A03429 /* BITCrashManager.h in Headers */,
|
1E5955D315B72E5400A03429 /* BITCrashManager.h in Headers */,
|
||||||
1E5955E415B751EE00A03429 /* BITUpdateViewController.h in Headers */,
|
1E5955E415B751EE00A03429 /* BITUpdateViewController.h in Headers */,
|
||||||
1E5955EC15B7538B00A03429 /* NSString+BITHockeyAdditions.h in Headers */,
|
|
||||||
1E5955F015B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */,
|
1E5955F015B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */,
|
||||||
1E5955FC15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */,
|
1E5955FC15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */,
|
||||||
|
1EB6046E15EF6B3200F69880 /* BITHockeyHelper.h in Headers */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@ -473,15 +458,14 @@
|
|||||||
1E59558E15B6FDA500A03429 /* PSStoreButton.h in Headers */,
|
1E59558E15B6FDA500A03429 /* PSStoreButton.h in Headers */,
|
||||||
1E59558F15B6FDA500A03429 /* PSWebTableViewCell.h in Headers */,
|
1E59558F15B6FDA500A03429 /* PSWebTableViewCell.h in Headers */,
|
||||||
1E59559B15B6FDA500A03429 /* HockeySDK.h in Headers */,
|
1E59559B15B6FDA500A03429 /* HockeySDK.h in Headers */,
|
||||||
1E59559015B6FDA500A03429 /* UIImage+BITHockeyAdditions.h in Headers */,
|
|
||||||
1E59559215B6FDA500A03429 /* BITAppVersionMetaInfo.h in Headers */,
|
1E59559215B6FDA500A03429 /* BITAppVersionMetaInfo.h in Headers */,
|
||||||
1E59559915B6FDA500A03429 /* BITCrashReportTextFormatter.h in Headers */,
|
1E59559915B6FDA500A03429 /* BITCrashReportTextFormatter.h in Headers */,
|
||||||
1E5955A315B70F6900A03429 /* HockeySDKPrivate.h in Headers */,
|
1E5955A315B70F6900A03429 /* HockeySDKPrivate.h in Headers */,
|
||||||
1E5955D415B72E5400A03429 /* BITCrashManager.h in Headers */,
|
1E5955D415B72E5400A03429 /* BITCrashManager.h in Headers */,
|
||||||
1E5955E515B751EE00A03429 /* BITUpdateViewController.h in Headers */,
|
1E5955E515B751EE00A03429 /* BITUpdateViewController.h in Headers */,
|
||||||
1E5955ED15B7538B00A03429 /* NSString+BITHockeyAdditions.h in Headers */,
|
|
||||||
1E5955F115B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */,
|
1E5955F115B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */,
|
||||||
1E5955FD15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */,
|
1E5955FD15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */,
|
||||||
|
1EB6046F15EF6B3200F69880 /* BITHockeyHelper.h in Headers */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@ -497,14 +481,13 @@
|
|||||||
E41EB481148D7BF50015DEDC /* PSAppStoreHeader.h in Headers */,
|
E41EB481148D7BF50015DEDC /* PSAppStoreHeader.h in Headers */,
|
||||||
E41EB483148D7BF50015DEDC /* PSStoreButton.h in Headers */,
|
E41EB483148D7BF50015DEDC /* PSStoreButton.h in Headers */,
|
||||||
E41EB485148D7BF50015DEDC /* PSWebTableViewCell.h in Headers */,
|
E41EB485148D7BF50015DEDC /* PSWebTableViewCell.h in Headers */,
|
||||||
E41EB487148D7BF50015DEDC /* UIImage+BITHockeyAdditions.h in Headers */,
|
|
||||||
1E40BCB915A3494400BD64D9 /* BITCrashReportTextFormatter.h in Headers */,
|
1E40BCB915A3494400BD64D9 /* BITCrashReportTextFormatter.h in Headers */,
|
||||||
1E5955A115B70F6900A03429 /* HockeySDKPrivate.h in Headers */,
|
1E5955A115B70F6900A03429 /* HockeySDKPrivate.h in Headers */,
|
||||||
1E5955D215B72E5400A03429 /* BITCrashManager.h in Headers */,
|
1E5955D215B72E5400A03429 /* BITCrashManager.h in Headers */,
|
||||||
1E5955E315B751EE00A03429 /* BITUpdateViewController.h in Headers */,
|
1E5955E315B751EE00A03429 /* BITUpdateViewController.h in Headers */,
|
||||||
1E5955EB15B7538B00A03429 /* NSString+BITHockeyAdditions.h in Headers */,
|
|
||||||
1E5955EF15B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */,
|
1E5955EF15B7752300A03429 /* BITUpdateManagerDelegate.h in Headers */,
|
||||||
1E5955FB15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */,
|
1E5955FB15B7877B00A03429 /* BITHockeyManagerDelegate.h in Headers */,
|
||||||
|
1EB6046D15EF6B3200F69880 /* BITHockeyHelper.h in Headers */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@ -719,15 +702,14 @@
|
|||||||
1E59545715B6C41300A03429 /* BITAppVersionMetaInfo.m in Sources */,
|
1E59545715B6C41300A03429 /* BITAppVersionMetaInfo.m in Sources */,
|
||||||
1E59545C15B6C41300A03429 /* BITCrashManager.m in Sources */,
|
1E59545C15B6C41300A03429 /* BITCrashManager.m in Sources */,
|
||||||
1E59545D15B6C41300A03429 /* BITHockeyManager.m in Sources */,
|
1E59545D15B6C41300A03429 /* BITHockeyManager.m in Sources */,
|
||||||
1E59545E15B6C41300A03429 /* NSString+BITHockeyAdditions.m in Sources */,
|
|
||||||
1E59545F15B6C41300A03429 /* PSAppStoreHeader.m in Sources */,
|
1E59545F15B6C41300A03429 /* PSAppStoreHeader.m in Sources */,
|
||||||
1E59546015B6C41300A03429 /* PSStoreButton.m in Sources */,
|
1E59546015B6C41300A03429 /* PSStoreButton.m in Sources */,
|
||||||
1E59546115B6C41300A03429 /* PSWebTableViewCell.m in Sources */,
|
1E59546115B6C41300A03429 /* PSWebTableViewCell.m in Sources */,
|
||||||
1E59546215B6C41300A03429 /* UIImage+BITHockeyAdditions.m in Sources */,
|
|
||||||
1E59546315B6C41300A03429 /* BITCrashReportTextFormatter.m in Sources */,
|
1E59546315B6C41300A03429 /* BITCrashReportTextFormatter.m in Sources */,
|
||||||
1E59559E15B70F4D00A03429 /* HockeySDKPrivate.m in Sources */,
|
1E59559E15B70F4D00A03429 /* HockeySDKPrivate.m in Sources */,
|
||||||
1E5955D715B72ED500A03429 /* BITUpdateManager.m in Sources */,
|
1E5955D715B72ED500A03429 /* BITUpdateManager.m in Sources */,
|
||||||
1E5955E815B751FB00A03429 /* BITUpdateViewController.m in Sources */,
|
1E5955E815B751FB00A03429 /* BITUpdateViewController.m in Sources */,
|
||||||
|
1EB6047115EF6B3200F69880 /* BITHockeyHelper.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@ -738,15 +720,14 @@
|
|||||||
1E5954CD15B6F24A00A03429 /* BITAppVersionMetaInfo.m in Sources */,
|
1E5954CD15B6F24A00A03429 /* BITAppVersionMetaInfo.m in Sources */,
|
||||||
1E5954D215B6F24A00A03429 /* BITCrashManager.m in Sources */,
|
1E5954D215B6F24A00A03429 /* BITCrashManager.m in Sources */,
|
||||||
1E5954D315B6F24A00A03429 /* BITHockeyManager.m in Sources */,
|
1E5954D315B6F24A00A03429 /* BITHockeyManager.m in Sources */,
|
||||||
1E5954D415B6F24A00A03429 /* NSString+BITHockeyAdditions.m in Sources */,
|
|
||||||
1E5954D515B6F24A00A03429 /* PSAppStoreHeader.m in Sources */,
|
1E5954D515B6F24A00A03429 /* PSAppStoreHeader.m in Sources */,
|
||||||
1E5954D615B6F24A00A03429 /* PSStoreButton.m in Sources */,
|
1E5954D615B6F24A00A03429 /* PSStoreButton.m in Sources */,
|
||||||
1E5954D715B6F24A00A03429 /* PSWebTableViewCell.m in Sources */,
|
1E5954D715B6F24A00A03429 /* PSWebTableViewCell.m in Sources */,
|
||||||
1E5954D815B6F24A00A03429 /* UIImage+BITHockeyAdditions.m in Sources */,
|
|
||||||
1E5954D915B6F24A00A03429 /* BITCrashReportTextFormatter.m in Sources */,
|
1E5954D915B6F24A00A03429 /* BITCrashReportTextFormatter.m in Sources */,
|
||||||
1E59559F15B70F4D00A03429 /* HockeySDKPrivate.m in Sources */,
|
1E59559F15B70F4D00A03429 /* HockeySDKPrivate.m in Sources */,
|
||||||
1E5955D815B72ED500A03429 /* BITUpdateManager.m in Sources */,
|
1E5955D815B72ED500A03429 /* BITUpdateManager.m in Sources */,
|
||||||
1E5955E915B751FB00A03429 /* BITUpdateViewController.m in Sources */,
|
1E5955E915B751FB00A03429 /* BITUpdateViewController.m in Sources */,
|
||||||
|
1EB6047215EF6B3200F69880 /* BITHockeyHelper.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@ -764,15 +745,14 @@
|
|||||||
E41EB472148D7BF50015DEDC /* BITAppVersionMetaInfo.m in Sources */,
|
E41EB472148D7BF50015DEDC /* BITAppVersionMetaInfo.m in Sources */,
|
||||||
E41EB47C148D7BF50015DEDC /* BITCrashManager.m in Sources */,
|
E41EB47C148D7BF50015DEDC /* BITCrashManager.m in Sources */,
|
||||||
E41EB47E148D7BF50015DEDC /* BITHockeyManager.m in Sources */,
|
E41EB47E148D7BF50015DEDC /* BITHockeyManager.m in Sources */,
|
||||||
E41EB480148D7BF50015DEDC /* NSString+BITHockeyAdditions.m in Sources */,
|
|
||||||
E41EB482148D7BF50015DEDC /* PSAppStoreHeader.m in Sources */,
|
E41EB482148D7BF50015DEDC /* PSAppStoreHeader.m in Sources */,
|
||||||
E41EB484148D7BF50015DEDC /* PSStoreButton.m in Sources */,
|
E41EB484148D7BF50015DEDC /* PSStoreButton.m in Sources */,
|
||||||
E41EB486148D7BF50015DEDC /* PSWebTableViewCell.m in Sources */,
|
E41EB486148D7BF50015DEDC /* PSWebTableViewCell.m in Sources */,
|
||||||
E41EB488148D7BF50015DEDC /* UIImage+BITHockeyAdditions.m in Sources */,
|
|
||||||
1E40BCBA15A3494400BD64D9 /* BITCrashReportTextFormatter.m in Sources */,
|
1E40BCBA15A3494400BD64D9 /* BITCrashReportTextFormatter.m in Sources */,
|
||||||
1E59559D15B70F4D00A03429 /* HockeySDKPrivate.m in Sources */,
|
1E59559D15B70F4D00A03429 /* HockeySDKPrivate.m in Sources */,
|
||||||
1E5955D615B72ED500A03429 /* BITUpdateManager.m in Sources */,
|
1E5955D615B72ED500A03429 /* BITUpdateManager.m in Sources */,
|
||||||
1E5955E715B751FB00A03429 /* BITUpdateViewController.m in Sources */,
|
1E5955E715B751FB00A03429 /* BITUpdateViewController.m in Sources */,
|
||||||
|
1EB6047015EF6B3200F69880 /* BITHockeyHelper.m in Sources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user