Skip to content

Instantly share code, notes, and snippets.

@skabber
skabber / exportOptions.plist
Last active April 14, 2024 20:47
Export Options Plist Example
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>app-store</string>
<key>teamID</key>
<string>XXXXXXXXXX</string>
<key>uploadBitcode</key>
<true/>
@skabber
skabber / git_check.sh
Created September 13, 2011 13:42
Check git for updates.
#!/bin/sh
git remote update
local=$(git rev-list --max-count=1 master)
origin=$(git rev-list --max-count=1 origin/master)
if [ "$local" != "$origin" ];
then
git pull origin master
echo "Lets build it :)"
sh -ex ./build_ota.sh
@skabber
skabber / KeyGrinder.plist
Created January 4, 2013 05:45
KeyGrinder .mobileprovision file.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AppIDName</key>
<string>Key Grinder Beta</string>
<key>ApplicationIdentifierPrefix</key>
<array>
<string>9SW4KH6NLF</string>
</array>
@skabber
skabber / main.dart
Created May 9, 2019 00:10
Hero Widget transitionOnUserGestures bug.
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:cached_network_image/cached_network_image.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return CupertinoApp(
#!/bin/bash
function usage {
echo "Usage: $0 -c [CodeSign Directory] -p [Xcode Project File.xcodeproj]"
echo "If any arguments are not specified, defaults will be attempted. If defaults don't exist, script will exit."
echo "OPTIONS:"
echo " -c [CodeSign Directory]: Location of directory containing project's provisioning profiles."
echo " -p [Xcode Project File]: Path of Xcode project directory (the .xcodeproj, not .pbxproj)"
echo " -b: Use PlistBuddy command for UUID replacement instead of sed. (Better handling of a couple of edge cases, but makes diffs impossible to read.)"
echo " -v: Verbose logging."
DSYM_FILE=${WORKSPACE}/${PRODUCT_NAME}-${BUILD_NUMBER}.app.dSYM.zip
cd build/YOUR_CONFIGURATION-iphoneos/
zip -r -T -y ${DSYM_FILE} ${PRODUCT_NAME}.app.dSYM
curl -H X-HockeyAppToken:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx -F "dsym=@${DSYM_FILE}" https://rink.hockeyapp.net/api/2/apps/YOUR_PUBLIC_APP_IDENTIFIER/app_versions
@skabber
skabber / main.dart
Created January 3, 2019 18:47
Multiline TextField issue.
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
@skabber
skabber / build_ota.sh
Created September 12, 2011 19:49
Xcode Build OTA
#!/bin/sh
# This script was written by Jay Graves for the 360iDev Conference.
# You can find the full slides available at http://skabber.com/
# This script requires Xcode and s3cmd http://s3tools.org/s3cmd
# You will need your own Amazon S3 account to upload files.
# Put your distribution certificates and keys in the System Keychain
# otherwise you will need to use security unlock-keychain
TARGET=GroupA
PlistBuddy=/usr/libexec/PlistBuddy
@skabber
skabber / protobuftest.pb.go
Last active November 8, 2017 23:57
Go Mobile + Protobuf Test
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: protobuftest.proto
/*
Package protobuftest is a generated protocol buffer package.
It is generated from these files:
protobuftest.proto
It has these top-level messages:
@skabber
skabber / hockeyCrashes.py
Created April 10, 2013 23:22
A Python script to graph all your production app crashes in Status Board
#!/usr/bin/env python
import requests
import json
import StringIO
import datetime
hockeyToken = 'getyourowndamnkey'
appsEndpoint = 'https://rink.hockeyapp.net/api/2/apps'
crashesEndpoint = 'https://rink.hockeyapp.net/api/2/apps/%s/crashes/histogram?api_token=%s&format=json&start_date=%s&end_date=%s'