Xcode ਲਈ iPhone ਨੂੰ ਦੂਰ ਦੇ Mac ਵਿੱਚ ਇੰਝ ਹੀ ਨਹੀਂ ਲਗਾ ਸਕਦੇ
ਦੂਰ ਦਾ ਡੈਸਕਟਾਪ ਤੁਹਾਨੂੰ Xcode ਦਿਖਾਉਂਦਾ ਹੈ, ਤੁਹਾਡੇ ਮੇਜ਼ ਉੱਤੇ ਪਿਆ iPhone ਨਹੀਂ। ਡਿਵਾਈਸ ਨੂੰ ਉਸ Mac ਨਾਲ ਜੋੜੋ ਜੋ ਬਿਲਡ ਕਰਦਾ ਹੈ, ਅਤੇ ਖੋਜ ਨੂੰ ਟਰਾਂਸਪੋਰਟ ਤੋਂ ਵੱਖਰਾ ਮੰਨੋ।
ਆਮ ਧਾਰਨਾ ਇਹ ਹੈ ਕਿ ਦੂਰ ਦਾ ਡੈਸਕਟਾਪ ਸੈਸ਼ਨ ਪੂਰਾ ਵਿਕਾਸ ਸੈੱਟਅੱਪ ਤੁਹਾਡੇ ਲੈਪਟਾਪ ਉੱਤੇ ਲੈ ਆਉਂਦਾ ਹੈ। ਇਹ ਸਕ੍ਰੀਨ, ਕੀਬੋਰਡ ਅਤੇ ਮਾਊਸ ਲੈ ਕੇ ਆਉਂਦਾ ਹੈ, ਹੋਰ ਕੁਝ ਨਹੀਂ। iPhone ਨੂੰ ਉਸ Mac ਤੱਕ ਪਹੁੰਚਣਾ ਪੈਂਦਾ ਹੈ ਜਿਸ ਉੱਤੇ Xcode ਚੱਲਦਾ ਹੈ, ਅਤੇ ਉਹ ਆਪਣੇ ਭਰੋਸੇ, ਟਰਾਂਸਪੋਰਟ ਅਤੇ ਇਜਾਜ਼ਤ ਦੀਆਂ ਲੋੜਾਂ ਵਾਲਾ ਵੱਖਰਾ ਕਨੈਕਸ਼ਨ ਹੈ। ਹੇਠਾਂ ਦਿੱਤਾ ਸਭ ਕੁਝ ਇਸੇ ਵੰਡ ਤੋਂ ਆਉਂਦਾ ਹੈ, ਅਤੇ ਅਸਫਲ ਸੈੱਟਅੱਪ ਅੱਧਾ ਦਿਨ ਇੱਥੇ ਹੀ ਗੁਆਉਂਦੇ ਹਨ।
ਭਰਮ: ਰਿਮੋਟ ਕੰਟਰੋਲ ਡਿਵਾਈਸ ਨੂੰ ਵੀ ਲੈ ਜਾਂਦਾ ਹੈ
ਦੂਰ ਦੇ ਡੈਸਕਟਾਪ ਦਾ ਸੌਫਟਵੇਅਰ ਡਿਸਪਲੇ ਅਤੇ ਇਨਪੁਟ ਸਟ੍ਰੀਮ ਅੱਗੇ ਭੇਜਦਾ ਹੈ, ਅਤੇ ਚੰਗੇ ਕਨੈਕਸ਼ਨ ਉੱਤੇ ਲੱਗਦਾ ਹੈ ਕਿ Mac ਤੁਹਾਡੇ ਸਾਹਮਣੇ ਬੈਠਾ ਹੈ। ਪਰ ਇਹ USB ਨਹੀਂ ਭੇਜਦਾ, ਅਤੇ ਫ਼ੋਨ ਨੂੰ Mac ਦੇ ਨੈੱਟਵਰਕ ਵਿੱਚ ਨਹੀਂ ਰੱਖਦਾ। ਸੈਸ਼ਨ Mac ਦੇ ਡੈਸਕਟਾਪ ਉੱਤੇ ਖਤਮ ਹੁੰਦਾ ਹੈ, ਜਿੱਥੇ Xcode ਨੂੰ ਆਪਣੇ ਨਿਯਮਾਂ ਮੁਤਾਬਕ ਡਿਵਾਈਸ ਲੱਭਣੀ ਪੈਂਦੀ ਹੈ। ਇਹ ਮੰਨਣਾ ਕਿ ਫ਼ੋਨ ਪਿਕਸਲਾਂ ਨਾਲ ਚੱਲਦਾ ਹੈ, ਇਸ ਬਣਤਰ ਦੀ ਸਭ ਤੋਂ ਆਮ ਗਲਤੀ ਹੈ।
ਦੋਵੇਂ ਕਨੈਕਸ਼ਨ ਆਜ਼ਾਦ ਹਨ, ਅਤੇ ਇੱਕ ਪੂਰਾ ਹੋ ਸਕਦਾ ਹੈ ਜਦੋਂ ਕਿ ਦੂਜਾ ਬਿਲਕੁਲ ਨਾ ਹੋਵੇ। ਡੈਸਕਟਾਪ ਸੈਸ਼ਨ ਠੀਕ ਕਰਨ ਨਾਲ ਡਿਵਾਈਸ ਦੇ ਰਾਹ ਬਾਰੇ ਕੁਝ ਨਹੀਂ ਪਤਾ ਲੱਗਦਾ।
ਕੁਝ ਵੀ ਸੰਰਚਿਤ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਤੈਅ ਕਰੋ ਕਿ ਫ਼ੋਨ ਸਰੀਰਕ ਤੌਰ ਉੱਤੇ ਕਿੱਥੇ ਹੈ
ਜੇ ਫ਼ੋਨ Mac ਦੇ ਕੋਲ ਹੀ ਰਹਿੰਦਾ ਹੈ, ਤਾਂ ਉੱਥੇ ਆਮ ਸਥਾਨਕ ਸੈੱਟਅੱਪ ਕਰੋ: ਕੰਪਿਊਟਰ ਉੱਤੇ ਭਰੋਸਾ ਕਰੋ, ਡਿਵਾਈਸ ਉੱਤੇ ਡਿਵੈਲਪਰ ਮੋਡ ਚਾਲੂ ਕਰੋ, ਅਤੇ ਪੱਕਾ ਕਰੋ ਕਿ ਮਸ਼ੀਨ ਦੇ ਸਾਹਮਣੇ ਬੈਠੇ ਹੋਏ Xcode ਉਸ ਉੱਤੇ ਬਿਲਡ ਕਰਕੇ ਚਲਾਉਂਦਾ ਹੈ। ਫਿਰ ਦੂਰ ਦਾ ਡੈਸਕਟਾਪ ਪਹਿਲਾਂ ਹੀ ਚੱਲ ਰਹੇ ਵਰਕਫਲੋ ਨੂੰ ਨਿਯੰਤਰਿਤ ਕਰਦਾ ਹੈ। ਇਹ ਸਭ ਤੋਂ ਸਸਤੀ ਬਣਤਰ ਹੈ ਅਤੇ ਹਾਰਡਵੇਅਰ ਦੇ ਇਜਾਜ਼ਤ ਦੇਣ ’ਤੇ ਇਹੀ ਚੁਣਨੀ ਚਾਹੀਦੀ ਹੈ।
ਜੇ ਫ਼ੋਨ ਤੁਹਾਡੇ ਨਾਲ ਚੱਲਦਾ ਹੈ ਅਤੇ Mac ਦਫ਼ਤਰ ਵਿੱਚ ਰਹਿੰਦਾ ਹੈ, ਤਾਂ Mac ਨੂੰ ਉਸ ਡਿਵਾਈਸ ਤੱਕ ਸਮਰਥਿਤ ਰਾਹ ਚਾਹੀਦਾ ਹੈ। VPN ਦੋਵਾਂ ਸਿਰਿਆਂ ਵਿਚਕਾਰ ਨੈੱਟਵਰਕ ਰੂਟ ਦਿੰਦਾ ਹੈ ਅਤੇ ਹੋਰ ਕੁਝ ਨਹੀਂ: ਪੇਅਰਿੰਗ, ਡਿਵੈਲਪਰ ਮੋਡ, ਸਾਈਨਿੰਗ ਪਛਾਣ ਅਤੇ ਡਿਵਾਈਸ ਰਜਿਸਟਰੇਸ਼ਨ ਸਭ ਵੱਖਰੀਆਂ ਲੋੜਾਂ ਰਹਿੰਦੀਆਂ ਹਨ। ਟਨਲ ਨੂੰ ਕਨੈਕਸ਼ਨ ਆਪ ਨਹੀਂ, ਸਟੈਕ ਦੀ ਇੱਕ ਪਰਤ ਸਮਝੋ।
ਤੁਸੀਂ ਇਨ੍ਹਾਂ ਦੋ ਬਣਤਰਾਂ ਵਿੱਚੋਂ ਕਿਸ ਵਿੱਚ ਹੋ, ਲਿਖ ਕੇ ਰੱਖੋ। ਹਰ ਅਗਲੀ ਜਾਂਚ ਇਸ ਉੱਤੇ ਨਿਰਭਰ ਹੈ, ਅਤੇ ਇਨ੍ਹਾਂ ਨੂੰ ਮਿਲਾਉਣ ਨਾਲ ਅਜਿਹੀਆਂ ਸੁਧਾਈਆਂ ਬਣਦੀਆਂ ਹਨ ਜੋ ਚੱਲ ਹੀ ਨਹੀਂ ਸਕਦੀਆਂ।
ਖੋਜ ਅਤੇ ਟਰਾਂਸਪੋਰਟ ਨੂੰ ਦੋ ਵੱਖਰੀਆਂ ਸਮੱਸਿਆਵਾਂ ਮੰਨੋ
Xcode ਜੋੜੇ ਹੋਏ ਵਾਇਰਲੈੱਸ ਡਿਵਾਈਸ ਸਥਾਨਕ ਨੈੱਟਵਰਕ ਉੱਤੇ Bonjour ਰਾਹੀਂ ਲੱਭਦਾ ਹੈ, ਅਤੇ Connect via IP Address ਰਾਹੀਂ ਜਾਣੇ-ਪਛਾਣੇ ਪਤੇ ਉੱਤੇ ਵੀ ਪਹੁੰਚ ਸਕਦਾ ਹੈ। ਇਹ ਦੋ ਵੱਖਰੇ ਫੇਲ੍ਹ ਹੋਣ ਦੇ ਤਰੀਕਿਆਂ ਵਾਲੀਆਂ ਦੋ ਕਾਰਜਵਿਧੀਆਂ ਹਨ। ਸੂਚੀ ਵਿੱਚ ਕਦੇ ਨਾ ਦਿਸਣ ਵਾਲੀ ਡਿਵਾਈਸ ਅਤੇ ਦਿਸ ਕੇ ਵੀ ਜੁੜਨ ਤੋਂ ਇਨਕਾਰ ਕਰਨ ਵਾਲੀ ਡਿਵਾਈਸ ਇੱਕੋ ਲੱਛਣ ਨਹੀਂ, ਭਾਵੇਂ ਦੋਵੇਂ ਗੁੰਮ ਫ਼ੋਨ ਵਾਂਗ ਪੜ੍ਹੀਆਂ ਜਾਂਦੀਆਂ ਹਨ।
ਕੁਝ ਬਦਲਣ ਤੋਂ ਪਹਿਲਾਂ ਇਸ਼ਤਿਹਾਰ ਲੱਭੋ: dns-sd -B _apple-mobdev2._tcp ਉਹ ਸੇਵਾ ਗਿਣਦਾ ਹੈ ਜੋ ਜੋੜਿਆ ਫ਼ੋਨ ਸਥਾਨਕ ਲਿੰਕ ਉੱਤੇ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦਾ ਹੈ। ਜੇ ਕੁਝ ਨਾ ਦਿਸੇ, ਖੋਜ ਹੀ ਟੁੱਟੀ ਪਰਤ ਹੈ, ਅਤੇ ਪਤੇ ਉੱਤੇ ਆਧਾਰਿਤ ਕਨੈਕਸ਼ਨ ਹੀ ਬਾਕੀ ਰਾਹ ਹੈ। ਜੇ ਸੇਵਾ ਦਿਸੇ ਪਰ Xcode ਫਿਰ ਵੀ ਨਾ ਜੁੜ ਸਕੇ, ਖੋਜ ਕੰਮ ਕਰਦੀ ਹੈ ਅਤੇ ਟਰਾਂਸਪੋਰਟ ਜਾਂ ਭਰੋਸੇ ਦਾ ਰਿਸ਼ਤਾ ਫੇਲ੍ਹ ਹੁੰਦਾ ਹੈ।
Apple ਦੀ ਵਾਇਰਲੈੱਸ ਡਿਵਾਈਸ ਮਦਦ ਇੱਕੋ ਨੈੱਟਵਰਕ ਦੀ ਲੋੜ ਅਤੇ ਪਤੇ ਵਾਲੇ ਵਰਕਫਲੋ ਦੋਵੇਂ ਕਵਰ ਕਰਦੀ ਹੈ, ਇਸ ਲਈ ਪੁਰਾਣੀ ਰਿਲੀਜ਼ ਤੋਂ ਯਾਦ ਮੀਨੂ ਰਾਹ ਦੀ ਪੈਰਵੀ ਕਰਨ ਦੀ ਥਾਂ ਆਪਣੇ ਸਥਾਪਿਤ ਸੰਸਕਰਣਾਂ ਦੇ ਹਿਸਾਬ ਨਾਲ ਪੜ੍ਹੋ। ਹੇਠਲੀ ਕਾਰਜਵਿਧੀ ਨਾ ਬਦਲਣ ’ਤੇ ਵੀ ਮੀਨੂ ਲੇਬਲ Xcode ਰਿਲੀਜ਼ਾਂ ਵਿਚਕਾਰ ਬਦਲਦੇ ਹਨ।
Mac ਆਪਣੀ ਥਾਂ ਤੋਂ ਕੀ ਵੇਖ ਸਕਦਾ ਹੈ, ਜਾਂਚੋ
ਗਿਣਤੀ ਲੈਪਟਾਪ ਉੱਤੇ ਨਹੀਂ, Mac ਉੱਤੇ ਚਲਾਓ, ਕਿਉਂਕਿ ਡਿਵਾਈਸ ਦੀ ਲੋੜ ਮਸ਼ੀਨ ਨੂੰ ਹੈ ਅਤੇ ਉਹ Mac ਹੈ। xcrun devicectl list devices Xcode ਦੀ ਪਹੁੰਚ ਵਾਲੀਆਂ ਡਿਵਾਈਸ ਛਾਪਦਾ ਹੈ, ਅਤੇ system_profiler SPUSBDataType ਦਿਖਾਉਂਦਾ ਹੈ ਕਿ ਸਰੀਰਕ ਤੌਰ ਉੱਤੇ ਕੀ ਜੁੜਿਆ ਹੈ। ਦੂਜੀ ਸੂਚੀ ਵਿੱਚ ਦਿਸਣ ਵਾਲਾ ਪਰ ਪਹਿਲੀ ਵਿੱਚ ਨਾ ਹੋਣ ਵਾਲਾ ਫ਼ੋਨ ਜੁੜਿਆ ਹੈ ਪਰ ਪੇਅਰ ਨਹੀਂ, ਇਹ ਨੈੱਟਵਰਕ ਦੀ ਨਹੀਂ, ਭਰੋਸੇ ਦੀ ਸਮੱਸਿਆ ਹੈ।
xcrun devicectl list devices
system_profiler SPUSBDataType | grep -i iphone
xcrun devicectl device info DEVICE_UDIDਜੇ ਡਿਵਾਈਸ ਹੋਰ ਸਬਨੈੱਟ ਉੱਤੇ ਹੈ, ਤਾਂ ਪੱਕਾ ਕਰੋ ਕਿ Mac ਉਸ ਪਤੇ ਤੱਕ ਪਹੁੰਚ ਸਕਦਾ ਹੈ ਜੋ ਫ਼ੋਨ ਪ੍ਰਕਾਸ਼ਿਤ ਕਰਦਾ ਹੈ, ਅਤੇ ਯਾਦ ਰੱਖੋ ਕਿ link-local IPv6 ਪਤੇ ਇੱਕ ਲਿੰਕ ਤੱਕ ਸੀਮਿਤ ਹੁੰਦੇ ਹਨ ਅਤੇ ਟਨਲ ਰਾਹੀਂ ਰੂਟ ਨਹੀਂ ਹੁੰਦੇ। ਇਸੇ ਲਈ ਸਿਰਫ਼ VPN ਦੂਰ ਦੇ ਫ਼ੋਨ ਨੂੰ ਘੱਟ ਹੀ ਦਿਖਾਉਂਦਾ ਹੈ: ਡਿਵਾਈਸ ਜੋ ਪਤਾ ਇਸ਼ਤਿਹਾਰ ਕਰਦੀ ਹੈ, ਉਹ ਸਿਰਫ਼ ਆਪਣੇ ਹਿੱਸੇ ਵਿੱਚ ਹੀ ਅਰਥ ਰੱਖਦਾ ਹੈ।
Apple ਦੀ ਤਕਨੀਕੀ ਟਿੱਪਣੀ TN3158 ਦੱਸਦੀ ਹੈ ਕਿ ਸੰਸਕਰਣ 15 ਤੋਂ Xcode ਕੇਬਲ ਨਾਲ ਜੁੜੀ ਡਿਵਾਈਸ ਨਾਲ link-local IPv6 ਉੱਤੇ ਬਣੇ ਨੈੱਟਵਰਕ ਇੰਟਰਫੇਸ ਰਾਹੀਂ ਗੱਲ ਕਰਦਾ ਹੈ, ਇਸ ਲਈ ਸਥਾਨਕ ਫਿਲਟਰਿੰਗ ਸਰੀਰਕ ਤੌਰ ਉੱਤੇ ਲੱਗੇ ਫ਼ੋਨ ਨੂੰ ਵੀ ਰੋਕ ਸਕਦੀ ਹੈ। ਅਜਿਹਾ ਮਾਮਲਾ ਆਪ ਬੰਦ ਨਾ ਕਰੋ, ਫਿਲਟਰਿੰਗ ਨੀਤੀ ਦੇ ਮਾਲਕ ਨੂੰ ਦਿਓ।
ਇਹ ਡਿਵਾਈਸ ਆਈਕਨ ਨਾਲ ਨਹੀਂ, ਬਿਲਡ ਨਾਲ ਸਾਬਤ ਕਰੋ
ਸੂਚੀ ਵਿੱਚ ਡਿਵਾਈਸ ਐਂਟਰੀ, ਟੂਲਬਾਰ ਵਿੱਚ ਹਰਾ ਸੂਚਕ ਜਾਂ ਸਫਲ ਪੇਅਰਿੰਗ ਬੇਨਤੀ ਵਿਚਕਾਰਲੇ ਨਿਰੀਖਣ ਹਨ। ਵਰਕਫਲੋ ਤਦ ਸਾਬਤ ਹੁੰਦਾ ਹੈ ਜਦੋਂ Xcode ਮਨਜ਼ੂਰ ਬਿਲਡ ਸਥਾਪਿਤ ਕਰਦਾ ਹੈ ਅਤੇ ਡੀਬੱਗਰ ਡਿਵਾਈਸ ਉੱਤੇ ਚੱਲ ਰਹੀ ਪਰੋਸੈਸ ਨਾਲ ਜੁੜਦਾ ਹੈ।
ਪੂਰਾ ਕ੍ਰਮ Mac ਤੋਂ ਚਲਾਓ। xcrun devicectl device install app --device DEVICE_UDID build/MyApp.app IDE ਤੋਂ ਬਿਨਾਂ ਸਥਾਪਿਤ ਕਰਦਾ ਹੈ, ਜੋ Xcode ਇੰਟਰਫੇਸ ਦੀ ਸਮੱਸਿਆ ਨੂੰ ਡਿਵਾਈਸ ਰਾਹ ਦੀ ਸਮੱਸਿਆ ਤੋਂ ਵੱਖ ਕਰਦਾ ਹੈ। ਫਿਰ ਐਪ ਚਾਲੂ ਕਰੋ ਅਤੇ ਉਸ ਨਾਲ ਕੰਸੋਲ ਜੋੜੋ। ਜੇ ਕਮਾਂਡ ਲਾਈਨ ਸਥਾਪਨਾ ਚੱਲੇ ਪਰ IDE ਨਾ ਚੱਲੇ, ਤਾਂ ਬਾਕੀ ਦੋਸ਼ ਨੈੱਟਵਰਕ ਵਿੱਚ ਨਹੀਂ, ਸਕੀਮ ਜਾਂ ਸਾਈਨਿੰਗ ਸੰਰਚਨਾ ਵਿੱਚ ਹੈ।
ਬਣਤਰ ਤੰਗ ਰੱਖੋ: ਇੱਕ ਅਧਿਕਾਰਤ ਡਿਵੈਲਪਰ, ਇੱਕ ਰਜਿਸਟਰਡ Mac, ਇੱਕ ਡਿਵਾਈਸ, ਅਤੇ ਸੈਸ਼ਨ ਖਤਮ ਹੋਣ ’ਤੇ ਖਤਮ ਹੋਣ ਵਾਲੀ ਪਹੁੰਚ। ਬਣਤਰ ਰੁਕਣ ’ਤੇ ਪ੍ਰਮਾਣ ਰੱਦ ਕਰੋ। ਜੇ ਫ਼ੋਨ Mac ਦੇ ਕੋਲ ਹੀ ਰਹਿ ਸਕਦਾ ਹੈ, ਤਾਂ ਉਹੀ ਚੁਣੋ, ਕਿਉਂਕਿ ਸਭ ਤੋਂ ਸਰਲ ਸਮਰਥਿਤ ਰਾਹ ਹੀ ਡੀਬੱਗ ਕਰਨ ਲਈ ਸਭ ਤੋਂ ਘੱਟ ਪਰਤਾਂ ਛੱਡਦਾ ਹੈ।