43 |
44 |
--------------------------------------------------------------------------------
/Underdark/ProtocolBuffers.framework/Headers/Message.h:
--------------------------------------------------------------------------------
1 | // Protocol Buffers for Objective C
2 | //
3 | // Copyright 2010 Booyah Inc.
4 | // Copyright 2008 Cyrus Najmabadi
5 | //
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 | // Unless required by applicable law or agreed to in writing, software
13 | // distributed under the License is distributed on an "AS IS" BASIS,
14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | // See the License for the specific language governing permissions and
16 | // limitations under the License.
17 |
18 | @class PBCodedOutputStream;
19 | @class PBUnknownFieldSet;
20 | @protocol PBMessageBuilder;
21 |
22 | /**
23 | * Abstract interface implemented by Protocol Message objects.
24 | *
25 | * @author Cyrus Najmabadi
26 | */
27 | @protocol PBMessage
28 | /**
29 | * Get an instance of the type with all fields set to their default values.
30 | * This may or may not be a singleton. This differs from the
31 | * {@code getDefaultInstance()} method of generated message classes in that
32 | * this method is an abstract method of the {@code Message} interface
33 | * whereas {@code getDefaultInstance()} is a static method of a specific
34 | * class. They return the same thing.
35 | */
36 | - (id) defaultInstance;
37 |
38 | /**
39 | * Get the {@code UnknownFieldSet}
40 | */
41 | - (PBUnknownFieldSet*) unknownFields;
42 |
43 | /**
44 | * Get the number of bytes required to encode this message. The result
45 | * is only computed on the first call and memoized after that.
46 | */
47 | - (SInt32) serializedSize;
48 |
49 | /**
50 | * Returns true if all required fields in the message and all embedded
51 | * messages are set, false otherwise.
52 | */
53 | - (BOOL) isInitialized;
54 |
55 | /**
56 | * Serializes the message and writes it to {@code output}. This does not
57 | * flush or close the stream.
58 | */
59 | - (void) writeToCodedOutputStream:(PBCodedOutputStream*) output;
60 | - (void) writeToOutputStream:(NSOutputStream*) output;
61 |
62 | /**
63 | * Serializes the message to a {@code ByteString} and returns it. This is
64 | * just a trivial wrapper around
65 | * {@link #writeTo(CodedOutputStream)}.
66 | */
67 | - (NSData*) data;
68 |
69 | /**
70 | * Constructs a new builder for a message of the same type as this message.
71 | */
72 | - (id) builder;
73 |
74 | /**
75 | * Constructs a builder initialized with the current message. Use this to
76 | * derive a new message from the current one.
77 | */
78 | - (id) toBuilder;
79 |
80 | /**
81 | * Returns a string description of the message.
82 | */
83 | - (NSString*) description;
84 |
85 | @end
86 |
--------------------------------------------------------------------------------
/Underdark/ProtocolBuffers.framework/Headers/ExtendableMessageBuilder.h:
--------------------------------------------------------------------------------
1 | // Protocol Buffers for Objective C
2 | //
3 | // Copyright 2010 Booyah Inc.
4 | // Copyright 2008 Cyrus Najmabadi
5 | //
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 | // Unless required by applicable law or agreed to in writing, software
13 | // distributed under the License is distributed on an "AS IS" BASIS,
14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | // See the License for the specific language governing permissions and
16 | // limitations under the License.
17 |
18 | #import "GeneratedMessageBuilder.h"
19 |
20 | #import "ExtensionField.h"
21 |
22 | @class PBExtendableMessage;
23 |
24 | /**
25 | * Generated message builders for message types that contain extension ranges
26 | * subclass this.
27 | *
28 | *
This class implements type-safe accessors for extensions. They
29 | * implement all the same operations that you can do with normal fields --
30 | * e.g. "get", "set", and "add" -- but for extensions. The extensions are
31 | * identified using instances of the class {@link GeneratedExtension}; the
32 | * protocol compiler generates a static instance of this class for every
33 | * extension in its input. Through the magic of generics, all is made
34 | * type-safe.
35 | *
36 | *
For example, imagine you have the {@code .proto} file:
37 | *
38 | *
See also {@link ExtendableMessage}.
60 | */
61 | @interface PBExtendableMessageBuilder : PBGeneratedMessageBuilder {
62 | }
63 |
64 | - (id) getExtension:(id) extension;
65 | - (BOOL) hasExtension:(id) extension;
66 | - (PBExtendableMessageBuilder*) setExtension:(id) extension
67 | value:(id) value;
68 | - (PBExtendableMessageBuilder*) addExtension:(id) extension
69 | value:(id) value;
70 | - (PBExtendableMessageBuilder*) setExtension:(id) extension
71 | index:(SInt32) index
72 | value:(id) value;
73 | - (PBExtendableMessageBuilder*) clearExtension:(id) extension;
74 |
75 | /* @protected */
76 | - (void) mergeExtensionFields:(PBExtendableMessage*) other;
77 |
78 | @end
79 |
--------------------------------------------------------------------------------
/Underdark/Underdark.framework/Headers/UDTransport.h:
--------------------------------------------------------------------------------
1 | /*
2 | * Copyright (c) 2016 Vladimir L. Shabanov
3 | *
4 | * Licensed under the Underdark License, Version 1.0 (the "License");
5 | * you may not use this file except in compliance with the License.
6 | * You may obtain a copy of the License at
7 | *
8 | * http://underdark.io/LICENSE.txt
9 | *
10 | * Unless required by applicable law or agreed to in writing, software
11 | * distributed under the License is distributed on an "AS IS" BASIS,
12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 | * See the License for the specific language governing permissions and
14 | * limitations under the License.
15 | */
16 |
17 | #import "UDLink.h"
18 |
19 | extern NSString* _Nonnull UDBluetoothRequiredNotification;
20 | extern NSString* _Nonnull UDBeaconDetectedNotification;
21 |
22 | /**
23 | * Abstract transport protocol, which can aggregate multiple
24 | * network communication protocols.
25 | * All methods of this class must be called via same queue
26 | * that was supplied when creating its object.
27 | */
28 | @protocol UDTransport;
29 |
30 | /**
31 | * UDTransport callback delegate.
32 | * All methods of this interface will be called on UDTransport's queue.
33 | * @see UDLink
34 | * @see UDTransport
35 | */
36 | @protocol UDTransportDelegate
37 |
38 | /**
39 | * Called when transport discovered new device and established connection with it.
40 | * @param transport transport instance that discovered the device
41 | * @param link connection object to discovered device
42 | */
43 | - (void) transport:(nonnull id)transport linkConnected:(nonnull id)link;
44 |
45 | /**
46 | * Called when connection to device is closed explicitly from either side
47 | * or because device is out of range.
48 | * @param transport transport instance that lost the device
49 | * @param link connection object to disconnected device
50 | */
51 | - (void) transport:(nonnull id)transport linkDisconnected:(nonnull id)link;
52 |
53 | /**
54 | * Called when new data frame is received from remote device.
55 | * @param transport transport instance that connected to the device
56 | * @param link connection object for the device
57 | * @param frameData frame data received from remote device
58 | * @see [UDLink sendFrame:]
59 | */
60 | - (void) transport:(nonnull id)transport link:(nonnull id)link didReceiveFrame:(nonnull NSData*)frameData;
61 |
62 | @end
63 |
64 | @protocol UDTransport
65 |
66 | @property (nonatomic, weak, nullable) id delegate;
67 | @property (nonatomic, readonly, nonnull) dispatch_queue_t queue;
68 |
69 | /**
70 | * Starts underlying network advertising and discovery.
71 | * For each call of this method there must be corresponding
72 | * stop call.
73 | */
74 | - (void) start;
75 |
76 | /**
77 | * Stops network advertising and discovery
78 | * and disconnects all links.
79 | * For each call of this method there must be corresponding
80 | * start call previously.
81 | */
82 | - (void) stop;
83 |
84 | @end
85 |
86 |
--------------------------------------------------------------------------------
/Underdark/ProtocolBuffers.framework/Headers/ExtensionRegistry.h:
--------------------------------------------------------------------------------
1 | // Protocol Buffers for Objective C
2 | //
3 | // Copyright 2010 Booyah Inc.
4 | // Copyright 2008 Cyrus Najmabadi
5 | //
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 | // Unless required by applicable law or agreed to in writing, software
13 | // distributed under the License is distributed on an "AS IS" BASIS,
14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | // See the License for the specific language governing permissions and
16 | // limitations under the License.
17 |
18 | /**
19 | * A table of known extensions, searchable by name or field number. When
20 | * parsing a protocol message that might have extensions, you must provide
21 | * an {@code ExtensionRegistry} in which you have registered any extensions
22 | * that you want to be able to parse. Otherwise, those extensions will just
23 | * be treated like unknown fields.
24 | *
25 | *
For example, if you had the {@code .proto} file:
26 | *
27 | *
You might wonder why this is necessary. Two alternatives might come to
50 | * mind. First, you might imagine a system where generated extensions are
51 | * automatically registered when their containing classes are loaded. This
52 | * is a popular technique, but is bad design; among other things, it creates a
53 | * situation where behavior can change depending on what classes happen to be
54 | * loaded. It also introduces a security vulnerability, because an
55 | * unprivileged class could cause its code to be called unexpectedly from a
56 | * privileged class by registering itself as an extension of the right type.
57 | *
58 | *
Another option you might consider is lazy parsing: do not parse an
59 | * extension until it is first requested, at which point the caller must
60 | * provide a type to use. This introduces a different set of problems. First,
61 | * it would require a mutex lock any time an extension was accessed, which
62 | * would be slow. Second, corrupt data would not be detected until first
63 | * access, at which point it would be much harder to deal with it. Third, it
64 | * could violate the expectation that message objects are immutable, since the
65 | * type provided could be any arbitrary message class. An unpriviledged user
66 | * could take advantage of this to inject a mutable object into a message
67 | * belonging to priviledged code and create mischief.
68 | *
69 | * @author Cyrus Najmabadi
70 | */
71 |
72 | #import "ExtensionField.h"
73 |
74 | @interface PBExtensionRegistry : NSObject {
75 | @protected
76 | NSDictionary* classMap;
77 | }
78 |
79 | + (PBExtensionRegistry*) emptyRegistry;
80 | - (id) getExtension:(Class) clazz fieldNumber:(SInt32) fieldNumber;
81 |
82 | /* @protected */
83 | - (instancetype) initWithClassMap:(NSDictionary*) classMap;
84 | - (id) keyForClass:(Class) clazz;
85 |
86 | @end
87 |
--------------------------------------------------------------------------------
/UDApp/UDApp.xcodeproj/xcshareddata/xcschemes/UDApp.xcscheme:
--------------------------------------------------------------------------------
1 |
2 |
5 |
8 |
9 |
15 |
21 |
22 |
23 |
24 |
25 |
31 |
32 |
33 |
34 |
35 |
36 |
47 |
49 |
55 |
56 |
57 |
58 |
62 |
63 |
64 |
65 |
66 |
67 |
73 |
75 |
81 |
82 |
83 |
84 |
86 |
87 |
90 |
91 |
92 |
--------------------------------------------------------------------------------
/Underdark/ProtocolBuffers.framework/Headers/ExtendableMessage.h:
--------------------------------------------------------------------------------
1 | // Protocol Buffers for Objective C
2 | //
3 | // Copyright 2010 Booyah Inc.
4 | // Copyright 2008 Cyrus Najmabadi
5 | //
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 | // Unless required by applicable law or agreed to in writing, software
13 | // distributed under the License is distributed on an "AS IS" BASIS,
14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | // See the License for the specific language governing permissions and
16 | // limitations under the License.
17 |
18 | #import "GeneratedMessage.h"
19 |
20 | #import "ExtensionField.h"
21 |
22 | /**
23 | * Generated message classes for message types that contain extension ranges
24 | * subclass this.
25 | *
26 | *
This class implements type-safe accessors for extensions. They
27 | * implement all the same operations that you can do with normal fields --
28 | * e.g. "has", "get", and "getCount" -- but for extensions. The extensions
29 | * are identified using instances of the class {@link GeneratedExtension};
30 | * the protocol compiler generates a static instance of this class for every
31 | * extension in its input. Through the magic of generics, all is made
32 | * type-safe.
33 | *
34 | *
For example, imagine you have the {@code .proto} file:
35 | *
36 | *
Warning: This does not verify that all required fields are present in
74 | * the input message. If you call {@link #build()} without setting all
75 | * required fields, it will throw an {@link UninitializedMessageException},
76 | * which is a {@code RuntimeException} and thus might not be caught. There
77 | * are a few good ways to deal with this:
78 | *
79 | *
Call {@link #isInitialized()} to verify that all required fields
80 | * are set before building.
81 | *
Parse the message separately using one of the static
82 | * {@code parseFrom} methods, then use {@link #mergeFrom(Message)}
83 | * to merge it with this one. {@code parseFrom} will throw an
84 | * {@link InvalidProtocolBufferException} (an {@code IOException})
85 | * if some required fields are missing.
86 | *
Use {@code buildPartial()} to build, which ignores missing
87 | * required fields.
88 | *
89 | *
90 | *
Note: The caller should call
91 | * {@link CodedInputStream#checkLastTagWas(int)} after calling this to
92 | * verify that the last tag seen was the appropriate end-group tag,
93 | * or zero for EOF.
94 | */
95 | - (id) mergeFromCodedInputStream:(PBCodedInputStream*) input;
96 |
97 | /**
98 | * Like {@link Builder#mergeFrom(CodedInputStream)}, but also
99 | * parses extensions. The extensions that you want to be able to parse
100 | * must be registered in {@code extensionRegistry}. Extensions not in
101 | * the registry will be treated as unknown fields.
102 | */
103 | - (id) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
104 |
105 | /**
106 | * Parse {@code data} as a message of this type and merge it with the
107 | * message being built. This is just a small wrapper around
108 | * {@link #mergeFrom(CodedInputStream)}.
109 | */
110 | - (id) mergeFromData:(NSData*) data;
111 |
112 | /**
113 | * Parse {@code data} as a message of this type and merge it with the
114 | * message being built. This is just a small wrapper around
115 | * {@link #mergeFrom(CodedInputStream,ExtensionRegistry)}.
116 | */
117 | - (id) mergeFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
118 |
119 | /**
120 | * Parse a message of this type from {@code input} and merge it with the
121 | * message being built. This is just a small wrapper around
122 | * {@link #mergeFrom(CodedInputStream)}. Note that this method always
123 | * reads the entire input (unless it throws an exception). If you
124 | * want it to stop earlier, you will need to wrap your input in some
125 | * wrapper stream that limits reading. Despite usually reading the entire
126 | * input, this does not close the stream.
127 | */
128 | - (id) mergeFromInputStream:(NSInputStream*) input;
129 |
130 | /**
131 | * Parse a message of this type from {@code input} and merge it with the
132 | * message being built. This is just a small wrapper around
133 | * {@link #mergeFrom(CodedInputStream,ExtensionRegistry)}.
134 | */
135 | - (id) mergeFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry;
136 | @end
137 |
--------------------------------------------------------------------------------
/Underdark/ProtocolBuffers.framework/Headers/CodedOutputStream.h:
--------------------------------------------------------------------------------
1 | // Protocol Buffers for Objective C
2 | //
3 | // Copyright 2010 Booyah Inc.
4 | // Copyright 2008 Cyrus Najmabadi
5 | //
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 | // Unless required by applicable law or agreed to in writing, software
13 | // distributed under the License is distributed on an "AS IS" BASIS,
14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | // See the License for the specific language governing permissions and
16 | // limitations under the License.
17 |
18 | /**
19 | * Encodes and writes protocol message fields.
20 | *
21 | *
This class contains two kinds of methods: methods that write specific
22 | * protocol message constructs and field types (e.g. {@link #writeTag} and
23 | * {@link #writeInt32}) and methods that write low-level values (e.g.
24 | * {@link #writeRawVarint32} and {@link #writeRawBytes}). If you are
25 | * writing encoded protocol messages, you should use the former methods, but if
26 | * you are writing some other format of your own design, use the latter.
27 | *
28 | *
This class is totally unsynchronized.
29 | *
30 | * @author Cyrus Najmabadi
31 | */
32 |
33 | @class PBUnknownFieldSet;
34 | @class RingBuffer;
35 | @protocol PBMessage;
36 |
37 | @interface PBCodedOutputStream : NSObject {
38 | NSOutputStream *output;
39 | RingBuffer *buffer;
40 | }
41 |
42 | + (PBCodedOutputStream*) streamWithData:(NSMutableData*) data;
43 | + (PBCodedOutputStream*) streamWithOutputStream:(NSOutputStream*) output;
44 | + (PBCodedOutputStream*) streamWithOutputStream:(NSOutputStream*) output bufferSize:(SInt32) bufferSize;
45 |
46 | /**
47 | * Flushes the stream and forces any buffered bytes to be written. This
48 | * does not flush the underlying NSOutputStream. Returns free space in buffer.
49 | */
50 | - (void) flush;
51 |
52 | /** Write a single byte. */
53 | - (void) writeRawByte:(uint8_t) value;
54 |
55 | /** Encode and write a tag. */
56 | - (void) writeTag:(SInt32) fieldNumber format:(SInt32) format;
57 |
58 | /** Write a little-endian 32-bit integer. */
59 | - (void) writeRawLittleEndian32:(SInt32) value;
60 | /** Write a little-endian 64-bit integer. */
61 | - (void) writeRawLittleEndian64:(SInt64) value;
62 |
63 | /**
64 | * Encode and write a varint. {@code value} is treated as
65 | * unsigned, so it won't be sign-extended if negative.
66 | */
67 | - (void) writeRawVarint32:(SInt32) value;
68 | /** Encode and write a varint. */
69 | - (void) writeRawVarint64:(SInt64) value;
70 |
71 | //- (void) writeRawLittleEndian32:(SInt32) value;
72 | //- (void) writeRawLittleEndian64:(SInt64) value;
73 |
74 | /** Write an array of bytes. */
75 | - (void) writeRawData:(const NSData*) data;
76 | - (void) writeRawData:(const NSData*) data offset:(SInt32) offset length:(SInt32) length;
77 |
78 | - (void) writeData:(SInt32) fieldNumber value:(const NSData*) value;
79 |
80 | - (void) writeDouble:(SInt32) fieldNumber value:(Float64) value;
81 | - (void) writeFloat:(SInt32) fieldNumber value:(Float32) value;
82 | - (void) writeUInt64:(SInt32) fieldNumber value:(SInt64) value;
83 | - (void) writeInt64:(SInt32) fieldNumber value:(SInt64) value;
84 | - (void) writeInt32:(SInt32) fieldNumber value:(SInt32) value;
85 | - (void) writeFixed64:(SInt32) fieldNumber value:(SInt64) value;
86 | - (void) writeFixed32:(SInt32) fieldNumber value:(SInt32) value;
87 | - (void) writeBool:(SInt32) fieldNumber value:(BOOL) value;
88 | - (void) writeString:(SInt32) fieldNumber value:(const NSString*) value;
89 | - (void) writeGroup:(SInt32) fieldNumber value:(const id) value;
90 | - (void) writeUnknownGroup:(SInt32) fieldNumber value:(const PBUnknownFieldSet*) value;
91 | - (void) writeMessage:(SInt32) fieldNumber value:(const id) value;
92 | - (void) writeUInt32:(SInt32) fieldNumber value:(SInt32) value;
93 | - (void) writeSFixed32:(SInt32) fieldNumber value:(SInt32) value;
94 | - (void) writeSFixed64:(SInt32) fieldNumber value:(SInt64) value;
95 | - (void) writeSInt32:(SInt32) fieldNumber value:(SInt32) value;
96 | - (void) writeSInt64:(SInt32) fieldNumber value:(SInt64) value;
97 |
98 | - (void) writeDoubleNoTag:(Float64) value;
99 | - (void) writeFloatNoTag:(Float32) value;
100 | - (void) writeUInt64NoTag:(SInt64) value;
101 | - (void) writeInt64NoTag:(SInt64) value;
102 | - (void) writeInt32NoTag:(SInt32) value;
103 | - (void) writeFixed64NoTag:(SInt64) value;
104 | - (void) writeFixed32NoTag:(SInt32) value;
105 | - (void) writeBoolNoTag:(BOOL) value;
106 | - (void) writeStringNoTag:(const NSString*) value;
107 | - (void) writeGroupNoTag:(SInt32) fieldNumber value:(const id) value;
108 | - (void) writeUnknownGroupNoTag:(SInt32) fieldNumber value:(const PBUnknownFieldSet*) value;
109 | - (void) writeMessageNoTag:(const id) value;
110 | - (void) writeDataNoTag:(const NSData*) value;
111 | - (void) writeUInt32NoTag:(SInt32) value;
112 | - (void) writeEnumNoTag:(SInt32) value;
113 | - (void) writeSFixed32NoTag:(SInt32) value;
114 | - (void) writeSFixed64NoTag:(SInt64) value;
115 | - (void) writeSInt32NoTag:(SInt32) value;
116 | - (void) writeSInt64NoTag:(SInt64) value;
117 |
118 |
119 | /**
120 | * Write a MessageSet extension field to the stream. For historical reasons,
121 | * the wire format differs from normal fields.
122 | */
123 | - (void) writeMessageSetExtension:(SInt32) fieldNumber value:(const id) value;
124 |
125 | /**
126 | * Write an unparsed MessageSet extension field to the stream. For
127 | * historical reasons, the wire format differs from normal fields.
128 | */
129 | - (void) writeRawMessageSetExtension:(SInt32) fieldNumber value:(const NSData*) value;
130 |
131 | /**
132 | * Write an enum field, including tag, to the stream. Caller is responsible
133 | * for converting the enum value to its numeric value.
134 | */
135 | - (void) writeEnum:(SInt32) fieldNumber value:(SInt32) value;
136 |
137 | @end
138 |
--------------------------------------------------------------------------------
/Underdark/ProtocolBuffers.framework/Headers/Utilities.h:
--------------------------------------------------------------------------------
1 | // Protocol Buffers for Objective C
2 | //
3 | // Copyright 2010 Booyah Inc.
4 | // Copyright 2008 Cyrus Najmabadi
5 | //
6 | // Licensed under the Apache License, Version 2.0 (the "License");
7 | // you may not use this file except in compliance with the License.
8 | // You may obtain a copy of the License at
9 | //
10 | // http://www.apache.org/licenses/LICENSE-2.0
11 | //
12 | // Unless required by applicable law or agreed to in writing, software
13 | // distributed under the License is distributed on an "AS IS" BASIS,
14 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 | // See the License for the specific language governing permissions and
16 | // limitations under the License.
17 |
18 | #import "Message.h"
19 |
20 | SInt64 convertFloat64ToInt64(Float64 f);
21 | SInt32 convertFloat32ToInt32(Float32 f);
22 | Float64 convertInt64ToFloat64(SInt64 f);
23 | Float32 convertInt32ToFloat32(SInt32 f);
24 |
25 | UInt64 convertInt64ToUInt64(SInt64 i);
26 | SInt64 convertUInt64ToInt64(UInt64 u);
27 | UInt32 convertInt32ToUInt32(SInt32 i);
28 | SInt32 convertUInt32ToInt32(UInt32 u);
29 |
30 | SInt32 logicalRightShift32(SInt32 value, SInt32 spaces);
31 | SInt64 logicalRightShift64(SInt64 value, SInt32 spaces);
32 |
33 |
34 | /**
35 | * Decode a ZigZag-encoded 32-bit value. ZigZag encodes signed integers
36 | * into values that can be efficiently encoded with varint. (Otherwise,
37 | * negative values must be sign-extended to 64 bits to be varint encoded,
38 | * thus always taking 10 bytes on the wire.)
39 | *
40 | * @param n An unsigned 32-bit integer, stored in a signed int.
41 | * @return A signed 32-bit integer.
42 | */
43 | SInt32 decodeZigZag32(SInt32 n);
44 |
45 | /**
46 | * Decode a ZigZag-encoded 64-bit value. ZigZag encodes signed integers
47 | * into values that can be efficiently encoded with varint. (Otherwise,
48 | * negative values must be sign-extended to 64 bits to be varint encoded,
49 | * thus always taking 10 bytes on the wire.)
50 | *
51 | * @param n An unsigned 64-bit integer, stored in a signed int.
52 | * @return A signed 64-bit integer.
53 | */
54 | SInt64 decodeZigZag64(SInt64 n);
55 |
56 |
57 | /**
58 | * Encode a ZigZag-encoded 32-bit value. ZigZag encodes signed integers
59 | * into values that can be efficiently encoded with varint. (Otherwise,
60 | * negative values must be sign-extended to 64 bits to be varint encoded,
61 | * thus always taking 10 bytes on the wire.)
62 | *
63 | * @param n A signed 32-bit integer.
64 | * @return An unsigned 32-bit integer, stored in a signed int.
65 | */
66 | SInt32 encodeZigZag32(SInt32 n);
67 |
68 | /**
69 | * Encode a ZigZag-encoded 64-bit value. ZigZag encodes signed integers
70 | * into values that can be efficiently encoded with varint. (Otherwise,
71 | * negative values must be sign-extended to 64 bits to be varint encoded,
72 | * thus always taking 10 bytes on the wire.)
73 | *
74 | * @param n A signed 64-bit integer.
75 | * @return An unsigned 64-bit integer, stored in a signed int.
76 | */
77 | SInt64 encodeZigZag64(SInt64 n);
78 |
79 | /**
80 | * Compute the number of bytes that would be needed to encode a
81 | * {@code double} field, including tag.
82 | */
83 | SInt32 computeDoubleSize(SInt32 fieldNumber, Float64 value);
84 |
85 | /**
86 | * Compute the number of bytes that would be needed to encode a
87 | * {@code float} field, including tag.
88 | */
89 | SInt32 computeFloatSize(SInt32 fieldNumber, Float32 value);
90 |
91 | /**
92 | * Compute the number of bytes that would be needed to encode a
93 | * {@code uint64} field, including tag.
94 | */
95 | SInt32 computeUInt64Size(SInt32 fieldNumber, SInt64 value);
96 |
97 | /**
98 | * Compute the number of bytes that would be needed to encode an
99 | * {@code int64} field, including tag.
100 | */
101 | SInt32 computeInt64Size(SInt32 fieldNumber, SInt64 value);
102 |
103 | /**
104 | * Compute the number of bytes that would be needed to encode an
105 | * {@code int32} field, including tag.
106 | */
107 | SInt32 computeInt32Size(SInt32 fieldNumber, SInt32 value);
108 |
109 | /**
110 | * Compute the number of bytes that would be needed to encode a
111 | * {@code fixed64} field, including tag.
112 | */
113 | SInt32 computeFixed64Size(SInt32 fieldNumber, SInt64 value);
114 |
115 | /**
116 | * Compute the number of bytes that would be needed to encode a
117 | * {@code fixed32} field, including tag.
118 | */
119 | SInt32 computeFixed32Size(SInt32 fieldNumber, SInt32 value);
120 |
121 | /**
122 | * Compute the number of bytes that would be needed to encode a
123 | * {@code bool} field, including tag.
124 | */
125 | SInt32 computeBoolSize(SInt32 fieldNumber, BOOL value);
126 |
127 | /**
128 | * Compute the number of bytes that would be needed to encode a
129 | * {@code string} field, including tag.
130 | */
131 | SInt32 computeStringSize(SInt32 fieldNumber, const NSString* value);
132 |
133 | /**
134 | * Compute the number of bytes that would be needed to encode a
135 | * {@code group} field, including tag.
136 | */
137 | SInt32 computeGroupSize(SInt32 fieldNumber, const id value);
138 |
139 | /**
140 | * Compute the number of bytes that would be needed to encode a
141 | * {@code group} field represented by an {@code PBUnknownFieldSet}, including
142 | * tag.
143 | */
144 | SInt32 computeUnknownGroupSize(SInt32 fieldNumber, const PBUnknownFieldSet* value);
145 |
146 | /**
147 | * Compute the number of bytes that would be needed to encode an
148 | * embedded message field, including tag.
149 | */
150 | SInt32 computeMessageSize(SInt32 fieldNumber, const id value);
151 |
152 | /**
153 | * Compute the number of bytes that would be needed to encode a
154 | * {@code bytes} field, including tag.
155 | */
156 | SInt32 computeDataSize(SInt32 fieldNumber, const NSData* value);
157 |
158 | /**
159 | * Compute the number of bytes that would be needed to encode a
160 | * {@code uint32} field, including tag.
161 | */
162 | SInt32 computeUInt32Size(SInt32 fieldNumber, SInt32 value);
163 |
164 | /**
165 | * Compute the number of bytes that would be needed to encode an
166 | * {@code sfixed32} field, including tag.
167 | */
168 | SInt32 computeSFixed32Size(SInt32 fieldNumber, SInt32 value);
169 |
170 | /**
171 | * Compute the number of bytes that would be needed to encode an
172 | * {@code sfixed64} field, including tag.
173 | */
174 | SInt32 computeSFixed64Size(SInt32 fieldNumber, SInt64 value);
175 |
176 | /**
177 | * Compute the number of bytes that would be needed to encode an
178 | * {@code sint32} field, including tag.
179 | */
180 | SInt32 computeSInt32Size(SInt32 fieldNumber, SInt32 value);
181 |
182 | /**
183 | * Compute the number of bytes that would be needed to encode an
184 | * {@code sint64} field, including tag.
185 | */
186 | SInt32 computeSInt64Size(SInt32 fieldNumber, SInt64 value);
187 |
188 | /** Compute the number of bytes that would be needed to encode a tag. */
189 | SInt32 computeTagSize(SInt32 fieldNumber);
190 |
191 | /**
192 | * Compute the number of bytes that would be needed to encode a
193 | * {@code double} field, including tag.
194 | */
195 | SInt32 computeDoubleSizeNoTag(Float64 value);
196 |
197 | /**
198 | * Compute the number of bytes that would be needed to encode a
199 | * {@code float} field, including tag.
200 | */
201 | SInt32 computeFloatSizeNoTag(Float32 value);
202 |
203 | /**
204 | * Compute the number of bytes that would be needed to encode a
205 | * {@code uint64} field, including tag.
206 | */
207 | SInt32 computeUInt64SizeNoTag(SInt64 value);
208 |
209 | /**
210 | * Compute the number of bytes that would be needed to encode an
211 | * {@code int64} field, including tag.
212 | */
213 | SInt32 computeInt64SizeNoTag(SInt64 value);
214 | /**
215 | * Compute the number of bytes that would be needed to encode an
216 | * {@code int32} field, including tag.
217 | */
218 | SInt32 computeInt32SizeNoTag(SInt32 value);
219 |
220 | /**
221 | * Compute the number of bytes that would be needed to encode a
222 | * {@code fixed64} field, including tag.
223 | */
224 | SInt32 computeFixed64SizeNoTag(SInt64 value);
225 |
226 | /**
227 | * Compute the number of bytes that would be needed to encode a
228 | * {@code fixed32} field, including tag.
229 | */
230 | SInt32 computeFixed32SizeNoTag(SInt32 value);
231 |
232 | /**
233 | * Compute the number of bytes that would be needed to encode a
234 | * {@code bool} field, including tag.
235 | */
236 | SInt32 computeBoolSizeNoTag(BOOL value);
237 |
238 | /**
239 | * Compute the number of bytes that would be needed to encode a
240 | * {@code string} field, including tag.
241 | */
242 | SInt32 computeStringSizeNoTag(const NSString* value);
243 |
244 | /**
245 | * Compute the number of bytes that would be needed to encode a
246 | * {@code group} field, including tag.
247 | */
248 | SInt32 computeGroupSizeNoTag(const id value);
249 |
250 | /**
251 | * Compute the number of bytes that would be needed to encode a
252 | * {@code group} field represented by an {@code PBUnknownFieldSet}, including
253 | * tag.
254 | */
255 | SInt32 computeUnknownGroupSizeNoTag(const PBUnknownFieldSet* value);
256 |
257 | /**
258 | * Compute the number of bytes that would be needed to encode an
259 | * embedded message field, including tag.
260 | */
261 | SInt32 computeMessageSizeNoTag(const id value);
262 |
263 | /**
264 | * Compute the number of bytes that would be needed to encode a
265 | * {@code bytes} field, including tag.
266 | */
267 | SInt32 computeDataSizeNoTag(const NSData* value);
268 |
269 | /**
270 | * Compute the number of bytes that would be needed to encode a
271 | * {@code uint32} field, including tag.
272 | */
273 | SInt32 computeUInt32SizeNoTag(SInt32 value);
274 |
275 | /**
276 | * Compute the number of bytes that would be needed to encode an
277 | * enum field, including tag. Caller is responsible for converting the
278 | * enum value to its numeric value.
279 | */
280 | SInt32 computeEnumSizeNoTag(SInt32 value);
281 |
282 | /**
283 | * Compute the number of bytes that would be needed to encode an
284 | * {@code sfixed32} field, including tag.
285 | */
286 | SInt32 computeSFixed32SizeNoTag(SInt32 value);
287 |
288 | /**
289 | * Compute the number of bytes that would be needed to encode an
290 | * {@code sfixed64} field, including tag.
291 | */
292 | SInt32 computeSFixed64SizeNoTag(SInt64 value);
293 |
294 | /**
295 | * Compute the number of bytes that would be needed to encode an
296 | * {@code sint32} field, including tag.
297 | */
298 | SInt32 computeSInt32SizeNoTag(SInt32 value);
299 |
300 | /**
301 | * Compute the number of bytes that would be needed to encode an
302 | * {@code sint64} field, including tag.
303 | */
304 | SInt32 computeSInt64SizeNoTag(SInt64 value);
305 |
306 | /**
307 | * Compute the number of bytes that would be needed to encode a varint.
308 | * {@code value} is treated as unsigned, so it won't be sign-extended if
309 | * negative.
310 | */
311 | SInt32 computeRawVarint32Size(SInt32 value);
312 |
313 | /** Compute the number of bytes that would be needed to encode a varint. */
314 | SInt32 computeRawVarint64Size(SInt64 value);
315 |
316 | /**
317 | * Compute the number of bytes that would be needed to encode a
318 | * MessageSet extension to the stream. For historical reasons,
319 | * the wire format differs from normal fields.
320 | */
321 | SInt32 computeMessageSetExtensionSize(SInt32 fieldNumber, const id value);
322 |
323 | /**
324 | * Compute the number of bytes that would be needed to encode an
325 | * unparsed MessageSet extension field to the stream. For
326 | * historical reasons, the wire format differs from normal fields.
327 | */
328 | SInt32 computeRawMessageSetExtensionSize(SInt32 fieldNumber, const NSData* value);
329 |
330 | /**
331 | * Compute the number of bytes that would be needed to encode an
332 | * enum field, including tag. Caller is responsible for converting the
333 | * enum value to its numeric value.
334 | */
335 | SInt32 computeEnumSize(SInt32 fieldNumber, SInt32 value);
336 |
--------------------------------------------------------------------------------
/LICENSE.txt:
--------------------------------------------------------------------------------
1 |
2 | Underdark License
3 | Version 1.0, January 2016
4 | http://underdark.io
5 |
6 | TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
7 |
8 | 1. Definitions.
9 |
10 | "License" shall mean the terms and conditions for use, reproduction,
11 | and distribution as defined by Sections 1 through 9 of this document.
12 |
13 | "Licensor" shall mean the copyright owner or entity authorized by
14 | the copyright owner that is granting the License.
15 |
16 | "Legal Entity" shall mean the union of the acting entity and all
17 | other entities that control, are controlled by, or are under common
18 | control with that entity. For the purposes of this definition,
19 | "control" means (i) the power, direct or indirect, to cause the
20 | direction or management of such entity, whether by contract or
21 | otherwise, or (ii) ownership of fifty percent (50%) or more of the
22 | outstanding shares, or (iii) beneficial ownership of such entity.
23 |
24 | "You" (or "Your") shall mean an individual or Legal Entity
25 | exercising permissions granted by this License.
26 |
27 | "Source" form shall mean the preferred form for making modifications,
28 | including but not limited to software source code, documentation
29 | source, and configuration files.
30 |
31 | "Object" form shall mean any form resulting from mechanical
32 | transformation or translation of a Source form, including but
33 | not limited to compiled object code, generated documentation,
34 | and conversions to other media types.
35 |
36 | "Work" shall mean the work of authorship, whether in Source or
37 | Object form, made available under the License, as indicated by a
38 | copyright notice that is included in or attached to the work
39 | (an example is provided in the Appendix below).
40 |
41 | "Derivative Works" shall mean any work, whether in Source or Object
42 | form, that is based on (or derived from) the Work and for which the
43 | editorial revisions, annotations, elaborations, or other modifications
44 | represent, as a whole, an original work of authorship. For the purposes
45 | of this License, Derivative Works shall not include works that remain
46 | separable from, or merely link (or bind by name) to the interfaces of,
47 | the Work and Derivative Works thereof.
48 |
49 | "Contribution" shall mean any work of authorship, including
50 | the original version of the Work and any modifications or additions
51 | to that Work or Derivative Works thereof, that is intentionally
52 | submitted to Licensor for inclusion in the Work by the copyright owner
53 | or by an individual or Legal Entity authorized to submit on behalf of
54 | the copyright owner. For the purposes of this definition, "submitted"
55 | means any form of electronic, verbal, or written communication sent
56 | to the Licensor or its representatives, including but not limited to
57 | communication on electronic mailing lists, source code control systems,
58 | and issue tracking systems that are managed by, or on behalf of, the
59 | Licensor for the purpose of discussing and improving the Work, but
60 | excluding communication that is conspicuously marked or otherwise
61 | designated in writing by the copyright owner as "Not a Contribution."
62 |
63 | "Contributor" shall mean Licensor and any individual or Legal Entity
64 | on behalf of whom a Contribution has been received by Licensor and
65 | subsequently incorporated within the Work.
66 |
67 | "Architect" shall mean Vladimir L. Shabanov
68 | or individual or Legal Entity who received written permission
69 | from Vladimir L. Shabanov to act as Architect.
70 |
71 | 2. Grant of Copyright License. Subject to the terms and conditions of
72 | this License, each Contributor hereby grants to You a perpetual,
73 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
74 | copyright license to reproduce, prepare Derivative Works of,
75 | publicly display, publicly perform, sublicense, and distribute the
76 | Work and such Derivative Works in Source or Object form.
77 |
78 | 3. Grant of Patent License. Subject to the terms and conditions of
79 | this License, each Contributor hereby grants to You a perpetual,
80 | worldwide, non-exclusive, no-charge, royalty-free, irrevocable
81 | (except as stated in this section) patent license to make, have made,
82 | use, offer to sell, sell, import, and otherwise transfer the Work,
83 | where such license applies only to those patent claims licensable
84 | by such Contributor that are necessarily infringed by their
85 | Contribution(s) alone or by combination of their Contribution(s)
86 | with the Work to which such Contribution(s) was submitted. If You
87 | institute patent litigation against any entity (including a
88 | cross-claim or counterclaim in a lawsuit) alleging that the Work
89 | or a Contribution incorporated within the Work constitutes direct
90 | or contributory patent infringement, then any patent licenses
91 | granted to You under this License for that Work shall terminate
92 | as of the date such litigation is filed.
93 |
94 | 4. Redistribution. You may reproduce and distribute copies of the
95 | Work or Derivative Works thereof in any medium, with or without
96 | modifications, and in Source or Object form, provided that You
97 | meet the following conditions:
98 |
99 | (a) You must give any other recipients of the Work or
100 | Derivative Works a copy of this License; and
101 |
102 | (b) You must cause any modified files to carry prominent notices
103 | stating that You changed the files; and
104 |
105 | (c) You must retain, in the Source form of any Derivative Works
106 | that You distribute, all copyright, patent, trademark, and
107 | attribution notices from the Source form of the Work,
108 | excluding those notices that do not pertain to any part of
109 | the Derivative Works; and
110 |
111 | (d) If You distribute or publish the Work or Derivative Works
112 | in one or more software application stores, including
113 | but not limited to Apple App Store and/or Google Play Store,
114 | You must include in its store application description
115 | on store's application page the following line (without quotes):
116 | "Mesh networking by http://underdark.io"
117 | ; and
118 |
119 | (e) If You distribute or publish the Work or Derivative Works
120 | via website, You must include in its description on website
121 | the following line (without quotes):
122 | "Mesh networking by http://underdark.io"
123 | ; and
124 |
125 | (f) You can be exempted from conditions (d) and (e) via written
126 | permission from the Architect; and
127 |
128 | (g) If the Work includes a "NOTICE" text file as part of its
129 | distribution, then any Derivative Works that You distribute must
130 | include a readable copy of the attribution notices contained
131 | within such NOTICE file, excluding those notices that do not
132 | pertain to any part of the Derivative Works, in at least one
133 | of the following places: within a NOTICE text file distributed
134 | as part of the Derivative Works; within the Source form or
135 | documentation, if provided along with the Derivative Works; or,
136 | within a display generated by the Derivative Works, if and
137 | wherever such third-party notices normally appear. The contents
138 | of the NOTICE file are for informational purposes only and
139 | do not modify the License. You may add Your own attribution
140 | notices within Derivative Works that You distribute, alongside
141 | or as an addendum to the NOTICE text from the Work, provided
142 | that such additional attribution notices cannot be construed
143 | as modifying the License.
144 |
145 | You may add Your own copyright statement to Your modifications and
146 | may provide additional or different license terms and conditions
147 | for use, reproduction, or distribution of Your modifications, or
148 | for any such Derivative Works as a whole, provided Your use,
149 | reproduction, and distribution of the Work otherwise complies with
150 | the conditions stated in this License.
151 |
152 | 5. Submission of Contributions. Unless You explicitly state otherwise,
153 | any Contribution intentionally submitted for inclusion in the Work
154 | by You to the Licensor shall be under the terms and conditions of
155 | this License, without any additional terms or conditions.
156 | Notwithstanding the above, nothing herein shall supersede or modify
157 | the terms of any separate license agreement you may have executed
158 | with Licensor regarding such Contributions.
159 |
160 | 6. Trademarks. This License does not grant permission to use the trade
161 | names, trademarks, service marks, or product names of the Licensor,
162 | except as required for reasonable and customary use in describing the
163 | origin of the Work and reproducing the content of the NOTICE file.
164 |
165 | 7. Disclaimer of Warranty. Unless required by applicable law or
166 | agreed to in writing, Licensor provides the Work (and each
167 | Contributor provides its Contributions) on an "AS IS" BASIS,
168 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
169 | implied, including, without limitation, any warranties or conditions
170 | of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
171 | PARTICULAR PURPOSE. You are solely responsible for determining the
172 | appropriateness of using or redistributing the Work and assume any
173 | risks associated with Your exercise of permissions under this License.
174 |
175 | 8. Limitation of Liability. In no event and under no legal theory,
176 | whether in tort (including negligence), contract, or otherwise,
177 | unless required by applicable law (such as deliberate and grossly
178 | negligent acts) or agreed to in writing, shall any Contributor be
179 | liable to You for damages, including any direct, indirect, special,
180 | incidental, or consequential damages of any character arising as a
181 | result of this License or out of the use or inability to use the
182 | Work (including but not limited to damages for loss of goodwill,
183 | work stoppage, computer failure or malfunction, or any and all
184 | other commercial damages or losses), even if such Contributor
185 | has been advised of the possibility of such damages.
186 |
187 | 9. Accepting Warranty or Additional Liability. While redistributing
188 | the Work or Derivative Works thereof, You may choose to offer,
189 | and charge a fee for, acceptance of support, warranty, indemnity,
190 | or other liability obligations and/or rights consistent with this
191 | License. However, in accepting such obligations, You may act only
192 | on Your own behalf and on Your sole responsibility, not on behalf
193 | of any other Contributor, and only if You agree to indemnify,
194 | defend, and hold each Contributor harmless for any liability
195 | incurred by, or claims asserted against, such Contributor by reason
196 | of your accepting any such warranty or additional liability.
197 |
198 | END OF TERMS AND CONDITIONS
199 |
200 | APPENDIX: How to apply the Underdark License to your work.
201 |
202 | To apply the Underdark License to your work, attach the following
203 | boilerplate notice, with the fields enclosed by brackets "[]"
204 | replaced with your own identifying information. (Don't include
205 | the brackets!) The text should be enclosed in the appropriate
206 | comment syntax for the file format. We also recommend that a
207 | file or class name and description of purpose be included on the
208 | same "printed page" as the copyright notice for easier
209 | identification within third-party archives.
210 |
211 | Copyright [yyyy] [name of copyright owner]
212 |
213 | Licensed under the Underdark License, Version 1.0 (the "License");
214 | you may not use this file except in compliance with the License.
215 | You may obtain a copy of the License at
216 |
217 | http://underdark.io/LICENSE.txt
218 |
219 | Unless required by applicable law or agreed to in writing, software
220 | distributed under the License is distributed on an "AS IS" BASIS,
221 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
222 | See the License for the specific language governing permissions and
223 | limitations under the License.
--------------------------------------------------------------------------------
/UDApp/UDApp/Base.lproj/Main.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
41 |
50 |
69 |
88 |
97 |
116 |
135 |
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 |
151 |
152 |
153 |
154 |
155 |
156 |
157 |
158 |
159 |
160 |
161 |
162 |
163 |
164 |
165 |
166 |
167 |
168 |
169 |
170 |
171 |
172 |
173 |
174 |
175 |
176 |
177 |
178 |
179 |
180 |
181 |
182 |
183 |
184 |
185 |
186 |
187 |
188 |
189 |
190 |
191 |
192 |
193 |
194 |
195 |
196 |
197 |
198 |
199 |
200 |
201 |
202 |
203 |
204 |
205 |
206 |
207 |
208 |
209 |
210 |
211 |
212 |
213 |
214 |
215 |
216 |
217 |
218 |
219 |
220 |
221 |
222 |
223 |
224 |
225 |
226 |
227 |
228 |
229 |
230 |
231 |
232 |
233 |
234 |
235 |
236 |
237 |
238 |
239 |
240 |
241 |
242 |
243 |
244 |
245 |
246 |
247 |
248 |
--------------------------------------------------------------------------------
/UDApp/UDApp.xcodeproj/project.pbxproj:
--------------------------------------------------------------------------------
1 | // !$*UTF8*$!
2 | {
3 | archiveVersion = 1;
4 | classes = {
5 | };
6 | objectVersion = 46;
7 | objects = {
8 |
9 | /* Begin PBXBuildFile section */
10 | 6F213EE9A2F2F9AA5F486E3F /* Pods_UDApp.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 095F6AF6F7476E32D0DFEA6C /* Pods_UDApp.framework */; };
11 | D5077F661CA2F1DA00AA3B24 /* AppModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5077F651CA2F1DA00AA3B24 /* AppModel.swift */; };
12 | D5077F6C1CA2F3B400AA3B24 /* UDJackLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5077F6B1CA2F3B400AA3B24 /* UDJackLogger.swift */; };
13 | D5077F701CA2FC6200AA3B24 /* LogViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5077F6F1CA2FC6200AA3B24 /* LogViewController.swift */; };
14 | D531646C1FA1D00D0078C16B /* ProtocolBuffers.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D531646A1FA1D00D0078C16B /* ProtocolBuffers.framework */; };
15 | D531646D1FA1D00D0078C16B /* Underdark.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D531646B1FA1D00D0078C16B /* Underdark.framework */; };
16 | D531646E1FA1D1E80078C16B /* ProtocolBuffers.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D531646A1FA1D00D0078C16B /* ProtocolBuffers.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
17 | D531646F1FA1D1E80078C16B /* Underdark.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = D531646B1FA1D00D0078C16B /* Underdark.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
18 | D5C068071D5A11C6009F41D6 /* FormLogger.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5C068061D5A11C6009F41D6 /* FormLogger.swift */; };
19 | D5C0681A1D5A14C1009F41D6 /* LogFormatter.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5C068191D5A14C1009F41D6 /* LogFormatter.swift */; };
20 | D5D0712E1BAEF02500AF0161 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5D0712D1BAEF02500AF0161 /* AppDelegate.swift */; };
21 | D5D071301BAEF02500AF0161 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5D0712F1BAEF02500AF0161 /* ViewController.swift */; };
22 | D5D071331BAEF02500AF0161 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D5D071311BAEF02500AF0161 /* Main.storyboard */; };
23 | D5D071351BAEF02500AF0161 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D5D071341BAEF02500AF0161 /* Assets.xcassets */; };
24 | D5D071381BAEF02500AF0161 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = D5D071361BAEF02500AF0161 /* LaunchScreen.storyboard */; };
25 | D5D071431BAEF02500AF0161 /* UDAppTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5D071421BAEF02500AF0161 /* UDAppTests.swift */; };
26 | D5D071641BAEF2DE00AF0161 /* Node.swift in Sources */ = {isa = PBXBuildFile; fileRef = D5D071631BAEF2DE00AF0161 /* Node.swift */; };
27 | /* End PBXBuildFile section */
28 |
29 | /* Begin PBXContainerItemProxy section */
30 | D5D0713F1BAEF02500AF0161 /* PBXContainerItemProxy */ = {
31 | isa = PBXContainerItemProxy;
32 | containerPortal = D5D071221BAEF02500AF0161 /* Project object */;
33 | proxyType = 1;
34 | remoteGlobalIDString = D5D071291BAEF02500AF0161;
35 | remoteInfo = UDApp;
36 | };
37 | /* End PBXContainerItemProxy section */
38 |
39 | /* Begin PBXCopyFilesBuildPhase section */
40 | D53888121D01D1240074AA75 /* Embed Frameworks */ = {
41 | isa = PBXCopyFilesBuildPhase;
42 | buildActionMask = 2147483647;
43 | dstPath = "";
44 | dstSubfolderSpec = 10;
45 | files = (
46 | D531646E1FA1D1E80078C16B /* ProtocolBuffers.framework in Embed Frameworks */,
47 | D531646F1FA1D1E80078C16B /* Underdark.framework in Embed Frameworks */,
48 | );
49 | name = "Embed Frameworks";
50 | runOnlyForDeploymentPostprocessing = 0;
51 | };
52 | /* End PBXCopyFilesBuildPhase section */
53 |
54 | /* Begin PBXFileReference section */
55 | 095F6AF6F7476E32D0DFEA6C /* Pods_UDApp.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_UDApp.framework; sourceTree = BUILT_PRODUCTS_DIR; };
56 | A993B8AA75AE16CA611B2BAC /* Pods-UDApp.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UDApp.debug.xcconfig"; path = "Pods/Target Support Files/Pods-UDApp/Pods-UDApp.debug.xcconfig"; sourceTree = ""; };
57 | D2CB1E3203AC68D9B24A0043 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; };
58 | D5077F651CA2F1DA00AA3B24 /* AppModel.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppModel.swift; sourceTree = ""; };
59 | D5077F6B1CA2F3B400AA3B24 /* UDJackLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = UDJackLogger.swift; sourceTree = ""; };
60 | D5077F6F1CA2FC6200AA3B24 /* LogViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogViewController.swift; sourceTree = ""; };
61 | D531646A1FA1D00D0078C16B /* ProtocolBuffers.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ProtocolBuffers.framework; path = ../Underdark/ProtocolBuffers.framework; sourceTree = ""; };
62 | D531646B1FA1D00D0078C16B /* Underdark.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Underdark.framework; path = ../Underdark/Underdark.framework; sourceTree = ""; };
63 | D54A1D841D50835B00FC6B6A /* ProtocolBuffers.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ProtocolBuffers.framework; path = Carthage/Build/iOS/ProtocolBuffers.framework; sourceTree = ""; };
64 | D5C068061D5A11C6009F41D6 /* FormLogger.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = FormLogger.swift; sourceTree = ""; };
65 | D5C068091D5A1260009F41D6 /* CocoaLumberjack.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CocoaLumberjack.framework; path = Carthage/Build/iOS/CocoaLumberjack.framework; sourceTree = ""; };
66 | D5C0680A1D5A1260009F41D6 /* CocoaLumberjackSwift.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CocoaLumberjackSwift.framework; path = Carthage/Build/iOS/CocoaLumberjackSwift.framework; sourceTree = ""; };
67 | D5C0680B1D5A1260009F41D6 /* NSLogger.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = NSLogger.framework; path = Carthage/Build/iOS/NSLogger.framework; sourceTree = ""; };
68 | D5C0680C1D5A1260009F41D6 /* XCDLumberjackNSLogger.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCDLumberjackNSLogger.framework; path = Carthage/Build/iOS/XCDLumberjackNSLogger.framework; sourceTree = ""; };
69 | D5C068191D5A14C1009F41D6 /* LogFormatter.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LogFormatter.swift; sourceTree = ""; };
70 | D5D0712A1BAEF02500AF0161 /* UDApp.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = UDApp.app; sourceTree = BUILT_PRODUCTS_DIR; };
71 | D5D0712D1BAEF02500AF0161 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; };
72 | D5D0712F1BAEF02500AF0161 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; };
73 | D5D071321BAEF02500AF0161 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; };
74 | D5D071341BAEF02500AF0161 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; };
75 | D5D071371BAEF02500AF0161 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; };
76 | D5D071391BAEF02500AF0161 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
77 | D5D0713E1BAEF02500AF0161 /* UDAppTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = UDAppTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
78 | D5D071421BAEF02500AF0161 /* UDAppTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UDAppTests.swift; sourceTree = ""; };
79 | D5D071441BAEF02500AF0161 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; };
80 | D5D071631BAEF2DE00AF0161 /* Node.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Node.swift; sourceTree = ""; };
81 | F4F5492F906C8B1DC02D15A2 /* Pods-UDApp.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-UDApp.release.xcconfig"; path = "Pods/Target Support Files/Pods-UDApp/Pods-UDApp.release.xcconfig"; sourceTree = ""; };
82 | /* End PBXFileReference section */
83 |
84 | /* Begin PBXFrameworksBuildPhase section */
85 | D5D071271BAEF02500AF0161 /* Frameworks */ = {
86 | isa = PBXFrameworksBuildPhase;
87 | buildActionMask = 2147483647;
88 | files = (
89 | 6F213EE9A2F2F9AA5F486E3F /* Pods_UDApp.framework in Frameworks */,
90 | D531646C1FA1D00D0078C16B /* ProtocolBuffers.framework in Frameworks */,
91 | D531646D1FA1D00D0078C16B /* Underdark.framework in Frameworks */,
92 | );
93 | runOnlyForDeploymentPostprocessing = 0;
94 | };
95 | D5D0713B1BAEF02500AF0161 /* Frameworks */ = {
96 | isa = PBXFrameworksBuildPhase;
97 | buildActionMask = 2147483647;
98 | files = (
99 | );
100 | runOnlyForDeploymentPostprocessing = 0;
101 | };
102 | /* End PBXFrameworksBuildPhase section */
103 |
104 | /* Begin PBXGroup section */
105 | 99AC6183B1B59A9AACCC8379 /* Frameworks */ = {
106 | isa = PBXGroup;
107 | children = (
108 | D531646A1FA1D00D0078C16B /* ProtocolBuffers.framework */,
109 | D531646B1FA1D00D0078C16B /* Underdark.framework */,
110 | D5C068091D5A1260009F41D6 /* CocoaLumberjack.framework */,
111 | D5C0680A1D5A1260009F41D6 /* CocoaLumberjackSwift.framework */,
112 | D5C0680B1D5A1260009F41D6 /* NSLogger.framework */,
113 | D5C0680C1D5A1260009F41D6 /* XCDLumberjackNSLogger.framework */,
114 | D54A1D841D50835B00FC6B6A /* ProtocolBuffers.framework */,
115 | D2CB1E3203AC68D9B24A0043 /* Pods.framework */,
116 | 095F6AF6F7476E32D0DFEA6C /* Pods_UDApp.framework */,
117 | );
118 | name = Frameworks;
119 | sourceTree = "";
120 | };
121 | D5077F691CA2F36200AA3B24 /* Logging */ = {
122 | isa = PBXGroup;
123 | children = (
124 | D5C068061D5A11C6009F41D6 /* FormLogger.swift */,
125 | D5077F6B1CA2F3B400AA3B24 /* UDJackLogger.swift */,
126 | D5C068191D5A14C1009F41D6 /* LogFormatter.swift */,
127 | );
128 | name = Logging;
129 | sourceTree = "";
130 | };
131 | D5D071211BAEF02500AF0161 = {
132 | isa = PBXGroup;
133 | children = (
134 | D5D0712C1BAEF02500AF0161 /* UDApp */,
135 | D5D071411BAEF02500AF0161 /* UDAppTests */,
136 | D5D0712B1BAEF02500AF0161 /* Products */,
137 | 99AC6183B1B59A9AACCC8379 /* Frameworks */,
138 | FB44DF87592C81C1AE739E7E /* Pods */,
139 | );
140 | sourceTree = "";
141 | };
142 | D5D0712B1BAEF02500AF0161 /* Products */ = {
143 | isa = PBXGroup;
144 | children = (
145 | D5D0712A1BAEF02500AF0161 /* UDApp.app */,
146 | D5D0713E1BAEF02500AF0161 /* UDAppTests.xctest */,
147 | );
148 | name = Products;
149 | sourceTree = "";
150 | };
151 | D5D0712C1BAEF02500AF0161 /* UDApp */ = {
152 | isa = PBXGroup;
153 | children = (
154 | D5077F691CA2F36200AA3B24 /* Logging */,
155 | D5D071611BAEF2B600AF0161 /* Model */,
156 | D5D071621BAEF2BF00AF0161 /* Controllers */,
157 | D5D0712D1BAEF02500AF0161 /* AppDelegate.swift */,
158 | D5077F651CA2F1DA00AA3B24 /* AppModel.swift */,
159 | D5D071311BAEF02500AF0161 /* Main.storyboard */,
160 | D5D071341BAEF02500AF0161 /* Assets.xcassets */,
161 | D5D071361BAEF02500AF0161 /* LaunchScreen.storyboard */,
162 | D5D071391BAEF02500AF0161 /* Info.plist */,
163 | );
164 | path = UDApp;
165 | sourceTree = "";
166 | };
167 | D5D071411BAEF02500AF0161 /* UDAppTests */ = {
168 | isa = PBXGroup;
169 | children = (
170 | D5D071421BAEF02500AF0161 /* UDAppTests.swift */,
171 | D5D071441BAEF02500AF0161 /* Info.plist */,
172 | );
173 | path = UDAppTests;
174 | sourceTree = "";
175 | };
176 | D5D071611BAEF2B600AF0161 /* Model */ = {
177 | isa = PBXGroup;
178 | children = (
179 | D5D071631BAEF2DE00AF0161 /* Node.swift */,
180 | );
181 | name = Model;
182 | sourceTree = "";
183 | };
184 | D5D071621BAEF2BF00AF0161 /* Controllers */ = {
185 | isa = PBXGroup;
186 | children = (
187 | D5D0712F1BAEF02500AF0161 /* ViewController.swift */,
188 | D5077F6F1CA2FC6200AA3B24 /* LogViewController.swift */,
189 | );
190 | name = Controllers;
191 | sourceTree = "";
192 | };
193 | FB44DF87592C81C1AE739E7E /* Pods */ = {
194 | isa = PBXGroup;
195 | children = (
196 | A993B8AA75AE16CA611B2BAC /* Pods-UDApp.debug.xcconfig */,
197 | F4F5492F906C8B1DC02D15A2 /* Pods-UDApp.release.xcconfig */,
198 | );
199 | name = Pods;
200 | sourceTree = "";
201 | };
202 | /* End PBXGroup section */
203 |
204 | /* Begin PBXNativeTarget section */
205 | D5D071291BAEF02500AF0161 /* UDApp */ = {
206 | isa = PBXNativeTarget;
207 | buildConfigurationList = D5D071521BAEF02500AF0161 /* Build configuration list for PBXNativeTarget "UDApp" */;
208 | buildPhases = (
209 | 5210F41F98DB0E215EB3D826 /* [CP] Check Pods Manifest.lock */,
210 | D5D071261BAEF02500AF0161 /* Sources */,
211 | D5D071271BAEF02500AF0161 /* Frameworks */,
212 | D5D071281BAEF02500AF0161 /* Resources */,
213 | EFB20F7920B70D3FCB45E192 /* [CP] Embed Pods Frameworks */,
214 | 43613718EBEA278528DD1DD3 /* [CP] Copy Pods Resources */,
215 | D53888121D01D1240074AA75 /* Embed Frameworks */,
216 | D54A1D7F1D50805900FC6B6A /* Carthage Copy Frameworks */,
217 | );
218 | buildRules = (
219 | );
220 | dependencies = (
221 | );
222 | name = UDApp;
223 | productName = UDApp;
224 | productReference = D5D0712A1BAEF02500AF0161 /* UDApp.app */;
225 | productType = "com.apple.product-type.application";
226 | };
227 | D5D0713D1BAEF02500AF0161 /* UDAppTests */ = {
228 | isa = PBXNativeTarget;
229 | buildConfigurationList = D5D071551BAEF02500AF0161 /* Build configuration list for PBXNativeTarget "UDAppTests" */;
230 | buildPhases = (
231 | D5D0713A1BAEF02500AF0161 /* Sources */,
232 | D5D0713B1BAEF02500AF0161 /* Frameworks */,
233 | D5D0713C1BAEF02500AF0161 /* Resources */,
234 | );
235 | buildRules = (
236 | );
237 | dependencies = (
238 | D5D071401BAEF02500AF0161 /* PBXTargetDependency */,
239 | );
240 | name = UDAppTests;
241 | productName = UDAppTests;
242 | productReference = D5D0713E1BAEF02500AF0161 /* UDAppTests.xctest */;
243 | productType = "com.apple.product-type.bundle.unit-test";
244 | };
245 | /* End PBXNativeTarget section */
246 |
247 | /* Begin PBXProject section */
248 | D5D071221BAEF02500AF0161 /* Project object */ = {
249 | isa = PBXProject;
250 | attributes = {
251 | CLASSPREFIX = "";
252 | LastUpgradeCheck = 0900;
253 | ORGANIZATIONNAME = Underdark;
254 | TargetAttributes = {
255 | D5D071291BAEF02500AF0161 = {
256 | CreatedOnToolsVersion = 7.0;
257 | DevelopmentTeam = RRTBW4XF74;
258 | LastSwiftMigration = 0900;
259 | ProvisioningStyle = Automatic;
260 | };
261 | D5D0713D1BAEF02500AF0161 = {
262 | CreatedOnToolsVersion = 7.0;
263 | TestTargetID = D5D071291BAEF02500AF0161;
264 | };
265 | };
266 | };
267 | buildConfigurationList = D5D071251BAEF02500AF0161 /* Build configuration list for PBXProject "UDApp" */;
268 | compatibilityVersion = "Xcode 3.2";
269 | developmentRegion = English;
270 | hasScannedForEncodings = 0;
271 | knownRegions = (
272 | en,
273 | Base,
274 | );
275 | mainGroup = D5D071211BAEF02500AF0161;
276 | productRefGroup = D5D0712B1BAEF02500AF0161 /* Products */;
277 | projectDirPath = "";
278 | projectRoot = "";
279 | targets = (
280 | D5D071291BAEF02500AF0161 /* UDApp */,
281 | D5D0713D1BAEF02500AF0161 /* UDAppTests */,
282 | );
283 | };
284 | /* End PBXProject section */
285 |
286 | /* Begin PBXResourcesBuildPhase section */
287 | D5D071281BAEF02500AF0161 /* Resources */ = {
288 | isa = PBXResourcesBuildPhase;
289 | buildActionMask = 2147483647;
290 | files = (
291 | D5D071381BAEF02500AF0161 /* LaunchScreen.storyboard in Resources */,
292 | D5D071351BAEF02500AF0161 /* Assets.xcassets in Resources */,
293 | D5D071331BAEF02500AF0161 /* Main.storyboard in Resources */,
294 | );
295 | runOnlyForDeploymentPostprocessing = 0;
296 | };
297 | D5D0713C1BAEF02500AF0161 /* Resources */ = {
298 | isa = PBXResourcesBuildPhase;
299 | buildActionMask = 2147483647;
300 | files = (
301 | );
302 | runOnlyForDeploymentPostprocessing = 0;
303 | };
304 | /* End PBXResourcesBuildPhase section */
305 |
306 | /* Begin PBXShellScriptBuildPhase section */
307 | 43613718EBEA278528DD1DD3 /* [CP] Copy Pods Resources */ = {
308 | isa = PBXShellScriptBuildPhase;
309 | buildActionMask = 2147483647;
310 | files = (
311 | );
312 | inputPaths = (
313 | );
314 | name = "[CP] Copy Pods Resources";
315 | outputPaths = (
316 | );
317 | runOnlyForDeploymentPostprocessing = 0;
318 | shellPath = /bin/sh;
319 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-UDApp/Pods-UDApp-resources.sh\"\n";
320 | showEnvVarsInLog = 0;
321 | };
322 | 5210F41F98DB0E215EB3D826 /* [CP] Check Pods Manifest.lock */ = {
323 | isa = PBXShellScriptBuildPhase;
324 | buildActionMask = 2147483647;
325 | files = (
326 | );
327 | inputPaths = (
328 | "${PODS_PODFILE_DIR_PATH}/Podfile.lock",
329 | "${PODS_ROOT}/Manifest.lock",
330 | );
331 | name = "[CP] Check Pods Manifest.lock";
332 | outputPaths = (
333 | "$(DERIVED_FILE_DIR)/Pods-UDApp-checkManifestLockResult.txt",
334 | );
335 | runOnlyForDeploymentPostprocessing = 0;
336 | shellPath = /bin/sh;
337 | shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
338 | showEnvVarsInLog = 0;
339 | };
340 | D54A1D7F1D50805900FC6B6A /* Carthage Copy Frameworks */ = {
341 | isa = PBXShellScriptBuildPhase;
342 | buildActionMask = 2147483647;
343 | files = (
344 | );
345 | inputPaths = (
346 | "$(SRCROOT)/../Underdark/ProtocolBuffers.framework",
347 | "$(SRCROOT)/../Underdark/Underdark.framework",
348 | );
349 | name = "Carthage Copy Frameworks";
350 | outputPaths = (
351 | );
352 | runOnlyForDeploymentPostprocessing = 0;
353 | shellPath = /bin/sh;
354 | shellScript = "/usr/local/bin/carthage copy-frameworks";
355 | };
356 | EFB20F7920B70D3FCB45E192 /* [CP] Embed Pods Frameworks */ = {
357 | isa = PBXShellScriptBuildPhase;
358 | buildActionMask = 2147483647;
359 | files = (
360 | );
361 | inputPaths = (
362 | "${SRCROOT}/Pods/Target Support Files/Pods-UDApp/Pods-UDApp-frameworks.sh",
363 | "${BUILT_PRODUCTS_DIR}/CocoaLumberjack/CocoaLumberjack.framework",
364 | "${BUILT_PRODUCTS_DIR}/NSLogger/NSLogger.framework",
365 | "${BUILT_PRODUCTS_DIR}/XCDLumberjackNSLogger/XCDLumberjackNSLogger.framework",
366 | );
367 | name = "[CP] Embed Pods Frameworks";
368 | outputPaths = (
369 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CocoaLumberjack.framework",
370 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/NSLogger.framework",
371 | "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/XCDLumberjackNSLogger.framework",
372 | );
373 | runOnlyForDeploymentPostprocessing = 0;
374 | shellPath = /bin/sh;
375 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-UDApp/Pods-UDApp-frameworks.sh\"\n";
376 | showEnvVarsInLog = 0;
377 | };
378 | /* End PBXShellScriptBuildPhase section */
379 |
380 | /* Begin PBXSourcesBuildPhase section */
381 | D5D071261BAEF02500AF0161 /* Sources */ = {
382 | isa = PBXSourcesBuildPhase;
383 | buildActionMask = 2147483647;
384 | files = (
385 | D5077F6C1CA2F3B400AA3B24 /* UDJackLogger.swift in Sources */,
386 | D5D071641BAEF2DE00AF0161 /* Node.swift in Sources */,
387 | D5D071301BAEF02500AF0161 /* ViewController.swift in Sources */,
388 | D5C0681A1D5A14C1009F41D6 /* LogFormatter.swift in Sources */,
389 | D5077F701CA2FC6200AA3B24 /* LogViewController.swift in Sources */,
390 | D5D0712E1BAEF02500AF0161 /* AppDelegate.swift in Sources */,
391 | D5077F661CA2F1DA00AA3B24 /* AppModel.swift in Sources */,
392 | D5C068071D5A11C6009F41D6 /* FormLogger.swift in Sources */,
393 | );
394 | runOnlyForDeploymentPostprocessing = 0;
395 | };
396 | D5D0713A1BAEF02500AF0161 /* Sources */ = {
397 | isa = PBXSourcesBuildPhase;
398 | buildActionMask = 2147483647;
399 | files = (
400 | D5D071431BAEF02500AF0161 /* UDAppTests.swift in Sources */,
401 | );
402 | runOnlyForDeploymentPostprocessing = 0;
403 | };
404 | /* End PBXSourcesBuildPhase section */
405 |
406 | /* Begin PBXTargetDependency section */
407 | D5D071401BAEF02500AF0161 /* PBXTargetDependency */ = {
408 | isa = PBXTargetDependency;
409 | target = D5D071291BAEF02500AF0161 /* UDApp */;
410 | targetProxy = D5D0713F1BAEF02500AF0161 /* PBXContainerItemProxy */;
411 | };
412 | /* End PBXTargetDependency section */
413 |
414 | /* Begin PBXVariantGroup section */
415 | D5D071311BAEF02500AF0161 /* Main.storyboard */ = {
416 | isa = PBXVariantGroup;
417 | children = (
418 | D5D071321BAEF02500AF0161 /* Base */,
419 | );
420 | name = Main.storyboard;
421 | sourceTree = "";
422 | };
423 | D5D071361BAEF02500AF0161 /* LaunchScreen.storyboard */ = {
424 | isa = PBXVariantGroup;
425 | children = (
426 | D5D071371BAEF02500AF0161 /* Base */,
427 | );
428 | name = LaunchScreen.storyboard;
429 | sourceTree = "";
430 | };
431 | /* End PBXVariantGroup section */
432 |
433 | /* Begin XCBuildConfiguration section */
434 | D5D071501BAEF02500AF0161 /* Debug */ = {
435 | isa = XCBuildConfiguration;
436 | buildSettings = {
437 | ALWAYS_SEARCH_USER_PATHS = NO;
438 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
439 | CLANG_CXX_LIBRARY = "libc++";
440 | CLANG_ENABLE_MODULES = YES;
441 | CLANG_ENABLE_OBJC_ARC = YES;
442 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
443 | CLANG_WARN_BOOL_CONVERSION = YES;
444 | CLANG_WARN_COMMA = YES;
445 | CLANG_WARN_CONSTANT_CONVERSION = YES;
446 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
447 | CLANG_WARN_EMPTY_BODY = YES;
448 | CLANG_WARN_ENUM_CONVERSION = YES;
449 | CLANG_WARN_INFINITE_RECURSION = YES;
450 | CLANG_WARN_INT_CONVERSION = YES;
451 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
452 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
453 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
454 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
455 | CLANG_WARN_STRICT_PROTOTYPES = YES;
456 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
457 | CLANG_WARN_UNREACHABLE_CODE = YES;
458 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
459 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
460 | COPY_PHASE_STRIP = NO;
461 | DEBUG_INFORMATION_FORMAT = dwarf;
462 | ENABLE_STRICT_OBJC_MSGSEND = YES;
463 | ENABLE_TESTABILITY = YES;
464 | GCC_C_LANGUAGE_STANDARD = gnu99;
465 | GCC_DYNAMIC_NO_PIC = NO;
466 | GCC_NO_COMMON_BLOCKS = YES;
467 | GCC_OPTIMIZATION_LEVEL = 0;
468 | GCC_PREPROCESSOR_DEFINITIONS = (
469 | "DEBUG=1",
470 | "$(inherited)",
471 | );
472 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
473 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
474 | GCC_WARN_UNDECLARED_SELECTOR = YES;
475 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
476 | GCC_WARN_UNUSED_FUNCTION = YES;
477 | GCC_WARN_UNUSED_VARIABLE = YES;
478 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
479 | MTL_ENABLE_DEBUG_INFO = YES;
480 | ONLY_ACTIVE_ARCH = YES;
481 | SDKROOT = iphoneos;
482 | SWIFT_OPTIMIZATION_LEVEL = "-Onone";
483 | };
484 | name = Debug;
485 | };
486 | D5D071511BAEF02500AF0161 /* Release */ = {
487 | isa = XCBuildConfiguration;
488 | buildSettings = {
489 | ALWAYS_SEARCH_USER_PATHS = NO;
490 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
491 | CLANG_CXX_LIBRARY = "libc++";
492 | CLANG_ENABLE_MODULES = YES;
493 | CLANG_ENABLE_OBJC_ARC = YES;
494 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
495 | CLANG_WARN_BOOL_CONVERSION = YES;
496 | CLANG_WARN_COMMA = YES;
497 | CLANG_WARN_CONSTANT_CONVERSION = YES;
498 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
499 | CLANG_WARN_EMPTY_BODY = YES;
500 | CLANG_WARN_ENUM_CONVERSION = YES;
501 | CLANG_WARN_INFINITE_RECURSION = YES;
502 | CLANG_WARN_INT_CONVERSION = YES;
503 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
504 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
505 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
506 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
507 | CLANG_WARN_STRICT_PROTOTYPES = YES;
508 | CLANG_WARN_SUSPICIOUS_MOVE = YES;
509 | CLANG_WARN_UNREACHABLE_CODE = YES;
510 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
511 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
512 | COPY_PHASE_STRIP = NO;
513 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
514 | ENABLE_NS_ASSERTIONS = NO;
515 | ENABLE_STRICT_OBJC_MSGSEND = YES;
516 | GCC_C_LANGUAGE_STANDARD = gnu99;
517 | GCC_NO_COMMON_BLOCKS = YES;
518 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
519 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
520 | GCC_WARN_UNDECLARED_SELECTOR = YES;
521 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
522 | GCC_WARN_UNUSED_FUNCTION = YES;
523 | GCC_WARN_UNUSED_VARIABLE = YES;
524 | IPHONEOS_DEPLOYMENT_TARGET = 9.0;
525 | MTL_ENABLE_DEBUG_INFO = NO;
526 | SDKROOT = iphoneos;
527 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule";
528 | VALIDATE_PRODUCT = YES;
529 | };
530 | name = Release;
531 | };
532 | D5D071531BAEF02500AF0161 /* Debug */ = {
533 | isa = XCBuildConfiguration;
534 | baseConfigurationReference = A993B8AA75AE16CA611B2BAC /* Pods-UDApp.debug.xcconfig */;
535 | buildSettings = {
536 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
537 | CODE_SIGN_IDENTITY = "iPhone Developer";
538 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
539 | DEVELOPMENT_TEAM = RRTBW4XF74;
540 | FRAMEWORK_SEARCH_PATHS = (
541 | "$(inherited)",
542 | "$(PROJECT_DIR)/../Underdark",
543 | );
544 | INFOPLIST_FILE = UDApp/Info.plist;
545 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) '@executable_path/Frameworks'";
546 | PRODUCT_BUNDLE_IDENTIFIER = io.underdark.udapp;
547 | PRODUCT_NAME = "$(TARGET_NAME)";
548 | PROVISIONING_PROFILE = "";
549 | SWIFT_SWIFT3_OBJC_INFERENCE = Default;
550 | SWIFT_VERSION = 4.0;
551 | };
552 | name = Debug;
553 | };
554 | D5D071541BAEF02500AF0161 /* Release */ = {
555 | isa = XCBuildConfiguration;
556 | baseConfigurationReference = F4F5492F906C8B1DC02D15A2 /* Pods-UDApp.release.xcconfig */;
557 | buildSettings = {
558 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
559 | CODE_SIGN_IDENTITY = "iPhone Distribution";
560 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
561 | DEVELOPMENT_TEAM = RRTBW4XF74;
562 | FRAMEWORK_SEARCH_PATHS = (
563 | "$(inherited)",
564 | "$(PROJECT_DIR)/../Underdark",
565 | );
566 | INFOPLIST_FILE = UDApp/Info.plist;
567 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) '@executable_path/Frameworks'";
568 | PRODUCT_BUNDLE_IDENTIFIER = io.underdark.udapp;
569 | PRODUCT_NAME = "$(TARGET_NAME)";
570 | PROVISIONING_PROFILE = "";
571 | SWIFT_SWIFT3_OBJC_INFERENCE = Default;
572 | SWIFT_VERSION = 4.0;
573 | };
574 | name = Release;
575 | };
576 | D5D071561BAEF02500AF0161 /* Debug */ = {
577 | isa = XCBuildConfiguration;
578 | buildSettings = {
579 | FRAMEWORK_SEARCH_PATHS = (
580 | "$(inherited)",
581 | "$(PROJECT_DIR)/Carthage/Build/iOS",
582 | );
583 | INFOPLIST_FILE = UDAppTests/Info.plist;
584 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
585 | PRODUCT_BUNDLE_IDENTIFIER = io.underdark.UDAppTests;
586 | PRODUCT_NAME = "$(TARGET_NAME)";
587 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/UDApp.app/UDApp";
588 | };
589 | name = Debug;
590 | };
591 | D5D071571BAEF02500AF0161 /* Release */ = {
592 | isa = XCBuildConfiguration;
593 | buildSettings = {
594 | FRAMEWORK_SEARCH_PATHS = (
595 | "$(inherited)",
596 | "$(PROJECT_DIR)/Carthage/Build/iOS",
597 | );
598 | INFOPLIST_FILE = UDAppTests/Info.plist;
599 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
600 | PRODUCT_BUNDLE_IDENTIFIER = io.underdark.UDAppTests;
601 | PRODUCT_NAME = "$(TARGET_NAME)";
602 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/UDApp.app/UDApp";
603 | };
604 | name = Release;
605 | };
606 | /* End XCBuildConfiguration section */
607 |
608 | /* Begin XCConfigurationList section */
609 | D5D071251BAEF02500AF0161 /* Build configuration list for PBXProject "UDApp" */ = {
610 | isa = XCConfigurationList;
611 | buildConfigurations = (
612 | D5D071501BAEF02500AF0161 /* Debug */,
613 | D5D071511BAEF02500AF0161 /* Release */,
614 | );
615 | defaultConfigurationIsVisible = 0;
616 | defaultConfigurationName = Release;
617 | };
618 | D5D071521BAEF02500AF0161 /* Build configuration list for PBXNativeTarget "UDApp" */ = {
619 | isa = XCConfigurationList;
620 | buildConfigurations = (
621 | D5D071531BAEF02500AF0161 /* Debug */,
622 | D5D071541BAEF02500AF0161 /* Release */,
623 | );
624 | defaultConfigurationIsVisible = 0;
625 | defaultConfigurationName = Release;
626 | };
627 | D5D071551BAEF02500AF0161 /* Build configuration list for PBXNativeTarget "UDAppTests" */ = {
628 | isa = XCConfigurationList;
629 | buildConfigurations = (
630 | D5D071561BAEF02500AF0161 /* Debug */,
631 | D5D071571BAEF02500AF0161 /* Release */,
632 | );
633 | defaultConfigurationIsVisible = 0;
634 | defaultConfigurationName = Release;
635 | };
636 | /* End XCConfigurationList section */
637 | };
638 | rootObject = D5D071221BAEF02500AF0161 /* Project object */;
639 | }
640 |
--------------------------------------------------------------------------------