2016-12-31 2 views
-1

로컬 라즈베리 파이에 대한 정보를 변경/업데이트 할 수 있도록 로컬 IP 주소에 액세스하려고합니다.xcode를 사용하여 로컬 IP 주소에 액세스

https://github.com/Jopyth/MMM-Remote-Control 

는 다음과 같이 내 PLIST를 업데이트 필자 :

<?xml version="1.0" encoding="UTF-8"?> 
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
    <plist version="1.0"> 
    <dict> 
     <key>CFBundleDevelopmentRegion</key> 
     <string>en</string> 
     <key>CFBundleExecutable</key> 
     <string>$(EXECUTABLE_NAME)</string> 
     <key>CFBundleIdentifier</key> 
     <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> 
     <key>CFBundleInfoDictionaryVersion</key> 
     <string>6.0</string> 
     <key>CFBundleName</key> 
     <string>$(PRODUCT_NAME)</string> 
     <key>CFBundlePackageType</key> 
     <string>APPL</string> 
     <key>CFBundleShortVersionString</key> 
     <string>1.0</string> 
     <key>CFBundleVersion</key> 
     <string>1</string> 
     <key>LSApplicationCategoryType</key> 
     <string></string> 
     <key>LSRequiresIPhoneOS</key> 
     <true/> 
     <key>NSAppTransportSecurity</key> 
     <dict> 
      <key>NSExceptionDomains</key> 
      <dict> 
       <key>http://192.168.0.40</key> // need to add your domain name of webservice 
       <dict> 
        <key>NSIncludesSubdomains</key> 
        <true/> 
        <key>NSExceptionAllowsInsecureHTTPLoads</key> 
        <true/> 
        <key>NSExceptionRequiresForwardSecrecy</key> 
        <true/> 
        <key>NSExceptionMinimumTLSVersion</key> 
        <string>TLSv1.2</string> 
        <key>NSThirdPartyExceptionAllowsInsecureHTTPLoads</key> 
        <false/> 
        <key>NSThirdPartyExceptionRequiresForwardSecrecy</key> 
        <true/> 
        <key>NSThirdPartyExceptionMinimumTLSVersion</key> 
        <string>TLSv1.2</string> 
        <key>NSRequiresCertificateTransparency</key> 
        <false/> 
       </dict> 
      </dict> 
     </dict> 
     <key>NSTemporaryExceptionMinimumTLSVersion</key> 
     <string>TLSv1.1</string> 
     <key>UILaunchStoryboardName</key> 
     <string>LaunchScreen</string> 
     <key>UIMainStoryboardFile</key> 
     <string>Main</string> 
     <key>UIRequiredDeviceCapabilities</key> 
     <array> 
      <string>armv7</string> 
     </array> 
     <key>UISupportedInterfaceOrientations</key> 
     <array> 
      <string>UIInterfaceOrientationPortrait</string> 
      <string>UIInterfaceOrientationLandscapeLeft</string> 
      <string>UIInterfaceOrientationLandscapeRight</string> 
     </array> 
     <key>UISupportedInterfaceOrientations~ipad</key> 
     <array> 
      <string>UIInterfaceOrientationPortrait</string> 
      <string>UIInterfaceOrientationPortraitUpsideDown</string> 
      <string>UIInterfaceOrientationLandscapeLeft</string> 
      <string>UIInterfaceOrientationLandscapeRight</string> 
     </array> 
    </dict> 
    </plist> 

을하지만, 시뮬레이션 또는 장치에로드 할 때 난 여전히 어두운 페이지이기는하지만 빈 얻을 즉 다음 사용하는 메신저.

메신저 내 동생이 자신의 마법의 거울에 액세스 할 수 있도록 앱의 가장 기본적인 기능을 제공하지만 업데이트 할 수는 있지만 로컬 IP 주소는 보이지 않습니다. 어떤 도움이라도 좋을 것입니다.

+0

Apple에 제출하거나 동생에게 제공하고 프로비저닝 프로파일을 업데이트 할 예정입니까? 매년 앱을 위해? – wottle

+0

예외 도메인은 IP 주소에 대해 작동하지 않습니다. – wottle

답변

1

실제로 실제 문제는 ATS 예외 도메인이 IP 주소에서 작동하지 않는다는 것입니다. 도메인 이름이 인 과 함께 작동합니다.

옵션 :

옵션 1 - ATS

당신이 앱을 앱 스토어에 제출하는 경우 ATS는 모두 좋은 생각하지 않은 것입니다 끄기 해제 - 이렇게하면 당신이 있음을 정당화하게됩니다 애플이 그 규칙을 집행하기 시작할 때 앱 스토어에 제출하기를 원한다면 결정을 내려야한다. 일반적으로 나는 SO의 옵션으로 이것을 권장하지 않습니다. 그러나 하드 코딩 된 IP 주소를 사용한다고 가정 할 때 특정 유스 케이스 용으로 작성된 단일 용도의 응용 프로그램이라고 생각합니다. 그리고 검토를 위해 Apple에 제출할 필요는 없습니다 (장치에 직접 설치하는 것이 좋습니다. 개발 프로비저닝 프로파일 사용). 그렇다면 Info.plist에서 NSAllowsArbitraryLoads 키를 사용하여 ATS를 완전히 비활성화 할 수 있습니다.

enter image description here

모든 ATS 보호를 해제하지만, 앱에만 HTTPS를 통해 로컬 네트워크 엔티티와 통신하는 경우, 앱 운송 보안 어쨌든 아무것도 보호되지 않았을 것입니다.

옵션 2 - 당신은 아이폰 OS 9에서, 당신의 Info.plist에 모두 NSAllowsArbitraryLoadsNSAllowsLocalNetworking을 넣으면 NSAllowsLocalNetworking

를 사용하여, 당신은 완전히하지만, 아이폰 OS (10) NSAllowsLocalNetworking 지원 (첫 번째 버전에서 ATS가 비활성화됩니다 설정), iOS는 NSAllowsArbitraryLoads을 무시하고 로컬 네트워크 통화에서만 ATS를 비활성화합니다. 이것은 더 안전 할 것이지만 로컬 네트워킹 전화 만하는 경우 ATS (옵션 1)를 비활성화 할 것입니다.

옵션 3 - xip.io

당신이 ATS에두고 싶은 경우는, 다른 사람이 도메인 이름에 로컬 IP 주소를 "변환"을 xip.io 서비스를 사용하여 성공을 거두었습니다. 따라서 xip.io를 예외 도메인에 추가하고 NSIncludesSubdomains의 하위 값을 true로 설정합니다. 그런 다음 도메인에 연결할 때 192.168.0.40에 연결하는 대신 192.168.0.40.xip.io에 연결하십시오