1.
DotMac Kit 2.0 (Developer Preview 2)
The DotMac Kit version 2.0 is an embeddable framework for use on Mac OS X Tiger (v10.4.2 and higher)
that allows you to build applications with networked features to leverage .Mac's 24/7 service and over
one half million paying members—all without any network programming. The following is information on
DotMac Kit 2.0.
What's New
Changes as of v2.0 (Developer Preview 2):
• This version of the Kit is built universally and will run on Intel-based Macs in addition to PPC-based
Macs.
• A bug which prevented the use of certain non-alphanumeric characters in DMTopic names has been
fixed.
Changes as of v2.0 (Developer Preview 1):
• This 2.0 version of the Kit has been released as a developer preview. It introduces new API's for
collaboration, workflow and security, specificaly an interface into .Mac's store-and-forward messaging
service as well as robust support for adding ACLs to .Mac resources. Unlike previous versions of the Kit,
version 2.0 is a Tiger-only framework (v10.4.2 and higher).
• Methods deprecated as of version 2.0:
- DMiDiskSession's +iDiskSessionWithAccount: and -initWithAccount: methods have been
deprecated and replaced with +iDiskSessionWithCredentials: and -initWithCredentials:.
- DMiDiskSession's -validateAccess method has been deprecated. Use DMMemberAccount's
-validateCredentials method instead.
- DMiDiskSession's and DMMemberAccount's -setDelegate: and -delegate methods have been
deprecated. Use DMTransactionGenerator's -setTransactionDelegate: and
-transactionDelegate methods instead.
• To have errors logged to stderr, issue the following command in the Terminal (for debug logging, set
'DMDebugLogging' as the value):
defaults write -g com.apple.DotMacKit.LoggingLevel DMErrorLogging
• DMTransaction's -contentLength and -bytesTransferred methods do not yet return the appropriate
values when called on message publication transactions in DMMessagePublisher or on
DMMessage payload retrieval transactions.
• DMSecondayUsers cannot currently be used to publish or subscribe using a DMMessagePublisher or
DMMessageSubscriber session. Publish and subscribe functionality is reserved for .Mac members or
trial members.
• A note on the optimal network configuration for interacting with .Mac's store-and-forward messaging
service: When using the DotMac Kit behind a Network Address Translation (NAT) device, make sure that
NAT-PMP is enabled on the Airport Extreme/Express base station. To enable NAT-PMP on an Apple
Extreme/Express base station you must have Airport firmware software version 4.2 or later. Check
http://www.apple.com/support/ for additional Airport software updates. If you are using a third-party NAT
device check that UPnP is supported and enabled. The Kit's messaging functionality will work without
these settings enabled, however, non-optimal network configurations can lead to a significant delay in
the receipt of messages.
2. Changes as of v1.1:
• This version introduces the .Mac Affiliate Program, which gives .Mac developers a commission for every
new .Mac membership that they generate. Additional details on the .Mac Affiliate Program can be found
in this SDK's "Affiliate Program" document and online at http://www.mac.com/1/affiliates/. Commission-
tracking is enabled by two new DMMemberAccount methods: +signUpNewMemberWithApplicationID:
and +signUpURLWithApplicationID:.
• A bug was fixed where DMiDiskSession's -validateAccess method returned the kDMInvalidCredentials
status code in error cases where kDMNetworkError should have been returned.
Changes as of v1.0.3:
• Error logging is no longer turned on by default. To have error messages logged to stderr, set
kDMErrorLogging as the value for the kDMLoggingLevel key in standard user defaults.
• A problem which occurred on 10.2.8 systems was fixed--the user-agent used in HTTP requests was
malformed and could cause requests to fail.
• A problem related to PROPFIND requests (which are used to list collections and retrieve resource
attributes) was fixed--requests could fail after valid responses were incorrectly marked as malformed.
• An issue with the creation of the Accept-Language header was fixed in the DMMemberAccount class--
requests were failing if too many non-default languages were found in the system prefs list.
• A problem that prevented the use of lock-related methods on Jaguar systems was corrected.
• A bug that caused the -basicAttributesAtPath: and -extendedAttributesAtPath: methods to fail when the
target resource was a directory has been fixed.
Changes as of v1.0.2:
• NSUserDefaults' +resetStandardUserDefaults method is no longer called, which was previously done to
ensure that the .Mac account information obtained from the system was always current. Now,
NSUserDefaults' -synchronize method is used instead. (The previous approach could interfere with an
application's simultaneous use of other frameworks, such as Web Kit, that rely on the user defaults not
being reset.)
• The human-readable application name, when provided, is now properly escaped within the user-agent
string when it contains special punctuation or Unicode characters.
Changes as of v1.0.1:
• A uri character-escaping issue was fixed which could cause the creation and retrieval of files with
special punctuation or Unicode characters in their names to fail.
Bug Reports and Feedback
• When submitting bug reports, please include the key phrase "DotMacKit_2.0_DP2" in the bug title and
description. This information is extremely helpful to our team of engineers, and will help prevent delays
in assessing your bug report and assigning it properly.
• For complete instructions on submitting bug reports, please see the following web page:
http://developer.apple.com/bugreporter
• You can also send feedback and questions to the DotMacKit@mac.com email address. If your email is
in regards to a bug, it is best if you first submit a bug report and then include the bug number in your
email. If the question is specific to this release, be sure to include the key phrase "DotMacKit_2.0_DP2"
in the subject line.
• WHEN SUPPLYING FEEDBACK:
Please be sure to include an ASP (Apple System Profiler) report along with a crash log for all crashing
bugs. Kernel panic reports are also very important. Please do your best to describe any sequence of
operations which leads to a repeatable incorrect behavior, and include example source and project