{ "info": { "author": "Moritz Pfeiffer", "author_email": "moritz.pfeiffer@alp-phone.ch", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "#Django Mobile App Distribution\n\nDjango Mobile App Distribution is a Django app that allows you to distribute iPhone, iPad and Android apps over the air to your clients.\n\nIt is made up of 2 components:\n\n* A Django Admin interface that allows you to upload and assign apps to users.\n* A mobile optimized, login protected download area where your clients can download apps that were associated with their login credentials.\n* Supports Python 2.7, 3 (tested on 3.4, 3.5) and Django >= 1.7.\n\n#Installation Django >= 1.7\n\n- ``pip install django-mobile-app-distribution``\n- Add ``django_mobile_app_distribution`` to your ``INSTALLED_APPS`` list in your project's settings.py.\n- Add ``django.contrib.sites`` to the list of ``INSTALLED_APPS`` in your project's settings.py.\n- Enable the [messages framework][message_framework_20]\n- Make sure you have set [MEDIA_ROOT][media_root_20], [MEDIA_URL][media_url_20], [STATIC_URL][static_url_20] and [STATIC_ROOT][static_root_20].\n- Add ``BASE_PATH`` (or ``BASE_DIR``) to your project's settings.py, e.g. ``import os.path BASE_PATH = os.path.dirname(__file__)``. In order to create an Android upload folder on the same level as your project's settings.py this has to be set.\n- Run ``python manage.py migrate``\n- Run ``python manage.py collectstatic``\n- If you like things tidy you can install [django-cleanup][django_cleanup_17], which removes uploaded files when the associated models are deleted.\n- Make sure the ``android/android_apps`` folder on the same level as your project's settings.py is readable and writable by your webserver.\n\t* If your webserver cannot create them for you, you have to create them by hand. See Security considerations below for more information.\n- Include ``django_mobile_app_distribution.urls`` into your project's urls.py file at the mount point of your choosing (see below). This will be where your client downloads her apps.\n- Include ``django_mobile_app_distribution.auth_urls`` into your project's urls.py (see below).\n- Add [LOGIN_REDIRECT_URL][login_redirect_url_20] to your project's settings.py. This is the URL you chose in step 7. If you're using the example below, set it to ``/distribute/``.\n- Add the [SITE_ID][site_id_20] value in your project's settings.py to the primary key of the Site object that represents your site.\n- Login to the Django Admin and add your server's URL to the Site object's domain name (create one if necessary). On the development server this would be ``http://127.0.0.1:8000/``\n\n[site_id_20]: https://docs.djangoproject.com/en/2.0/ref/settings/#site-id\n[django_cleanup_17]: https://github.com/un1t/django-cleanup\n[login_redirect_url_20]: https://docs.djangoproject.com/en/2.0/ref/settings/#login-redirect-url\n[message_framework_20]: https://docs.djangoproject.com/en/2.0/ref/contrib/messages/\n[media_root_20]: https://docs.djangoproject.com/en/2.0/ref/settings/#media-root\n[media_url_20]: https://docs.djangoproject.com/en/2.0/ref/settings/#media-url\n[static_root_20]: https://docs.djangoproject.com/en/2.0/ref/settings/#static-root\n[static_url_20]: https://docs.djangoproject.com/en/2.0/ref/settings/#static-url\n\n#URL setup\n\nInside your project's `urls.py`\n\n\tfrom django.conf.urls import include, url\n\tfrom django.contrib import admin\n\turlpatterns = [\n\t\turl(r'^admin/', include(admin.site.urls)),\n\t\turl(r'^distribute/', include('django_mobile_app_distribution.urls')),\n\t\turl(r'^accounts/', include('django_mobile_app_distribution.auth_urls')),\n\t]\n\n\nInside your project's `settings.py` file\n\n\timport os.path\n\tBASE_PATH = os.path.dirname(__file__) # `BASE_DIR` is also available.\n\tLOGIN_REDIRECT_URL = '/distribute/'\n\tSITE_ID = 1\n\n#Security considerations\n\nBy default iOS apps are uploaded to a folder called ``ios_apps`` within your ``MEDIA_ROOT``.\nThis should generally be safe enough as Ad Hoc iOS apps are provisioned to run on a limited number of devices.\n\nOn Android however a hijacked signed APK file could be redistributed against your client's wishes which is to be avoided at all cost.\nTo this end Android apps are uploaded with a custom instance of ``FileSystemStorage``. By default, Android apps are uploaded to a folder called ``android`` on the same level as your project's settings.py. The default upload path within the ``android`` folder is ``android_apps``.\nYou can change the default upload and file storage paths with the following directives in your project's settings.py:\n\n* `MOBILE_APP_DISTRIBUTION_IOS_UPLOAD_TO_DIRECTORY_NAME`\n* `MOBILE_APP_DISTRIBUTION_ANDROID_UPLOAD_TO_DIRECTORY_NAME`\n* `MOBILE_APP_DISTRIBUTION_ANDROID_FILE_STORAGE_PATH`\n\n.. note:: Make sure the ``android/android_apps`` folder is readable and writable by your webserver, but not served by your webserver.\n\n#Notify clients of available app downloads by email\n\nDjango Mobile App Distribution exposes an Admin Action that allows you to notify your clients once you've uploaded and app.\nAn email message is generated that contains a link to the download page.\nIn order for email messaging to work you need to set the following fields in your settings.py module:\n\n* [EMAIL_HOST][EMAIL_HOST]\n* [EMAIL_PORT][EMAIL_PORT]\n* [EMAIL_HOST_USER][EMAIL_HOST_USER]\n* [EMAIL_HOST_PASSWORD][EMAIL_HOST_PASSWORD]\n* [EMAIL_USE_TLS][EMAIL_USE_TLS]\n* [DEFAULT_FROM_EMAIL][DEFAULT_FROM_EMAIL]\n\n[EMAIL_HOST]: https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-EMAIL_HOST\n[EMAIL_PORT]: https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-EMAIL_PORT\n[EMAIL_HOST_USER]: https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-EMAIL_HOST_USER\n[EMAIL_HOST_PASSWORD]: https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-EMAIL_HOST_PASSWORD\n[EMAIL_USE_TLS]: https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-EMAIL_USE_TLS\n[DEFAULT_FROM_EMAIL]: https://docs.djangoproject.com/en/2.0/ref/settings/#std:setting-DEFAULT_FROM_EMAIL\n\n\n#Usage\n\n1. Create a Django Admin User object that represents your client.\n2. Make sure your clients can't login to the Django Admin Interface by unchecking the ``Staff status`` and ``Superuser status`` fields.\n3. Assign a group membership to the user if you want to distribute your apps to a group of users.\n4. Enter your client's email address if you want to be able to notify him or her of the availability of new apps.\n5. After you save a user object the Django_mobile_app_distribution in the admin interface exposes an extended user info object that allows you to change the correspondence language for that user.\n6. Create iOS or Android Apps to your liking.\n7. Use the admin action in the change list to notify users of the availability of new apps.\n\n#Android specifics\n\nIn case you get a permission denied error when uploading an Android APK, make sure that the ``android/android_apps`` folder on the same level as your project's settings.py is writable by your webserver.\n\n\n#Export your iOS app for *Over the Air* distribution\n\n* In your browser log into the Django Admin and navigate to **Django_mobile_app_distribution > IOS Apps**\n* Create a new iOS app.\n* Choose a user or group\n* Add app name, bundle version, bundle identifier and comment\n* Open Xcode\n* In Xcode export your app as an archive: **Product > Archive**\n\t* Make sure you have got your provisioning right and your signing with a distribution certificate\n* Go to **Organizer > Archives**\n* Select your archive and hit **Export**\n* Choose **Save for Enterprise or Ad-Hoc deployment**\n* Choose your codesign identity\n* In Xcode hit **Export**\n* Choose a folder to save to and remember it\n* In your browser upload the IPA file into the respective field\n* On the download page you should be able to download and install over the air with properly provisioned devices\n\n\n#Customizing the default color scheme\n\nThe frontend templates make use of the Zurb Foundation CSS framework 5.5.1. \nIn line with foundation's customization rules there is an ``app.css`` file you can override to customize the default color scheme.\nTo do that create the following folder inside one of your own apps:\n\n**static/django_mobile_app_distribution/css/**\n\nMake sure your app comes before ``django_mobile_app_distribution`` in the list of ``INSTALLED_APPS``.\nInside that folder create a file called ``app.css``. There you can do custom styling, for instance:\n\n\ta {\n\t color: black;\n\t}\n\n\tbutton, .button {\n\t background-color: black;\n\t}\n\n\tbutton:hover, button:focus, .button:hover, .button:focus {\n\t background-color: gray;\n\t}\n\n\n", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Proper-Job/django-mobile-app-distribution", "keywords": "", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "django-mobile-app-distribution", "package_url": "https://pypi.org/project/django-mobile-app-distribution/", "platform": "", "project_url": "https://pypi.org/project/django-mobile-app-distribution/", "project_urls": { "Homepage": "https://github.com/Proper-Job/django-mobile-app-distribution" }, "release_url": "https://pypi.org/project/django-mobile-app-distribution/0.5/", "requires_dist": null, "requires_python": "", "summary": "A Django app that adds iOS and Android app upload functionality to the Django admin interface. Provides a mobile optimized HTML fronted for clients to download Ad Hoc mobile applications using their iOS or Android devices.", "version": "0.5" }, "last_serial": 3519801, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "e6f9103f23371517449cbf1fd2bf3da8", "sha256": "c6dde13051aff121292699d5081aea2d594ca5819b94cea6a47277ff5b00b9ca" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e6f9103f23371517449cbf1fd2bf3da8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 133288, "upload_time": "2013-08-13T17:25:26", "url": "https://files.pythonhosted.org/packages/e2/33/f14915c36ad927c6c28e24e5fcf6974dd6bbd9ab68263fe2c21ae3655a8d/django-mobile-app-distribution-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "36cba179ef8b74c2e695106fb2869486", "sha256": "54034a4a19d7026ccd1203e8abecbd4f5f413be32f0399dd5c5ae3f59fc4516d" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.1.1.tar.gz", "has_sig": false, "md5_digest": "36cba179ef8b74c2e695106fb2869486", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 131578, "upload_time": "2013-08-13T21:16:56", "url": "https://files.pythonhosted.org/packages/6c/cc/a3517c1141880f9a69f0fd2f74c3bdd4cfa421af3c2517e4e7b812ae87d5/django-mobile-app-distribution-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "c4bce54783a1304e60ab443f6b2fe0ad", "sha256": "73d39f4b2408b4a77d11fde3021261036d836bc982d6446ea18c499e3d8f03bc" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.1.2.tar.gz", "has_sig": false, "md5_digest": "c4bce54783a1304e60ab443f6b2fe0ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 134149, "upload_time": "2013-08-15T09:18:52", "url": "https://files.pythonhosted.org/packages/bf/5f/31650c971f92bfbc9aa5304325b4e42bf0d7707050012473b1d3f570f16f/django-mobile-app-distribution-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "50c3f03cd5abafe30bf4f97b8d2f1176", "sha256": "a702e2ee3f565318668797d170dcf42338279db6ac09f1fe59086f76cbd2eedd" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.1.3.tar.gz", "has_sig": false, "md5_digest": "50c3f03cd5abafe30bf4f97b8d2f1176", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 134203, "upload_time": "2014-03-19T14:23:08", "url": "https://files.pythonhosted.org/packages/d4/3f/1ce791620f6cbf7386ba881ae5c50f580b4552817377d95fa6e3856f0ad8/django-mobile-app-distribution-0.1.3.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "abc2cebe81254a921dc491ecb3ef10a2", "sha256": "5316441018066eee53e6924b309c7f2bfa5b46a628742226b2f14fdc19b072ba" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.2.tar.gz", "has_sig": false, "md5_digest": "abc2cebe81254a921dc491ecb3ef10a2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 138438, "upload_time": "2014-03-28T14:12:52", "url": "https://files.pythonhosted.org/packages/07/c2/a1ed3b4d7d69043101b8e6cef190310f3a8addeba0196977852edd4d8e52/django-mobile-app-distribution-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "6429a04650f10fb37c067c19fb6cac83", "sha256": "24fd571edf3aa31781358006245f6af7bfcffbc511daa91d09780da6c3659a5c" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.tar.gz", "has_sig": false, "md5_digest": "6429a04650f10fb37c067c19fb6cac83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 139517, "upload_time": "2014-11-19T15:01:26", "url": "https://files.pythonhosted.org/packages/14/e0/bab36a37c8e64a32e2417a00cde0921e2dfbf1264f4cf299034e4ac1005c/django-mobile-app-distribution-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "d937c5684d214301e3bb71f88e435aae", "sha256": "6e0d134be59c9df5c3808cd42a4a354c7b387f205f033bd6e3881f2ab4409256" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d937c5684d214301e3bb71f88e435aae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 140503, "upload_time": "2015-04-28T11:57:06", "url": "https://files.pythonhosted.org/packages/1e/a8/89ae8a3ff6529b4f3839524709c4db159143182df894233a898aa4b00187/django-mobile-app-distribution-0.3.1.tar.gz" } ], "0.3.10": [ { "comment_text": "", "digests": { "md5": "cf732e79d5100da1bbe5ec25e86df7d0", "sha256": "8df5b5f06647f3a4236298a3bf69fa2e352219605e712c1d101f039a8d9f22c3" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.10.tar.gz", "has_sig": false, "md5_digest": "cf732e79d5100da1bbe5ec25e86df7d0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89081, "upload_time": "2015-09-21T11:55:23", "url": "https://files.pythonhosted.org/packages/78/c5/7208fb53ba1cf115fbe68540189c80662e78fd6e846908a2f7a5cd6c579b/django-mobile-app-distribution-0.3.10.tar.gz" } ], "0.3.11": [ { "comment_text": "", "digests": { "md5": "a82dee2564c6cf64fae781291318838b", "sha256": "3fb59d253b40b25f41b4f06545cc691d5478b9c1bdb6add5b0b3a82385d2d512" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.11.tar.gz", "has_sig": false, "md5_digest": "a82dee2564c6cf64fae781291318838b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89438, "upload_time": "2016-01-18T17:04:45", "url": "https://files.pythonhosted.org/packages/3f/ee/5f9cc0db54ebdba6e3860600be6d0d5bebae31c95e7e6a1d71692d542e10/django-mobile-app-distribution-0.3.11.tar.gz" } ], "0.3.12": [ { "comment_text": "", "digests": { "md5": "5e95147f639652bb7a54fe8db401c4eb", "sha256": "99686096fc26178a4162eb4a7a21069e4a2ab09ee3e4840f240245c54caa291e" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.12.tar.gz", "has_sig": false, "md5_digest": "5e95147f639652bb7a54fe8db401c4eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90051, "upload_time": "2016-04-08T17:03:19", "url": "https://files.pythonhosted.org/packages/4c/71/a22fc866a4b489fd788f88cf68f4e44162f3eca60db543c9b757b9ae9942/django-mobile-app-distribution-0.3.12.tar.gz" } ], "0.3.2": [], "0.3.3": [ { "comment_text": "", "digests": { "md5": "92e6e629cbcaba1a96dd368d3d223e35", "sha256": "82994354b6dceb440c4498dda19c13222a7cde015d588caaa459b9417fefda27" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.3.tar.gz", "has_sig": false, "md5_digest": "92e6e629cbcaba1a96dd368d3d223e35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99316, "upload_time": "2015-04-28T15:13:30", "url": "https://files.pythonhosted.org/packages/f4/3a/e32c7c925aabc784639cbe6815e2579ed0df1b356219b149812f713d1825/django-mobile-app-distribution-0.3.3.tar.gz" } ], "0.3.4": [ { "comment_text": "", "digests": { "md5": "261badd6326862c8d64a157693b65f26", "sha256": "e30c198d1c6a817be05f4c76611b18327b1669111eb49963d5fdc1b39689b77b" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.4.tar.gz", "has_sig": false, "md5_digest": "261badd6326862c8d64a157693b65f26", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 99869, "upload_time": "2015-04-29T07:25:00", "url": "https://files.pythonhosted.org/packages/01/7e/f22c807f6ff523727a6078f980ad73887b2b296657ce82f96d6c99e127eb/django-mobile-app-distribution-0.3.4.tar.gz" } ], "0.3.5": [ { "comment_text": "", "digests": { "md5": "2a3c25903b875de9eb231d83186f6c66", "sha256": "88a087a51fb38dc683b8c68e82d77fdfbce27e04b71f48a46eac0caad60c9f3d" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.5.tar.gz", "has_sig": false, "md5_digest": "2a3c25903b875de9eb231d83186f6c66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90521, "upload_time": "2015-04-29T07:51:37", "url": "https://files.pythonhosted.org/packages/1b/a4/fddc29558ae194c0e2977244c7ef03e947eaea8de7eac7cc809106a317d6/django-mobile-app-distribution-0.3.5.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "1e723b9f761aa3e927f96bf555d8632e", "sha256": "43cd057ec554a74baf4a6559619b6377b57a968f1587aa540b75450964004eb2" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.6.tar.gz", "has_sig": false, "md5_digest": "1e723b9f761aa3e927f96bf555d8632e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 90756, "upload_time": "2015-07-30T12:22:49", "url": "https://files.pythonhosted.org/packages/a6/89/737f6b110324afa0dcf1c1f8c0b43104126de33a5fde89cb1bf050d33bc8/django-mobile-app-distribution-0.3.6.tar.gz" } ], "0.3.7": [ { "comment_text": "", "digests": { "md5": "70e0e246d0af514af77f0186b81f41b0", "sha256": "ded9a1688a6bdb17c7228e374917c094b8bdd6882368ca3574ae3d76c71234f1" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.7.tar.gz", "has_sig": false, "md5_digest": "70e0e246d0af514af77f0186b81f41b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88760, "upload_time": "2015-08-07T11:50:09", "url": "https://files.pythonhosted.org/packages/7c/b3/78d9efc5a6d037e394f6c2efd2da1c19e4cf11bd593c29a384024c6ec588/django-mobile-app-distribution-0.3.7.tar.gz" } ], "0.3.8": [ { "comment_text": "", "digests": { "md5": "36c8a306c4050811c87842ff66bb8be2", "sha256": "7e90d73b3361ed2111416e966b050330dd7b470865804490432df59224861ff6" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.8.tar.gz", "has_sig": false, "md5_digest": "36c8a306c4050811c87842ff66bb8be2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88819, "upload_time": "2015-09-10T11:06:41", "url": "https://files.pythonhosted.org/packages/72/7d/da222ca227e4bd5684365b5599865d4c82f0496be867fbe8239fa9ade3e8/django-mobile-app-distribution-0.3.8.tar.gz" } ], "0.3.9": [ { "comment_text": "", "digests": { "md5": "bb8d232bff572ed9519cd3dae66f556f", "sha256": "2f17aa7d0d59a2b1f8f9354de042fb23f918bd2da7af4535c713583f0ee740cd" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.3.9.tar.gz", "has_sig": false, "md5_digest": "bb8d232bff572ed9519cd3dae66f556f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88990, "upload_time": "2015-09-21T08:31:06", "url": "https://files.pythonhosted.org/packages/a3/db/2ee6fbecfd6d8ffbaf4b6b18a4952fa55001b1fb29ece74854a71c2e0d58/django-mobile-app-distribution-0.3.9.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "413a2be35e3f72ba5ef2c7bbe1d36e3e", "sha256": "03da31d950adebe7bc79203cd149f3ec94ae118977a2ecd2d822bee29828486f" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.4.tar.gz", "has_sig": false, "md5_digest": "413a2be35e3f72ba5ef2c7bbe1d36e3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91571, "upload_time": "2017-03-15T10:06:41", "url": "https://files.pythonhosted.org/packages/ea/dd/8177ab8b4481cc0e8158c5705f94b9794bd469f641b20f629b501634e630/django-mobile-app-distribution-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "7ab62e67ca259a73ad96bbcf0057ed83", "sha256": "5ec2ebc6387bf2c12f07268c99d88b05c07e46c76a1c8642682d231ce4e7e858" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.5.tar.gz", "has_sig": false, "md5_digest": "7ab62e67ca259a73ad96bbcf0057ed83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91643, "upload_time": "2018-01-25T09:28:52", "url": "https://files.pythonhosted.org/packages/90/33/22010ea14b3c06879ee5eb81ff4f905ef6a18455d458f94cda068e467da2/django-mobile-app-distribution-0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7ab62e67ca259a73ad96bbcf0057ed83", "sha256": "5ec2ebc6387bf2c12f07268c99d88b05c07e46c76a1c8642682d231ce4e7e858" }, "downloads": -1, "filename": "django-mobile-app-distribution-0.5.tar.gz", "has_sig": false, "md5_digest": "7ab62e67ca259a73ad96bbcf0057ed83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91643, "upload_time": "2018-01-25T09:28:52", "url": "https://files.pythonhosted.org/packages/90/33/22010ea14b3c06879ee5eb81ff4f905ef6a18455d458f94cda068e467da2/django-mobile-app-distribution-0.5.tar.gz" } ] }